S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf

S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf

ID:51494618

大?。?19.09 KB

頁(yè)數(shù):28頁(yè)

時(shí)間:2020-03-25

S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf_第1頁(yè)
S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf_第2頁(yè)
S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf_第3頁(yè)
S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf_第4頁(yè)
S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf_第5頁(yè)
資源描述:

《S3C2410啟動(dòng)程序設(shè)計(jì)——2410Inits詳細(xì)分.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、2410Init.s詳細(xì)注釋分析Crealse.ShengS3C2410啟動(dòng)程序設(shè)計(jì)——2410Init.s詳細(xì)分析工程里面的頭文件2410Init.s包括了板子上電后的初始化(與vivi很相似),具體有幾個(gè)步驟:1.屏蔽所有中斷,關(guān)看門(mén)狗。2.根據(jù)工作頻率設(shè)置PLL寄存器3.初始化存儲(chǔ)控制相關(guān)寄存器4.初始化各模式下的棧指針5.設(shè)置缺省中斷處理函數(shù)6.將數(shù)據(jù)段拷貝到RAM中,將零初始化數(shù)據(jù)段清零7.跳轉(zhuǎn)到C語(yǔ)言Main入口函數(shù)中在開(kāi)發(fā)板上跑了一遍,基本過(guò)程已經(jīng)清晰,還有些細(xì)節(jié)問(wèn)題有待進(jìn)一步深入研究!將這個(gè)程序

2、注釋了一下,可能有些地方不是很正確,只提供參考。;=========================================;NAME:2410INIT.S;DESC:Cstartupcodes;Configurememory,ISR,stacks;InitializeC-variables;HISTORY:;2002.02.25:kwtark:ver0.0;2002.03.20:purnnamu:AddsomefunctionsfortestingSTOP,POWER_OFFmode;2002.04.

3、10:SJS:subinterruptdisable0x3ff->0x7ff;2002.11.29:Kong:DCDBANKSIZEResiger0x32->0xb2(ARMcoreburstenable);=========================================INCLUDEoption.incINCLUDEmemcfg.inc批注[Crealse1]:這些文件定INCLUDE2410addr.inc義了一些地址數(shù)據(jù)等BIT_SELFREFRESHEQU(1<<22);下面是對(duì)arm

4、處理器模式寄存器對(duì)應(yīng)值的常數(shù)定義,arm處理器中有一個(gè)CPSR程序狀態(tài)寄存器,它的后五位決定目前的處理器模式;Pre-definedconstants第1頁(yè)共28頁(yè)2410Init.s詳細(xì)注釋分析Crealse.ShengUSERMODEEQU0x10FIQMODEEQU0x11IRQMODEEQU0x12SVCMODEEQU0x13ABORTMODEEQU0x17UNDEFMODEEQU0x1bMODEMASKEQU0x1fNOINTEQU0xc0;Thelocationofstacks批注[Crealse2

5、]:UserStackEQU(_STACK_BASEADDRESS-0x3800);0x33ff4800~_STACK_BASEADDRESSSVCStackEQU(_STACK_BASEADDRESS-0x2800);0x33ff5800~EQU0x33ff8000_MMUTT_STARTADDRESSUndefStackEQU(_STACK_BASEADDRESS-0x2400);0x33ff5c00~EQU0x33ff8000AbortStackEQU(_STACK_BASEADDRESS-0x2000)

6、;0x33ff6000~_ISR_STARTADDRESSEQU0x33ffff00IRQStackEQU(_STACK_BASEADDRESS-0x1000);0x33ff7000~FIQStackEQU(_STACK_BASEADDRESS-0x0);0x33ff8000~;checkiftasm.exeisused.;arm處理器有兩種工作狀態(tài):1.arm:32位這種工作狀態(tài)下執(zhí)行字對(duì)準(zhǔn)的arm指令批注[Crealse3]:各有優(yōu)缺2.Thumb:16位這種工作狀;態(tài)執(zhí)行半字對(duì)準(zhǔn)的Thumb指令點(diǎn):執(zhí)行效

7、率、占用空間;因?yàn)樘幚砥鞣譃?6位32位兩種工作狀態(tài),程序的編譯器也是分16位和32兩種編譯方式,所以下面的程序用于根據(jù)處理器工作狀態(tài)確定編譯器編譯方式;code16偽指令指示匯編編譯器后面的指令為16位的thumb指令;code32偽指令指示匯編編譯器后面的指令為32位的arm指令;這段是為了統(tǒng)一目前的處理器工作狀態(tài)和軟件編譯方式(16位編譯環(huán)境使用tasm.exe編譯;Checkiftasm.exe(armasm-16...@ADS1.0)isused.GBLLTHUMBCODE[{CONFIG}=16;i

8、fconfig==16這里表示你的目前處于領(lǐng)先地16位編譯方式THUMBCODESETL{TRUE};設(shè)置THUMBCODE為trueCODE32;轉(zhuǎn)入32位編譯模式

9、;else第2頁(yè)共28頁(yè)2410Init.s詳細(xì)注釋分析Crealse.ShengTHUMBCODESETL{FALSE};設(shè)置THUMBCODE為false]批注[Crealse4]:宏定義!MACROMOV_PC_L

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。