freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm處理器啟動(dòng)過程-文庫吧資料

2024-10-08 16:23本頁面
  

【正文】 ,以存放跳轉(zhuǎn)地址 stmfd sp!,{r0} 保存 R0 ldr r0,=\HandleLabe 加載符號(hào)地址 HandleXXX到 r0 ldr r0,[r0] 讀出 HandleXXX指向的中斷服務(wù)入口地址 str r0,[sp,4] 并存入堆棧 ldmfd sp!,{r0,pc} 恢復(fù) R0,并跳轉(zhuǎn)到中斷處理程序 .endm 這是一個(gè)中斷入口處理宏,定義了所有中斷處理的入口形式; 對 HandleLabel 所對應(yīng)的地址進(jìn)行初始化,就指明了服務(wù)程序地址 詳細(xì)內(nèi)容請看后面 …… 15 中斷處理入口 ? HandlerFIQ: HANDLER HandleFIQ ? HandlerIRQ: HANDLER HandleIRQ ? HandlerUndef: HANDLER HandleUndef ? HandlerSWI: HANDLER HandleSWI ? HandlerDabort: HANDLER HandleDabort ? HandlerPabort: HANDLER HandlePabort ? HandlerADC: HANDLER HandleADC ? HandlerRTC: HANDLER HandleRTC ? … … ? HandlerEINT1: HANDLER HandleEINT1 ? HandlerEINT0: HANDLER HandleEINT0 16 中斷處理物理地址 .equ HandleUndef, _ISR_STARTADDRESS+4 .equ HandleSWI, _ISR_STARTADDRESS+4*2 .equ HandlePabort, _ISR_STARTADDRESS+4*3 .equ HandleDabort, _ISR_STARTADDRESS+4*4 .equ HandleReserved,_ISR_STARTADDRESS+4*5 .equ HandleIRQ, _ISR_STARTADDRESS+4*6 .equ HandleFIQ, _ISR_STARTADDRESS+4*7 .equ HandleADC, _ISR_STARTADDRESS+4*8 .equ HandleRTC, _ISR_STARTADDRESS+4*9 … … .equ HandleEINT1, _ISR_STARTADDRESS+4*32 .equ HandleEINT0, _ISR_STARTADDRESS+4*33/* 0xc7fff84 */ 17 中斷向量表 如前面所示,在中斷處理地址空間表,具體寫入什么值就把它作為服務(wù)程序地址,如: // 聲明 KeyboardInt 是 EINT1服務(wù)程序 pISR_EINT1 = (int)KeyboardInt。 包括處理器異常處理,都由啟動(dòng)文件定義好了一個(gè)連續(xù)地址空間用于存放服務(wù)程序的地址 *這是啟動(dòng)文件的一個(gè)處理方法:把中斷向量統(tǒng)一存放 18 中斷初始化 .macro HANDLER HandleLabel sub sp,sp,4 調(diào)整 sp,以存放跳轉(zhuǎn)地址 stmfd sp!,{r0} 保存 R0 ldr r0,=\HandleLabel 加載符號(hào)地址 HandleXXX到 r0 ldr r0,[r0] 讀出 HandleXXX指向的中斷服務(wù)入口地址 str r0,[sp,4] 并存入堆棧 ldmfd sp!,{r0,pc} 恢復(fù) R0,并跳轉(zhuǎn)到中斷處理程序 .endm VECTOR_BRANCH: CPU向量表存放在緊靠異常向量表后 ldr pc,=HandlerEINT0 mGA 處理器硬件向量表入口 ldr pc,=HandlerEINT1 0x24 HandlerEINT1: HANDLER HandleEINT1 HandlerEINT0: HANDLER HandleEINT0 .equ _ISR_STARTADDRESS, 0xc7fff00 GCS6: 8 M SDRAM .equ HandleEINT1, _ISR_STARTADDRESS+4*32 0x0C7FFF80 19 中斷初始化與服務(wù)程序 rINTMOD = 0x0。 禁止 FIQ,使能 IRQ, CPU為向量中斷方式 rINTMSK =~(BIT_GLOBAL|BIT_EINT1)。 rPCONG = 0xffff。 上拉使能 rEXTINT = rEXTINT|0x20。 void KeyboardInt(void) { int value。 清除中斷標(biāo)志位 value = key_read()。 } 20 中斷控制 復(fù)位后中斷可能是被禁止的 MRS r0, CPSR BIC r0, r0, 0x80 使能 IRQ中斷 MSR CPSR_cxsf, r0 before ‘BL Main’ jump to main() 21 配置系統(tǒng)寄存器 ldr r0,=CLKCON ldr r1,=0x7ff8 All unit block CLK enable str r1,[r0] Fin=8MHz, Fout=64MHz ldr r0,=PLLCON setting of PLL ldr r1,=((M_DIV12)+(P_DIV4)+S_DIV) str r1,[r0] 22 禁止看門狗 ldr r0,=WTCON watch dog disable ldr r1,=0x0 str r1,[r0] 在編寫應(yīng)用程序時(shí),看門狗還被用作延時(shí)調(diào)整 具體請查看源程序 23 設(shè)置(配置)存儲(chǔ)區(qū) ? 存儲(chǔ)區(qū)類型 ? 存儲(chǔ)區(qū)大小和起始地址 ? 訪問等待周期 ? 訪問時(shí)序 ? 數(shù)據(jù)總線寬度 ? 其他需要設(shè)置的內(nèi)容 24 存儲(chǔ)區(qū)配置 SMRDATA: .long 0x11110102 /* Bank0=16bit BootRom(AT29C010A*2) :0x0 */ .long ((B0_Tacs13)+(B0_Tcos11)+(B0_Tacc8)+(B0_Tcoh6)+(B0_Tah4)+(B0_Tacp2)+(B0_PMC))/* GCS0 */ .long ((B1_Tacs13)+(B1_Tcos11)+(B1_Tacc8)+(B1_Tcoh6)+(B1_Tah4)+(B1_Tacp2)+(B1_PMC))/* GCS1 */ .long ((B2_Tacs13)+(B2_Tcos11)+(B2_Tacc8)+(B2_Tcoh6)+(B2_Tah4)+(B2_Tacp2)+(B2_PMC))/* GCS2 */ .long ((B3_Tacs13)+(B3_Tcos11)+(B3_Tacc8)+(B3_Tcoh6)+(B3_Tah4)+(B3_Tacp2)+(B3_PMC))/* GCS3 */ .long ((B4_Tacs13)+(B4_Tcos11)+(B4_Tacc8)+(B4_Tcoh6)+(B4_Tah4)+(B4_Tacp2)+(B4_PMC))/* GCS4 */ .long ((B5_Tacs13)+(
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1