找回密码
 立即注册
查看: 487|回复: 6

STC32G12K128堆栈指针需要自己配置吗?

[复制链接]
已绑定手机

8

主题

14

回帖

296

积分

中级会员

积分
296
发表于 2026-2-14 18:27:04 | 显示全部楼层 |阅读模式
SPX.png
SPX2.png
复位SPX地址0x0007,执行到main()SPX地址0x0036
这个SPX堆栈是不是太小了???



回复

使用道具 举报 送花

已绑定手机

51

主题

2750

回帖

9613

积分

论坛元老

积分
9613
发表于 2026-2-14 22:17:39 | 显示全部楼层
C语言编写,编译器会自动将堆栈指针设置到变量后面。
32G系列的堆栈放在edata空间,定义变量时预留足够的空间给堆栈使用即可。
大数组,不常用变量定义时加 xdata 关键字,定义到 xdata 空间。
回复

使用道具 举报 送花

已绑定手机

8

主题

14

回帖

296

积分

中级会员

积分
296
 楼主| 发表于 2026-2-15 09:22:39 | 显示全部楼层
乘风*** 发表于 2026-2-14 22:17
C语言编写,编译器会自动将堆栈指针设置到变量后面。
32G系列的堆栈放在edata空间,定义变量时预留足够的空 ...

SPX指针默认是不是有点小?
会不会与中断等其它外设有冲突??
回复

使用道具 举报 送花

已绑定手机

51

主题

2750

回帖

9613

积分

论坛元老

积分
9613
发表于 2026-2-24 09:02:30 | 显示全部楼层
Starli*** 发表于 2026-2-15 09:22
SPX指针默认是不是有点小?
会不会与中断等其它外设有冲突??

堆栈在RAM空间,跟中断、外设没有交集,不会冲突。
回复

使用道具 举报 送花

已绑定手机

5

主题

34

回帖

341

积分

中级会员

积分
341
发表于 2026-9-28 16:36:49 | 显示全部楼层
“复位SPX地址0x0007,执行到main()SPX地址0x0036
这个SPX堆栈是不是太小了???”--------在需要入栈时sp+1, 会变成0x0037,怎么看出来太小呢
回复

使用道具 举报 送花

已绑定手机

24

主题

701

回帖

2731

积分

金牌会员

积分
2731
发表于 2026-9-28 17:01:17 | 显示全部楼层
起动文件配置大小就可以了
回复

使用道具 举报 送花

已绑定手机

307

主题

582

回帖

2957

积分

金牌会员

积分
2957
发表于 2026-9-28 17:05:37 | 显示全部楼层
Starli*** 发表于 2026-2-15 09:22
SPX指针默认是不是有点小?
会不会与中断等其它外设有冲突??

不用你设置,编译器根据你写的代码使用的内存量自动设置的
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 14:43 , Processed in 0.072040 second(s), 71 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表