首先决定看ARM模板的启动文件,光这个启动文件就不简单啊,因为ARM汇编不了解,看见一个汇编词都是翻阅手册,不懂的就上网或者看书查找,争取明了。
首先就是启动代码的作用,它包含了异常向量入口,还有初始化了堆栈。启动代码的开始时定义了一些堆栈的大小。
FIQ_STACK_LEGTH EQU 0
IRQ_STACK_LEGTH EQU 9*8 ;每层嵌套需要9个字堆栈,允许8层嵌套
ABT_STACK_LEGTH EQU 0
UND_STACK_LEGTH EQU 0
至于大小为什么这么设定,暂时还不知道。接着是一些ARM模式的定义
NoInt EQU 0x80
USR32Mode EQU 0x10
SVC32Mode EQU 0x13
SYS32Mode EQU 0x1f
IRQ32Mode EQU 0x12
FIQ32Mode EQU 0x11
然后是一些启动文件中需要用到的外部声明有外部文件需要用到的启动文件中的标号声明。
;引入的外部标号在这声明
IMPORT FIQ_Exception ;快速中断异常处理程序
IMPORT __main