国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

專題7-ARM時(shí)鐘初始化

2019-11-11 05:26:11
字體:
供稿:網(wǎng)友

1.1 時(shí)鐘脈沖信號:按照一定的電壓幅度,一定的時(shí)間間隔連續(xù)發(fā)出的脈沖信號。

1.2 時(shí)鐘脈沖頻率:單位時(shí)間內(nèi)(1秒)產(chǎn)生的時(shí)鐘脈沖的個(gè)數(shù)。

1.3 信號源: 1)晶振:晶振全稱晶體振蕩器,是用石英晶體經(jīng)精密切割磨削并渡上電極焊上引線做成。 優(yōu)點(diǎn):結(jié)構(gòu)簡單、噪聲低 缺點(diǎn):成本高、交貨周期長、難以獲得標(biāo)準(zhǔn)的頻率

2)PLL(鎖相環(huán)):需要一個(gè)外部晶振并包含一個(gè)能夠?qū)w的特定頻率加倍或分頻的集成鎖相環(huán)電路。 優(yōu)點(diǎn):成本低、面積小、頻率靈活

2440: 晶振頻率:12Mhz 兩個(gè)PLL: MPLL:FCLK(ARM核)、HCLK(AHB總線:LCD、DMA等)、PCLK(APB總線:UART、GPIO等) UPLL:UCLK(USB總線:USB主從口)

6440: 晶振頻率也是12Mhz 3個(gè)PLL: APLL:ACLK(ARM核) MPL:HCLK(AHB總線)、PCLK(APB總線) EPLL:SCLK(USB總線)

210: 晶振頻是:24Mhz 4個(gè)PLL: APLL、MPLL、EPLL、VPLL

CPU上電之后:CPU的頻率一開始是等于外部晶振的頻率的,以2440為例,為12Mhz 。所以經(jīng)過時(shí)鐘初始化,有一個(gè)由低頻到高頻的過程。 觀察時(shí)鐘初始化的時(shí)序圖: 這里寫圖片描述 完成鎖相環(huán)的配置后,進(jìn)入了locktime,在locktime時(shí),處理器是不工作的,locktime后,ARM核按照配置的頻率來工作。

1.3 時(shí)鐘初始化軟件要完成哪些工作: 2440: 1) 配置LockTime(默認(rèn)值,省略) 2) 設(shè)置分頻系數(shù)(例如:FCLK:HCLK:PCLK=1:2:4,即HCLK的頻率為FCLK的1/2) 3) 如果FCLK不等于HCLK(通常都不相等),要設(shè)置CPU為異步工作模式 這里寫圖片描述

4) 配置FCLK的時(shí)鐘頻率 (外部晶振12MHz,將內(nèi)核時(shí)鐘FCLK配置為405Mhz) 這里寫圖片描述

即配置寄存器MPLLCON: 這里寫圖片描述

LOCLTIME寄存器:(使其為默認(rèn)值,不需要去設(shè)置) 首先查看uboot,發(fā)現(xiàn)其分頻系數(shù)設(shè)置為1:4:8,查看datasheet發(fā)現(xiàn)對應(yīng)此頻率的HDIVN是2、PDVIN是1(HDIVN和PDVIN分別位于寄存器CLKDIVN(地址為0x4C000014)的1:2位和0位) 這里寫圖片描述

代碼如下:

%設(shè)置分頻系數(shù) 1:4:8#define CLKDIVN 0x4C000014clock_init:ldr r0,= CLKDIVNmov r1,#0x5str r1,[r0]%設(shè)置cpu為異步工作模式mrc p15,0,r0,c1,c0,0 %讀取c1寄存器的值到r0 ,異步模式設(shè)置見2440手冊243頁,c1寄存器見核手冊36頁orr r0,r0,#0xc0000000mcr p15,0,r0,c1,c0,0%設(shè)置FCLK頻率#define MPLLCON 0x4c000004%因?yàn)镕CLK的頻率由鎖相環(huán)MPLL決定,若要配置其頻率為405Mhz,則可以通過查表得:MDIV等于127,PDIV等于2,SDIV等于1,分別位于寄存器MPLLCON的[19:12]、[9:4]、[1:0]#define MPLL_405MHZ ((127<<12)|(2<<4)|(1<<0))ldr r0,= MPLLCONldr r1,= MPLL_405MHZstr r1,[r0]mov pc,lr

6410:

#define CLK_DIV0 0x7e00f020#define OTHERS 0x7e00f900#define MPLL_CON 0x7e00f010#define APLL_CON 0x7e00f00c#define CLK_SRC 0x7e00f01c#define DIV_VAL ((0x0<<0)|(0x1<<9)|(0x1<<8)|(0x3<<12))#define PLL_VAL ((1<<31)|(266<<16)|(3<<8)|(1<<0))init_clock:%設(shè)置分頻系數(shù) ldr r0, =CLK_DIV0 ldr r1, =DIV_VAL str r1, [r0]%設(shè)置異步模式 ldr r0, =OTHERS ldr r1, [r0] bic r1,r1,#0xc0 str r1, [r0]%設(shè)置APLL的輸出頻率 ldr r0, =APLL_CON ldr r1, =PLL_VAL str r1, [r0]%設(shè)置MPLL的輸出頻率 ldr r0, =MPLL_CON ldr r1, =PLL_VAL str r1, [r0]%選擇器,參考146頁的時(shí)鐘選擇寄存器和126頁的時(shí)鐘樹 ldr r0, =CLK_SRC mov r1, #0x3 str r1, [r0] mov pc, lr

備注:分頻系數(shù)一般去查看uboot,時(shí)鐘的輸出頻率需要去配置時(shí)鐘控制寄存器,CLK_SRC時(shí)選擇器


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大竹县| 云和县| 桂平市| 呼和浩特市| 铅山县| 南召县| 阿克陶县| 甘谷县| 金昌市| 临沭县| 共和县| 宁强县| 乐东| 兴山县| 临潭县| 永福县| 洛阳市| 柳江县| 南郑县| 临沧市| 丰宁| 科技| 墨江| 海晏县| 龙川县| 蕲春县| 泉州市| 新竹县| 南木林县| 姚安县| 辉县市| 富川| 湖口县| 白朗县| 墨玉县| 兴海县| 巴中市| 平罗县| 田阳县| 双牌县| 垦利县|