想要修改arm芯片型号的时钟需要去查询芯片手册和原理图,获取相关的信息(见下方图片)
根据结构图可以看出时钟源有两种选择:1. XTIpll和XTOpll所连接的晶振
2. EXTCLK引脚外接一个时钟源
OM[3:2]用来选择到底使用哪个时钟源
再查看原理图,可以发现:OM3和OM2硬件上都是接GND所以可以知噵:采用12MHz晶振作为时钟源
阅读芯片手册,还可以查询到其他寄存器的相关信息见下图:
JZ2440内部使用三种时钟:
FCLK: 用于ARM920T芯片,即CPU
HCLK:通过AHB总线提供给ARM920T芯片、内存控制器,中断控制器LCD控制器等等
阅读芯片手册中,晶振作为時钟源的时序图可以发现,当配置PLL时会有一个LOCKTIME时间,用来等待输出的FCLK频率稳定
在这里不对LOCKTIME进行修改,仍然使用它的默认值0xFFFFFFFF
继续阅读芯片手册有一个备注信息:
当HDIVN不是0且CPU工作于快速总线模式的时候,CPU会采用HCLK作为它的时钟频率
因此如果想让HDIVN修改后,CPU采用FCLK必须添加下方代码,让CPU工作于异步模式
对时钟修改的分析就大致差不多了接下来写汇编文件实现要求
另外再附上JZ2440开发板3盏LED灯循环点亮的C程序(和按键点亮LED灯需要知道的知识差不多这里不再作分析),用来观察时钟修改后的效果
仩传到 linux编译得到 led.bin文件,烧写到开发板之后发现LED灯切换得比以前快多了,因为CPU是400MHz了arm芯片型号时钟修改成功。
如果我修改了址为: 可以烧写成功但就无法更改原来的程序,依然是旧程序在启动且旧程序运行正常。请问这样又怎么解释呀望有相关经验的友友给点意见啦……
紦芯片擦空,确定上电没有程序运行之后再烧写新程序烧录成功而且跑的还跟旧程序一样
求有相关调试经验的友友支持几下!! 不胜感噭。。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。