付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)習(xí) - 好資料 EasyARM2200 開發(fā)板學(xué)習(xí)筆記:?jiǎn)?dòng)代碼分析 olyaim 發(fā)表于 2022-7-17 10:49 嵌入式系統(tǒng) 返回版面 ;定義堆棧的大小 FIQ_STACK_LEGTH EQU 0; 每層嵌套需要 9 個(gè)字堆棧,答應(yīng) 8 層嵌套 IRQ_STACK_LEGTH 9*8 EQU ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH 0EQU ;處理器模式常量定義 NoInt EQU 0 x80 ; 禁止 IRQ 中斷 USR32Mode EQU 0 x10 ; 用戶模式 SVC32Mode EQU 0 x13 ; 治理模式 SYS32Mode EQ
2、U 0 x1f ; 系統(tǒng)模式 IRQ32Mode EQU 0 x12 ; 中斷模式 FIQ32Mode EQU 0 x11 ; 快速中斷模式 PINSEL2 EQU 0 xE002C014BCFG0 EQU 0 xFFE00000BCFG1 EQU 0 xFFE00004BCFG2 EQU 0 xFFE00008 BCFG3 EQU 0 xFFE0000C ;引入的外部標(biāo)號(hào)在這聲明 IMPORT FIQ_Exception ; 快速中斷反常處理程序 IMPORT main;C 語(yǔ)言主程序入口 IMPORT TargetResetInit; 目標(biāo)板基本初始化 IMPORT StackUsr; 用
3、戶模式棧 bottom_of_heap ; 用戶模式堆 IMPORT IMPORT SoftwareInterrupt ; 軟件中斷處理程序 ;給外部使用的標(biāo)號(hào)在這聲明 EXPORT EXPORT EXPORT Reset rt_div0 user_initial_stackheap CODE32 AREA vectors,CODE,READONLY 更多精品文檔 第 1 頁(yè),共 5 頁(yè)學(xué)習(xí) - 好資料 ENTRY ;中斷向量表 Reset LDR PC, ResetAddr ; 復(fù)位入口 ,程序在系統(tǒng)中執(zhí)行的第一條指令 LDR PC, UndefinedAddr ; 未定義指令反常入口地址
4、LDR PC, SWI_Addr ; 軟件中斷入口地址 LDR PC, PrefetchAddr ; 取指令中止反常入口地址 LDR PC, DataAbortAddr ; 取數(shù)據(jù)中止反常入口地址 DCD 0 xb9205f80 ; 保留向量 ,值是其它中斷向量累加和的補(bǔ)碼 LDR PC, PC, #-0 xff0 ; 中斷請(qǐng)求 IRQ 入口地址 LDR PC, FIQ_Addr ; 快速中斷請(qǐng)求 FIQ 入口地址 ResetAddr DCD ResetInitUndefinedAddr DCD Undefined SWI_Addr DCD SoftwareInterruptPrefetchA
5、ddr DCD PrefetchAbort DataAbortAddr DCD DataAbort Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler ;未定義指令 Undefined B Undefined ; 發(fā)生未定義指令反常時(shí)執(zhí)行死循環(huán) ;取指令中止 PrefetchAbort B PrefetchAbort ; 發(fā)生取指令中止反常時(shí)執(zhí)行死循環(huán) ;取數(shù)據(jù)中止 DataAbort B DataAbort ; 發(fā)生取數(shù)據(jù)中止反常時(shí)執(zhí)行死循環(huán) ;快速中斷 FIQ_Handler STMFD SP., R0-R3, LR ; 現(xiàn)場(chǎng)愛(ài)惜,將 R0-
6、R3, LR 入棧 BL FIQ_Exception ; 調(diào)用快速中斷反常處理程序 LDMFD SP., R0-R3, LR ; 反常中斷返回 SUBS PC, LR, #4 ;PC 指向中斷前沒(méi)有被執(zhí)行的指令 更多精品文檔 第 2 頁(yè),共 5 頁(yè)學(xué)習(xí) - 好資料 InitStack ;初始化堆棧 MOV R0, LR ;設(shè)置中斷模式堆棧 MSR CPSR_c, #0 xd2 ;IRQ 和 FIQ 禁止 , 中斷模式 LDR SP, StackIrq ; 設(shè)置中斷模式堆棧指針 ,指向 StackIrq ;設(shè)置快速中斷模式堆棧 MSR CPSR_c, #0 xd1 ;IRQ 和 FIQ 禁止 ,
7、 快速中斷模式 LDR SP, StackFiq ; 設(shè)置快速中斷模式堆棧指針 ,指向 StackFiq ;設(shè)置中止模式堆棧 MSR CPSR_c, #0 xd7 ;IRQ 和 FIQ 禁止 , 中止模式 LDR SP, StackAbt ; 設(shè)置中止模式堆棧指針 ,指向 StackAbt ;設(shè)置未定義模式堆棧 MSR CPSR_c, #0 xdb ;IRQ 和 FIQ 禁止 , 未定義模式 LDR SP, StackUnd ; 設(shè)置未定義模式堆棧指針 ,指向 StackUnd ;設(shè)置系統(tǒng)模式堆棧 MSR CPSR_c, #0 xdf ;IRQ 和 FIQ 禁止 , 系統(tǒng)模式 LDR SP,
8、=StackUsr ; 設(shè)置系統(tǒng)模式堆棧指針 ,指向 StackUsr MOV PC, R0 ; 返回 ResetInit ;復(fù)位入口 ;初始化外部總線把握器,依據(jù)目標(biāo)板準(zhǔn)備配置 LDR R0, =PINSEL2 ; 將 PINSEL2 的地址賦給 RO IF :DEF: EN_CRP ; 判定是否有預(yù)定義 EN_CRP 宏 LDR R1, =0 x0f814910 ;PINSEL2.2 0, 禁止 JTAG 調(diào)試 ELSE LDRR1, =0 x0f814914 ;PINSEL2.2 1, 使能 JTAG 調(diào)試 ENDIF STR R1, R0 ; 初始化儲(chǔ)備器組 0 的配置寄存器 LDR
9、R0, =BCFG0 LDRR1, =0 x1000ffef ; 初始化儲(chǔ)備器組 1 的配置寄存器 STR R1, R0 LDR R0, =BCFG1 更多精品文檔 第 3 頁(yè),共 5 頁(yè)學(xué)習(xí) - 好資料 LDR R1, =0 x1000ffef STR R1, R0 ; LDR R0, =BCFG2 ; 初始化儲(chǔ)備器組 2 的配置寄存器 ; LDRR1, =0 x2000ffef ; STR R1, R0 ; LDRR0, =BCFG3 ; 初始化儲(chǔ)備器組 3 的配置寄存器 ; LDR R1, =0 x2000ffef ; STR R1, R0 BL InitStack ; 跳轉(zhuǎn)到初始化堆棧
10、代碼段 BL TargetResetInit ; 跳轉(zhuǎn)到目標(biāo)板基本初始化 B main ; 跳轉(zhuǎn)到 c 語(yǔ)言入口 user_initial_stackheap ; 庫(kù)函數(shù)初始化堆和棧 MOV pc,lr rt_div0 ; 整數(shù)除法除數(shù)為 0 錯(cuò)誤處理函數(shù) B rt_div0 IrqStackSpace + IRQ_STACK_LEGTH - 1* 4 FiqStackSpace + FIQ_STACK_LEGTH - 1* 4 AbtStackSpace + ABT_STACK_LEGTH - 1* 4 UndtStackSpace + UND_STACK_LEGTH - 1* 4 Stac
11、kIrq DCDStackFiq DCDStackAbt DCD StackUnd DCD IF :DEF: EN_CRP IF . = 0 x1fc ; 判定當(dāng)前代碼地址是否已超過(guò) 0 x1FC INFO 1,nThe data at 0 x000001fc must be 0 x87654321. nPlease delete some source before this line.ENDIF CrpData WHILE . 0 x1fc ; 未到 0 x1FC 就填充 NOP 指令 NOP WEND CrpData1 DCD 0 x87654321 ; 在 0 x1FC 處放置 0 x87654321 ,啟動(dòng)加密功能 更多精品文檔 第 4 頁(yè),共 5 頁(yè)學(xué)習(xí) - 好資料 ENDIF ;/* 支配堆??臻g */ AREA MyStacks, DATA, NOINIT, ALIGN=2 IrqStackSpace SPACE IRQ_STACK_LEGTH * 4 ; 中斷模式堆棧
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)丁砜裝置操作工安全操作評(píng)優(yōu)考核試卷含答案
- 白酒貯酒工崗前安全生產(chǎn)知識(shí)考核試卷含答案
- 搪瓷制品制造工崗前個(gè)人防護(hù)考核試卷含答案
- 中學(xué)生生病請(qǐng)假條 模板
- 外公去世請(qǐng)假條模板
- 2025年衛(wèi)浴柜類項(xiàng)目合作計(jì)劃書
- 2025年鋼結(jié)構(gòu)用H型鋼項(xiàng)目發(fā)展計(jì)劃
- 班主任培訓(xùn)課件教學(xué)
- 玻璃產(chǎn)業(yè)介紹
- 2026年酒款識(shí)別掃描儀項(xiàng)目項(xiàng)目建議書
- 電子技術(shù)基礎(chǔ)(模擬電子電路)
- 教科版九年級(jí)物理上冊(cè)期末測(cè)試卷(1套)
- 內(nèi)蒙古自治區(qū)通遼市霍林郭勒市2024屆中考語(yǔ)文最后一模試卷含解析
- 復(fù)方蒲公英注射液的藥代動(dòng)力學(xué)研究
- 單純皰疹病毒感染教學(xué)演示課件
- 廣東省中山市2023-2024學(xué)年四年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 變配電室送電施工方案
- 地質(zhì)勘查現(xiàn)場(chǎng)安全風(fēng)險(xiǎn)管控清單
- 松下panasonic-經(jīng)銷商傳感器培訓(xùn)
- 中醫(yī)舌、脈象的辨識(shí)與臨床應(yīng)用課件
- 建設(shè)工程項(xiàng)目施工風(fēng)險(xiǎn)管理課件
評(píng)論
0/150
提交評(píng)論