tq2440启动代码分(时钟)

tq2440启动代码分(时钟)

ID:34726481

大小:50.22 KB

页数:3页

时间:2019-03-10

tq2440启动代码分(时钟)_第1页
tq2440启动代码分(时钟)_第2页
tq2440启动代码分(时钟)_第3页
资源描述:

《tq2440启动代码分(时钟)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、比较烦的时钟初始化终于到了,大量的翻看手册,还要理解时钟的运行过程,很烦。建议先翻翻手册大致了解下时钟的初始化,然后再看。;ToreducePLLlocktime,adjusttheLOCKTIMEregister.ldrr0,=LOCKTIMEldrr1,=0xffffffstrr1,[r0]刚刚上电的时候,cpu运行的时钟一直是靠外部时钟源提供的,无论是晶振还是直接输入。但是芯片内部还有两个PLL锁相环,感兴趣可以仔细去看手册,了解它的工作原理,总之这个PLL可以提高芯片的运行频率。PLL的寄存器是有初始值的,但是上电芯片不会理

2、会这个值,而是以外部时钟频率运行,为了提高运行速度,我们需要设置PLL,当设置完PLL的寄存器后,时钟不会马上改变,而是需要一段时间等待,在这段时间,cpu不运行,这段时间就是LOCKTIME,改变LOCKTIME寄存器的值,可以改变LOCKTIME时间的长短,注释里说为了减少时间,但似乎只是把UPLL的值减了,而没有减MPLL。后边又有一个编译时的逻辑判断,PLL_ON_START在option.inc里有定义为true。所以会进入后边的内容。ldrr0,=CLKDIVNldrr1,=CLKDIV_VAL;0=1:1:1,1=1:

3、1:2,2=1:2:2,3=1:2:4,4=1:4:4,5=1:4:8,6=1:3:3,7=1:3:6.strr1,[r0]芯片运行时有三个分开的时钟,分别是FCLK,HCLK和PCLK。FCLK是cpu的时钟,最高,HCL是AHB总线的时钟,PCLK是APB总线的时钟最低。三个时钟通过分频器设置成不同的频率CLKDIVN就是设置三个时钟分频比的寄存器。CLKDIV_VAL通过我们的查询可以在include.inc里发现下面这么多语句。;(4)SelectClockDivision(Fclk:Hclk:Pclk);FCLK=1000

4、00000;CLKDIV_VALEQU1;0=1:1:1,1=1:1:2,2=1:2:2,3=1:2:4,4=1:4:4,5=1:4:8,6=1:3:3,7=1:3:6.;FCLK=200000000;CLKDIV_VALEQU3;0=1:1:1,1=1:1:2,2=1:2:2,3=1:2:4,4=1:4:4,5=1:4:8,6=1:3:3,7=1:3:6.;FCLK=400000000CLKDIV_VALEQU5;0=1:1:1,1=1:1:2,2=1:2:2,3=1:2:4,4=1:4:4,5=1:4:8,6=1:3:3,7=1

5、:3:6.;FCLK=304000000or271500000;CLKDIV_VALEQU7;0=1:1:1,1=1:1:2,2=1:2:2,3=1:2:4,4=1:4:4,5=1:4:8,6=1:3:3,7=1:3:6.仔细一看大部分被注释掉了,只有一句,就是CLKDIV_VALEQU5,根据后边的注释,我们可知道5代表Fclk:Hclk:Pclk=1:4:8。我们看下手册,这个是怎么来的。十进制5相当于二进制0101。查看手册发现,第一个0表示UCLK的频率为48MHz,后边的10表示HCLK=FCLK/4因为CAMDIVN[9

6、]还没有被定义,而其初始值为0,最后的1表示PCLK=HCLK/2.,因此得到上边的结果。[CLKDIV_VAL>1;meansFclk:Hclkisnot1:1.mrcp15,0,r0,c1,c0,0orrr0,r0,#0xc0000000;R1_nF:OR:R1_iAmcrp15,0,r0,c1,c0,0

7、mrcp15,0,r0,c1,c0,0bicr0,r0,#0xc0000000;R1_iA:OR:R1_nFmcrp15,0,r0,c1,c0,0]前边已经说了CLKDIV_VAL的值是5,所以这段代码会执行上边的三行语句,m

8、rc是协处理器指令,这三行干了什么事情呢?他来自手册里的一个Note。IfHDIVNisnot0,theCPUbusmodehastobechangedfromthefastbusmodetotheasynchronousbusmodeusingfollowinginstructions(S3C2440doesnotsupportsynchronousbusmode).MMU_SetAsyncBusModemrcp15,0,r0,c1,c0,0orrr0,r0,#R1_nF:OR:R1_iAmcrp15,0,r0,c1,c0,0原来

9、这段代码是直接抄的手册,作用也很清楚,因为FCLK和HCLK不一样,所以把AHB总线从快速总线模式改成一步总线模式。但是我也是新手,还顾不上去看p15这个东西是怎么完成的,所以请指教。顺便说下,这个note的后边一句,如果没有改成异步

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。