;----------------可参照http://hi.baidu.com/hmos/blog/item/461babd358127434970a1677.html--------
;引入的外部标号在这声明
IMPORT __main ;C语言主程序入口
IMPORT InitStack ;初始化堆栈
IMPORT TargetResetInit ;目标板基本初始化
IMPORT |Image$$RO$$Limit| ;// 声明输入ROM区中的RW地址(即:存储RO代码最后地址的下一地址)
IMPORT |Image$$RW$$Base| ;// 声明输入RAM区的开始地址
IMPORT |Image$$ZI$$Base| ;// 声明输入零初始化区的开始地址
IMPORT |Image$$ZI$$Limit| ;// 声明输入零初始化区的末地址的下一地址
;给外部使用的标号在这声明
EXPORT Reset
EXPORT __rt_div0
EXPORT __user_initial_stackheap
;段声明
CODE32
AREA Init,CODE,READONLY
;/*********************************************************************************************************
;** 函数名称: Reset
;** 功能描述: 复位入口
;**
;** 输 入: 无
;**
;** 输 出: 无
;**
;** 全局变量: 无
;** 调用模块: 无
;**
;********************************************************************************************************/
Reset
BL InitStack ;初始化堆栈
LDR r0, =|Image$$RO$$Limit|
LDR r1, =|Image$$RW$$Base|
LDR r3, =|Image$$ZI$$Base|
CMP R0,R1
BEQ NoRW
LoopRw
CMP r1, r3
ldrcc r2, [r0],#4
strcc r2, [r1],#4
bcc LoopRw
NoRW
ldr r1, =|Image$$ZI$$Limit|
mov r2, #0
LoopZI
CMP r3, r1
strcc r2, [r3], #4
bcc LoopZI
BL TargetResetInit ;目标板基本初始化
;跳转到c语言入口
B __main
;/*********************************************************************************************************
;** 函数名称: __user_initial_stackheap
;** 功能描述: 库函数初始化堆和栈,不能删除
;**
;** 输 入: 参考库函数手册
;**
;** 输 出: 参考库函数手册
;**
;** 全局变量: 无
;** 调用模块: 无
;**
;********************************************************************************************************/
__user_initial_stackheap
LDR r0,=bottom_of_heap
MOV pc,lr
;/*********************************************************************************************************
;** 函数名称: __rt_div0
;** 功能描述: 整数除法除数为0错误处理函数,替代原始的__rt_div0减少目标代码大小
;**
;** 输 入: 参考库函数手册
;**
;** 输 出: 无
;**
;** 全局变量: 无
;** 调用模块: 无
;**
;********************************************************************************************************/
__rt_div0
B __rt_div0
;/* 分配堆空间 */
AREA Myheap, DATA, NOINIT, ALIGN=2
bottom_of_heap SPACE 256 ;库函数的堆空间
END
;/*********************************************************************************************************
;** End Of File
;********************************************************************************************************/
LPC2xxx系列ARM启动代码分析 Init.s
最新推荐文章于 2022-11-12 16:59:13 发布