你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[复制链接]
风华正茂0314
提问时间:2014-3-6 10:13 /
各位高手,我在用STM32做项目的时候,用MDK,我发现我的程序老是出一些莫名奇妙的问题,比如,编译好正确运行的程序,再加一个函数或将一些变量定义多些,再运行就会出问题!请问这是什么原因啊?网上好像说跟堆栈大小有关??求指教!
这是程序能按预期功能运行时的编译结果!
这是添加一些代码后程序编译的结果,程序运行就乱了!
可以确定的是添加的代码不会影响程序的逻辑功能。
赞
0
收藏
0
评论
8
分享
发布时间:2014-3-6 10:13
举报
请先
登录
后回复
8个回答
fengye5340
回答时间:2014-3-6 10:18:08
a0a.1 0b0c
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
你的程序代码不大,可能是你采用默认设置的堆栈空间太小了,运行出错了,修改一下堆栈吧,最后用仿真器看看你的程序跑到什么地方了,出错在什么位置。
下面是堆栈修改的地方:在startup_XXX.s文件里面呢。
赞
0
评论
回复
支持
反对
风华正茂0314
回答时间:2014-3-6 10:37:42
a0a.1 0b0c
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我设置了,跟上面的一样。。。木有仿真器。。。。
赞
0
评论
回复
支持
反对
fengye5340
回答时间:2014-3-6 11:52:12
a0a.1 0b0c
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复第 3 楼 于2014-03-06 10:37:42发表:
我设置了,跟上面的一样。。。木有仿真器。。。。
上面只是位置实例,这个堆栈大小对应一般的小代码运行没问题,建议你修改成 0x1000 0x400 试一下
赞
0
评论
回复
支持
反对
青檬
回答时间:2014-3-6 12:37:10
a0a.1 0b0c
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
添加的东西在哪里定义的
赞
0
评论
回复
支持
反对
风华正茂0314
回答时间:2014-3-6 14:25:10
a0a.1 0b0c
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
确实是堆栈的问题。。。
赞
0
评论
回复
支持
反对
aaa999kk
回答时间:2014-3-7 14:06:11
a0a.1 0b0c
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
堆栈的代码有点问题啊,修改下, 看看顺序和大小有没有错
赞
0
评论
回复
支持
反对
aaa1350
回答时间:2014-3-7 23:51:27
a0a.1 0b0c
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
堆栈的代码有点乱还是循环没做好吗?
赞
0
评论
回复
支持
反对
wkuang
回答时间:2014-3-9 19:52:42
a0a.1 0b0c
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
看着现象像是堆栈出问题了, STM32的堆栈空间有限,看看有没有这么几种问题
1、函数中有很大的局部变量;
2、函数入参是结构体,结构体占的空间很大。
这两种情况都可能导致堆栈溢出,代码跑飞
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
下面是堆栈修改的地方:在startup_XXX.s文件里面呢。
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我设置了,跟上面的一样。。。木有仿真器。。。。
上面只是位置实例,这个堆栈大小对应一般的小代码运行没问题,建议你修改成 0x1000 0x400 试一下
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RE:求大神指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1、函数中有很大的局部变量;
2、函数入参是结构体,结构体占的空间很大。
这两种情况都可能导致堆栈溢出,代码跑飞