用户堆与栈的初始化
- ALIGN ;用来指定符号的对齐方式,默认按照4字节对齐
- ;*******************************************************************************
- ; User Stack and Heap initialization
- ;*******************************************************************************
- IF :DEF:__MICROLIB ;这里会判断是否定义了__MICROLIB,即表示是否使用MicroLib库,可以看仙女棒中是否勾选
- EXPORT __initial_sp ;如果使用MicroLib库,则给__initial_sp、__heap_base、__heap_limit给全局属性,可以让外部文件调用
- EXPORT __heap_base
- EXPORT __heap_limit
- ELSE
- ;如果没有使用MicroLib库,则使用双段存储器模式,并且声明__user_initial_stackheap全局属性,由用户自行初始化堆栈
- IMPORT __use_two_region_memory
- EXPORT __user_initial_stackheap
- ;以下就是没有使用MicroLib库,由用户自行初始化堆栈的程序
- __user_initial_stackheap
- LDR R0, = Heap_Mem
- LDR R1, =(Stack_Mem + Stack_Size)
- LDR R2, = (Heap_Mem + Heap_Size)
- LDR R3, = Stack_Mem
- BX LR
- ALIGN
- ENDIF
- END
|