你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32启动代码问题

[复制链接]
带刺儿 提问时间:2013-12-26 09:45 /
栈名: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   这个没有定义编译器怎么知道它呢 谢谢
收藏 评论6 发布时间:2013-12-26 09:45

举报

6个回答
有缘于你 回答时间:2013-12-26 12:09:42

RE:stm32启动代码问题

__initial_sp 是编译器自带的定义吧
dzc2001 回答时间:2013-12-26 15:57:45

回复:stm32启动代码问题

 这个在编译器里面有设置,比如MDK的工程config里面
fengye5340 回答时间:2013-12-26 17:03:44

RE:stm32启动代码问题

__initial_sp:这个函数内容见下面堆的设置
;  Heap Configuration
;     Heap Size (in Bytes)
;
Heap_Size       EQU     0x00000200
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
最上面的是栈的设置,
勒布朗 回答时间:2013-12-26 21:03:49

RE:stm32启动代码问题

编译器的配置有的
wkuang 回答时间:2013-12-27 22:44:06

RE:stm32启动代码问题

这些事预编译指令, 是编译器自带的。   
C语言编译出来都的内容包括: RO(代码)、RW(数据/也就是有初始化的变量)、ZI(未初始化的变量)。
这个是ARM构架的内容。
EQU是汇编指令,
ALIGN是预编译指令,用来做全局变量对齐的。
A R EA     S TAC K,  NOINIT,  READWRITE ,  ALI GN=3
温柔的武士刀 回答时间:2013-12-28 14:34:40

RE:stm32启动代码问题

_initial_sp 是个标签,代表当前指令的地址,由汇编器计算出的,代码里使用space分配了Stack_Size个内存单元后再在之后加上_initial_sp,后面会用DCD     __initial_sp  在向量表0初始化栈顶地址,使用堆栈时栈顶地址减1恰好是分配的栈区间

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版