新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TQ2440國(guó)嵌學(xué)院gboot-時(shí)鐘初始化

TQ2440國(guó)嵌學(xué)院gboot-時(shí)鐘初始化

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏

通過(guò)選擇HDIVNPDIVN這2個(gè)參數(shù)可以選定FCLK:HCLK:PCLK的分頻系數(shù),參考值是1:4:8,也就是HDIVN為2,PDIVN為1。找到HDIVN和PDIVN的定義:如下

本文引用地址:http://2s4d.com/article/201611/321970.htm



因此設(shè)定HDIVN=2,也就是01;設(shè)定PDIVN=1,也就是0。DIVN_UPLL不設(shè)定,組合起來(lái)也就是在CKDIVN寄存器里寫入0X5(0b000101),寄存器的地址是0x4c000014。

如何設(shè)定CPU到異步模式呢?

為什么要設(shè)定CPU到異步模式呢?看下面介紹:



翻譯可知,當(dāng)HDIVN不等于0的時(shí)候,要設(shè)定CPU到異步模式,HDIVN不等于0代表什么呢?首先看等于0,等于0代表FCLK=HCLK,也就是CPU核工作時(shí)鐘等于總線時(shí)鐘,當(dāng)2者相同的時(shí)候是同步,不相等就是異步模式。因此要設(shè)定到異步模式。如何設(shè)置到異步模式?




代碼上面也有給出,通過(guò)設(shè)定CP15的C1寄存器的nF和iA位都為1即可。

最后來(lái)看設(shè)定FCLK的頻率:



首先我們采用的CPU的工作頻率是405MHZ,也就是MDIV=0X7F,PDIV=10;SDIV=1

全部代碼:

#define CLKDIVN 0x4c000014
#define MPLLCON 0x4c000004
#define MPLL_405MHZ ((127<<12)|(2<<4)|(1<<0))

init_clock:
ldr r0, =CLKDIVN
mov r1, #0x5
str r1, [r0]

mrc p15,0,r0,c1,c0,0
orr r0,r0,#0xc0000000
mcr p15,0,r0,c1,c0,0

ldr r0, =MPLLCON
ldr r1, =MPLL_405MHZ
str r1, [r0]
mov pc, lr


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉