资源描述:
《bootloader代码分析报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Bootloader代码分析报告徐凯2007-8-3Bootloader代码分析报告11.启动代码分析11.1.vector.s代码分析11.1.1.宏定义51.1.3.判断是否是thumb指令61.1.4.定义新程序、引入新符号61.1.5.定义新程序、引入新符号71.1.6.定义系统异常向量表71.1.7.程序跳转宏定义71.1.8.异常处理程序定义71.1.9.声明C主函数程序入口101.1.10.定义vector.s中需要用到的连接器变量101.1.11.定义从FLASH启动程序的函数111.2.sysinit.s代码分析111.2.1.引入S3C
2、4510相关系统配置寄存器的地址181.2.2.定义用于配置ROM和RAM的宏181.2.3.定义用于配置SYSCFG的宏181.2.4.定义用于初始化内存的函数InitMemory181.2.5.定义用于初始化内存的函数InitMemory201.2.6.定义内存重设置函数ResetMemSet211.2.7.初始化21种中断源响应函数InitInterrupt211.2.8.初始化18个外部I/O端口函数InitPort211.2.9.初始化2个计时器的函数InitTimer221.2.10.初始化2个串口函数InitUart221.2.11.初始化栈
3、函数InitStack231.2.12.系统初始化函数InitSystem241.启动代码分析1.1.vector.s代码分析由于连接器参数中有-firstvector.o,所以先从这个文件开始分析。首先,列出源代码:1ModeMaskEQU0x1F2SVC32ModeEQU0x133IRQ32ModeEQU0x124FIQ32ModeEQU0x115User32ModeEQU0x106Abort32ModeEQU0x177Undef32ModeEQU0x1B8IRQ_BITEQU0x809FIQ_BITEQU0x4010;RomBaseAddrEQU01
4、1RamBaseAddrEQU&10012;RamEndAddrEQU&20013GBLSMainEntry14MainEntrySETS"main"15IMPORT$MainEntry16;**********************************************************17;シ・鯡ヌキケモテtasm.exeスミア默・18GBLLTHUMBCODE19[{CONFIG}=1620THUMBCODESETL{TRUE}21CODE3222
5、23THUMBCODESETL{FALSE}24]2526[THUMBCODE2
6、7CODE32;forstart-upcodeforThumbmode28]2930;******************************************************31AREASelfBoot,CODE,READONLY3233IMPORTUDF_INS_VECTOR34IMPORTSWI_SVC_VECTOR35IMPORTINS_ABT_VECTOR36IMPORTDAT_ABT_VECTOR241IMPORTIRQ_SVC_VECTOR2IMPORTFIQ_SVC_VECTOR34ENTRY5IF:DEF:
7、ads$ve
8、rsion
9、6ELSE7EXPORT__main8__main9ENDIF10ResetEntry11bSYS_RST_HANDLER12bUDF_INS_HANDLER13bSWI_SVC_HANDLER14bINS_ABT_HANDLER15bDAT_ABT_HANDLER16b.17bIRQ_SVC_HANDLER18bFIQ_SVC_HANDLER1920;******************************************************21MACRO22$LabelHANDLER$Vector23$Label24subl
10、r,lr,#425stmfdsp!,{r0-r3,lr}26ldrr0,=$Vector27ldrpc,[r0]28ldmfdsp!,{r0-r3,pc}^29MEND3031UDF_INS_HANDLER32stmfdsp!,{r0-r3,lr}33ldrr0,=UDF_INS_VECTOR34movlr,pc35ldrpc,[r0]36ldmfdsp!,{r0-r3,pc}^37SWI_SVC_HANDLER38stmfdsp!,{r0-r3,lr}39ldrr0,=SWI_SVC_VECTOR40movlr,pc41ldrpc,[r0]42ldmfd
11、sp!,{r0-r3,pc}^43INS_ABT_HANDLER4