LPC2xxx系列ARM启动代码分析 Init.s
来源:互联网 发布:淘宝卖家的流程图 编辑:程序博客网 时间:2024/06/06 05:01
;----------------可参照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
- ARM启动代码分析-philips的LPC2xxx系列
- LPC2xxx启动代码分析
- arm启动文件2440init.s分析
- ARM启动文件2440init.s分析
- ARM启动文件2440init.s分析
- ARM启动代码分析(2440init.c)
- mini2440开发板中启动代码2440INIT.S分析
- TQ2440裸奔程序>>2440init.s启动代码分析
- 【ARM】2440init.s文件分析(1)
- 【ARM】2440init.s文件分析(3)
- ARM启动文件2440init的分析
- ARM启动代码分析
- ARM启动代码分析
- ARM启动代码分析
- arm启动代码分析
- ARM启动代码分析
- arm启动代码分析
- struts入门之return type(一)
- DAY3|编个"hello world"的C程序先
- 使DataGrid中某一列变为手型
- Java该学些什么?
- JMS概要(Java Message Service Overview)
- LPC2xxx系列ARM启动代码分析 Init.s
- uClinux 配置与实现PPPoE客户端
- icc编译器
- 喜欢艾弗森,退役了。。。
- UTC AND GMT
- asp.net中操作Excel全集
- PL/SQL单行函数和组函数详解
- C++ stringstream
- 解读VC++编程中的文件操作API和CFile类中CreateFile方法