啟動(dòng)代碼startups分析

啟動(dòng)代碼startups分析

ID:30181592

大?。?1.54 KB

頁數(shù):5頁

時(shí)間:2018-12-27

啟動(dòng)代碼startups分析_第1頁
啟動(dòng)代碼startups分析_第2頁
啟動(dòng)代碼startups分析_第3頁
啟動(dòng)代碼startups分析_第4頁
啟動(dòng)代碼startups分析_第5頁
資源描述:

《啟動(dòng)代碼startups分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫

1、啟動(dòng)代碼start.s(相當(dāng)于bootloader的前端代碼),開機(jī)就執(zhí)行的代碼,即0x0000處放置的代碼。給CPU一個(gè)合適的工作環(huán)境。面向CPU內(nèi)核和外圍硬件,所以一般用匯編編寫。1、在起始地址分配中斷向量表即中斷處理函數(shù)(CPU要求的),以為向量空間只有4字節(jié),所以一般只是一個(gè)跳轉(zhuǎn)指令,去別處執(zhí)行。2、之后初始化存儲(chǔ)器系統(tǒng)3、初始多個(gè)模式下的堆棧(模式切換時(shí),硬件給SP置位)4、初始化有特殊要求的外圍設(shè)備,如LED燈、看門狗5、初始化用戶的執(zhí)行環(huán)境(在FLASH中運(yùn)行太慢了,把代碼整體搬遷到RAM中)6、切換處理器的工

2、作模式7、調(diào)用主程序(沒見到有存儲(chǔ)控制器的配置代碼,也沒見到有時(shí)鐘初始化代碼)下面分析,所給的2410的啟動(dòng)代碼實(shí)現(xiàn)了以上的那些功能,實(shí)現(xiàn)得顯然不全,或者不需要,或者在工程代碼的其它部分實(shí)現(xiàn)。讀程序時(shí)注意,所有程序都是逐行順序執(zhí)行的,要看清跳轉(zhuǎn)指令。GET2410addr.s//用到了2410addr.s中的寄存器地址宏定義;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SomeARM920CPSRbitdiscriptions;;;;;;;;;

3、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Pre-definedconstants//預(yù)定義的變量,一下后續(xù)代碼中使用方便,與CPSR相關(guān)USERMODEEQU0x10FIQMODEEQU0x11IRQMODEEQU0x12SVCMODEEQU0x13ABORTMODEEQU0x17UNDEFMODEEQU0x1bMODEMASKEQU0x1fNOINTEQU0xc0I_Bit*0x80F_Bit*0x40;;;;;;;;;;;;;;;;;;;;;;;;;;;;

4、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MMURegisterdiscription;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;p15CP15;c0CN0;c1CN1;c2CN2;c3CN3CtrlMMU*1CtrlAlign*2CtrlCache*4CtrlWBuff*8CtrlBigEnd*128CtrlSystem*256CtrlROM*512;initializationL0isMMUFULL_ACCESS

5、,DOMAIN,SECTIONTLB_L0_INIT*0x0C02;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Starthere//執(zhí)行代碼從這里開始;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//IMPORT,定義表示這是一個(gè)外部變量的標(biāo)號(hào),不是在本程序定義的//EXPORT,表示本程序里面用到的變量提供給其他模塊調(diào)用的。//以上兩個(gè)在匯編和C語言混合編程的時(shí)候用

6、到AREAInit,CODE,READONLYIMPORT__use_no_semihosting_swiIMPORTEnter_UNDEF//有點(diǎn)extern的感覺IMPORTEnter_SWIIMPORTEnter_PABORTIMPORTEnter_DABORTIMPORTEnter_FIQENTRY//這是程序的入口//中斷/異常向量表(跳轉(zhuǎn)),上電第一條就執(zhí)行bColdReset,跳轉(zhuǎn)到ColdReset。bColdResetbEnter_UNDEF;UndefinedInstructionbEnter_SWI;s

7、yscall_handlerorSWIbEnter_PABORT;PrefetchAbortbEnter_DABORT;DataAbortb.;ReservedHandlerbIRQ_Handler;IRQHandlerbEnter_FIQ;FIQHandler;dealwithIRQinterruptEXPORTIRQ_Handler//IRQ中斷處理子程序IRQ_HandlerIMPORTISR_IrqHandler//服務(wù)程序在外部定義STMFDsp!,{r0-r12,lr}BLISR_IrqHandler//跳轉(zhuǎn)至服

8、務(wù)程序LDMFDsp!,{r0-r12,lr}SUBSpc,lr,#4;=======;ENTRY;=======EXPORTColdResetColdReset//上電執(zhí)行復(fù)位異常函數(shù),就跳轉(zhuǎn)到這里來ldrr0,=WTCON;watchdogdisable//關(guān)閉看門狗,還沒初始化完系統(tǒng)

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

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

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