下载此文档

bootloader代码分析报告.doc


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
Bootloader代码分析报告
徐凯
2007-8-3
Bootloader代码分析报告 1
1. 启动代码分析 1
. 1
. 宏定义 5
. 判断是否是thumb指令 6
. 定义新程序、引入新符号 6
. 定义新程序、引入新符号 7
. 定义系统异常向量表 7
. 程序跳转宏定义 7
. 异常处理程序定义 7
. 声明C主函数程序入口 10
. 10
. 定义从FLASH启动程序的函数 11
. 11
. 引入S3C4510相关系统配置寄存器的地址 18
. 定义用于配置ROM和RAM的宏 18
. 定义用于配置SYSCFG的宏 18
. 定义用于初始化内存的函数InitMemory 18
. 定义用于初始化内存的函数InitMemory 20
. 定义内存重设置函数ResetMemSet 21
. 初始化21种中断源响应函数InitInterrupt 21
. 初始化18个外部I/O端口函数InitPort 21
. 初始化2个计时器的函数InitTimer 22
. 初始化2个串口函数InitUart 22
. 初始化栈函数InitStack 23
. 系统初始化函数InitSystem 24
启动代码分析

由于连接器参数中有-first ,所以先从这个文件开始分析。首先,列出源代码:
ModeMask EQU 0x1F
SVC32Mode EQU 0x13
IRQ32Mode EQU 0x12
FIQ32Mode EQU 0x11
User32Mode EQU 0x10
Abort32Mode EQU 0x17
Undef32Mode EQU 0x1B
IRQ_BIT EQU 0x80
FIQ_BIT EQU 0x40
;RomBaseAddr EQU 0
RamBaseAddr EQU &100
;RamEndAddr EQU &200
GBLS MainEntry
MainEntry SETS "main"
IMPORT $MainEntry
;**********************************************************
;シ・鯡ヌキミア默・
GBLL THUMBCODE
[ {CONFIG} = 16
THUMBCODE SETL {TRUE}
CODE32
|
THUMBCODE SETL {FALSE}
]
[ THUMBCODE
CODE32 ;for start-up code for Thumb mode
]
;******************************************************
AREA SelfBoot, CODE, READONLY
IMPORT UDF_INS_VECTOR
IMPORT SWI_SVC_VECTOR
IMPORT INS_ABT_VECTOR
IMPORT DAT_ABT_VECTOR
IMPORT IRQ_SVC_VECTOR
IMPORT FIQ_SVC_VECTOR
ENTRY
IF :DEF: |ads$version|
ELSE
EXPORT __main
__main
ENDIF
ResetEntry
b SYS_RST_HANDLER
b UDF_INS_HANDLER
b SWI_SVC_HANDLER
b INS_ABT_HANDLER
b DAT_ABT_HANDLER
b .
b IRQ_SVC_HANDLER
b FIQ_SVC_HANDLER
;******************************************************
MACRO
$Label HANDLER $Vector
$Label
sub lr, lr, #4
stmfd sp!, {r0-r3, lr}
ldr r0, =$Vector
ldr pc, [r0]
ldmfd sp!, {r0-r3, pc}^
MEND
UDF_INS_HANDLER
stmfd sp!

bootloader代码分析报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小156 KB
  • 时间2018-07-09
最近更新