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

求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[复制链接]
风华正茂0314 提问时间:2014-3-6 10:13 /
各位高手,我在用STM32做项目的时候,用MDK,我发现我的程序老是出一些莫名奇妙的问题,比如,编译好正确运行的程序,再加一个函数或将一些变量定义多些,再运行就会出问题!请问这是什么原因啊?网上好像说跟堆栈大小有关??求指教!
1.gif
这是程序能按预期功能运行时的编译结果!
 
2.gif
这是添加一些代码后程序编译的结果,程序运行就乱了!
 
可以确定的是添加的代码不会影响程序的逻辑功能。
收藏 评论8 发布时间:2014-3-6 10:13

举报

8个回答
fengye5340 回答时间:2014-3-6 10:18:08

RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

你的程序代码不大,可能是你采用默认设置的堆栈空间太小了,运行出错了,修改一下堆栈吧,最后用仿真器看看你的程序跑到什么地方了,出错在什么位置。
下面是堆栈修改的地方:在startup_XXX.s文件里面呢。
1_1.jpg
 
 
风华正茂0314 回答时间:2014-3-6 10:37:42

回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

我设置了,跟上面的一样。。。木有仿真器。。。。
fengye5340 回答时间:2014-3-6 11:52:12

回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

回复第 3 楼 于2014-03-06 10:37:42发表:
我设置了,跟上面的一样。。。木有仿真器。。。。 

上面只是位置实例,这个堆栈大小对应一般的小代码运行没问题,建议你修改成 0x1000   0x400  试一下
 
青檬 回答时间:2014-3-6 12:37:10

RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

添加的东西在哪里定义的
风华正茂0314 回答时间:2014-3-6 14:25:10

回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

确实是堆栈的问题。。。
aaa999kk 回答时间:2014-3-7 14:06:11

RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

堆栈的代码有点问题啊,修改下, 看看顺序和大小有没有错
aaa1350 回答时间:2014-3-7 23:51:27

RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

堆栈的代码有点乱还是循环没做好吗?
wkuang 回答时间:2014-3-9 19:52:42

RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!

看着现象像是堆栈出问题了, STM32的堆栈空间有限,看看有没有这么几种问题
1、函数中有很大的局部变量;
2、函数入参是结构体,结构体占的空间很大。
这两种情况都可能导致堆栈溢出,代码跑飞

所属标签

相似问题

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