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

使用STM32CubeIDE修改堆栈大小后,生成的BIN文件内容没变化

[复制链接]
阿白12345 提问时间:2021-5-7 17:25 / 未解决
大家好!我在使用STM32CubeIDE V1.6.1版本修改工程的堆栈后,在ld文件里已经看到堆栈对应的变量有改变了,但是为什么生成出来的bin文件没变化呢?
上传了的两个工程文件,希望大家可以帮忙看看。

工程G473RE_T1与工程G473RE_T2的的堆栈配置


           


           

两个工程内显示的RAM使用情况确定不一样,但是编译生成的bin文件通过对比工具对比发现是一样的。
在我的使用场景里,需要通过bin文件升级的方式来改变目标板的堆栈大小配置,如果bin文件不变,岂不是通过升级bin的方式改变不了堆栈大小了?
烦请大家指教,谢谢!


G473RE_T1.zip

下载

6.71 MB, 下载次数: 0, 下载积分: ST金币 -1

G473RE_T2.zip

下载

6.71 MB, 下载次数: 0, 下载积分: ST金币 -1

收藏 评论14 发布时间:2021-5-7 17:25

举报

14个回答
废鱼 回答时间:2021-5-8 09:27:05
bin文件大小变更明显需要代码的增加或者减少。只修改堆栈的大小,bin文件的变化肉眼是看不出来的。IAP以后,重启就按照新的堆栈执行了。
阿白12345 回答时间:2021-5-8 13:56:48
飞羽一条 发表于 2021-5-8 09:27
bin文件大小变更明显需要代码的增加或者减少。只修改堆栈的大小,bin文件的变化肉眼是看不出来的。IAP以后 ...

我指的不是bin文件的大小没变化,我是说,改了堆栈大小后,bin文件的二进制数据也没有变化。不知道是不是IDE与G0、G4系列MCU的兼容没做好,我试了F1系列的MCU,改了后,bin文件内容是变化的,G4的反而不变化。
奇迹 回答时间:2021-5-8 15:24:52
不可能一点没变啊,你可以查一下工程里面的.s文件,看一下Stack_Size与Heap_Size有没有变化
废鱼 回答时间:2021-5-8 15:48:49
楼主看一下新的bin文件生成日期。确定比较的两个文件的堆栈不一样。或者可以把你的工程传上来。我们一块试一下。只传输最简单的工程就可以了,公司内部文件可以不用传输。
废鱼 回答时间:2021-5-8 15:48:50
楼主看一下新的bin文件生成日期。确定比较的两个文件的堆栈不一样。或者可以把你的工程传上来。我们一块试一下。只传输最简单的工程就可以了,公司内部文件可以不用传输。
xmshao 回答时间:2021-5-8 16:28:22
不是很明白你问题的意图,一般来讲修改启动文件或链接文件里的堆栈大小并不会影响BIN文件大小。你似乎在说通过BIN文件
的变化来判断IAP工程的堆栈变化,不懂你参照的标准。IAP的话,IAP工程里依然有启动文件/链接文件可以配置堆栈大小的,而无须通过查看BIN的变化来判断.

阿白12345 回答时间:2021-5-8 16:29:22
奇迹 发表于 2021-5-8 15:24
不可能一点没变啊,你可以查一下工程里面的.s文件,看一下Stack_Size与Heap_Size有没有变化
...

.s文件跟.ld文件内堆栈对应的内容都是变化的,包括IDE内Memory Regions界面显示的RAM使用情况也有变化,唯独是生产出来的bin文件内容没改变,目前发现只在G0、G4的工程会有这个问题
阿白12345 回答时间:2021-5-8 16:32:44
xmshao 发表于 2021-5-8 16:28
不是很明白你问题的意图,一般来讲修改启动文件或链接文件里的堆栈大小并不会影响BIN文件大小。你似乎在说 ...

我意思是通过STM32CubeIDE修改了G4系列MCU工程的堆栈大小后,编译生成出来的bin文件里面的二进制数据没变化,因为正打算通过远程升级bin软件的方式来调整客户产品系统的堆栈大小,但是如果bin文件没变化的话,岂不是没改成功。。。
阿白12345 回答时间:2021-5-8 16:34:37
飞羽一条 发表于 2021-5-8 15:48
楼主看一下新的bin文件生成日期。确定比较的两个文件的堆栈不一样。或者可以把你的工程传上来。我们一块试 ...

产品工程确实不方便上传呀,我把原本的bin文件删了,重新编译,确实会生成新的,但内容还真就没变化。原本还以为是我电脑IDE的问题,换了别人电脑来编译也是一样的效果。
xmshao 回答时间:2021-5-8 16:38:25
阿白12345 发表于 2021-5-8 16:32
我意思是通过STM32CubeIDE修改了G4系列MCU工程的堆栈大小后,编译生成出来的bin文件里面的二进制数据没变 ...

你换个IDE试试。
xmshao 回答时间:2021-5-8 16:51:04
顺便问你下,你是只修改堆,还是 堆 和栈都修改了?
阿白12345 回答时间:2021-5-8 17:05:16
xmshao 发表于 2021-5-8 16:51
顺便问你下,你是只修改堆,还是 堆 和栈都修改了?

单独改堆,单独改栈,以及通过改都试过了,情况是一样的,不会变。试过使用别的版本的IDE,用的V1.5.1,还是不行。
奇迹 回答时间:2021-5-9 16:07:26
阿白12345 发表于 2021-5-8 16:29
.s文件跟.ld文件内堆栈对应的内容都是变化的,包括IDE内Memory Regions界面显示的RAM使用情况也有变化, ...

如果是重新创建一个工程会有同样的问题吗?如果有可以把新创建的工程发上来,大家帮你看一看
阿白12345 回答时间:2021-5-20 22:11:04
奇迹 发表于 2021-5-9 16:07
如果是重新创建一个工程会有同样的问题吗?如果有可以把新创建的工程发上来,大家帮你看一看 ...

重新创建一个工程还是没法解决,被这个问题困扰了一两周了,已经上传了两个简单的工程文件,有时间麻烦帮忙分析一下,十分感谢!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版