stm32启动代码问题

2019-07-14 18:13发布

栈名:S TAC K 大小:Stack_Size 只分配空间不做初始化或者初始化为0:NOINIT 可读可写:READWRITE :   按8 字节对齐:ALI GN=3  栈顶地址:__in it ia l_s p  Stack_Size    EQ U    0x00000400     A R EA     S TAC K,  NOINIT,  READWRITE ,  ALI GN=3 Stack_Mem     S PA C E    Stack_Size __in it ia l_s p  请问以上程序中的:__in it ia l_s p   这个没有定义编译器怎么知道它呢 谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
freesea123
1楼-- · 2019-07-14 21:31
 这个在编译器里面有设置,比如MDK的工程config里面
maruidiyi
2楼-- · 2019-07-15 03:13
__initial_sp:这个函数内容见下面堆的设置
;  Heap Configuration
;     Heap Size (in Bytes)
;
Heap_Size       EQU     0x00000200
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
最上面的是栈的设置,
045086068
3楼-- · 2019-07-15 04:26
编译器的配置有的
东少2016
4楼-- · 2019-07-15 05:47
 精彩回答 2  元偷偷看……
rnr15483586
5楼-- · 2019-07-15 09:00
_initial_sp 是个标签,代表当前指令的地址,由汇编器计算出的,代码里使用space分配了Stack_Size个内存单元后再在之后加上_initial_sp,后面会用DCD     __initial_sp  在向量表0初始化栈顶地址,使用堆栈时栈顶地址减1恰好是分配的栈区间

一周热门 更多>