关于启动程序的一些疑问:
:参考经常用的启动文件44binit.s:
:它的栈空间定义与中断向量的入口是这样对应的。
:#define _ISR_STARTADDRESS 0xc7fff00
:;//////////////////////////////////////////////////////////
:;//栈空间定义
:;//////////////////////////////////////////////////////////
: ^ (_ISR_STARTADDRESS-0x500)
:
:UserStack # 256 ;c1(c7)ffa00
:SVCStack # 256 ;c1(c7)ffb00
:UndefStack # 256 ;c1(c7)ffc00
:AbortStack # 256 ;c1(c7)ffd00
:IRQStack # 256 ;c1(c7)ffe00
:FIQStack # 0 ;c1(c7)fff00
:
:;//////////////////////////////////////////////////////////
:;//ARM中断向量入口定义
:;//////////////////////////////////////////////////////////
: ^ _ISR_STARTADDRESS
:HandleReset # 4
:HandleUndef # 4
:HandleSWI # 4
:HandlePabort # 4
:HandleDabort # 4
:HandleReserved # 4
:HandleIRQ # 4
:HandleFIQ # 4
:
:;//////////////////////////////////////////////////////////
:;//44B0中断向量入口定义
:;//////////////////////////////////////////////////////////
:HandleADC # 4
:HandleRTC # 4
: …………..//中间的省略掉
:HandleEINT1 # 4
:HandleEINT0 # 4 ;0xc1(c7)fff84
这到底是什么意思呢?
比如说这一句:UserStack # 256
中间怎么没有EQU之类的宏定义,直接加#可以吗?
------解决方案--------------------------------------------------------
#表示立即数
------解决方案--------------------------------------------------------
M$ 使用#表示立即数
GUN 使用$表示立即数
------解决方案--------------------------------------------------------
HandleReset # 4 这些是一些宏。 #XX是立即数