gpt4 book ai didi

c - 我的 BSS 部分的大小是否达到临界值?

转载 作者:行者123 更新时间:2023-11-30 14:47:57 25 4
gpt4 key购买 nike

我为我公寓的供暖系统编写了一个小应用程序,在编译结束时我将得到以下输出:

 'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "Phaethon_F446.elf"
text data bss dec hex filename
142935 924 77140 220999 35f47 Phaethon_F446.elf

我使用的是具有 128 KB RAM 的 STM32F446RE,如果我正确的话,bss 部分需要 75KB RAM;这意味着超过 50% 的 RAM 消失了。

  • 我错了吗?
  • 杀死我的 RAM 或者编译器表示的这个值是错误的?

  • 我应该对软件进行哪些更改?

最佳答案

是的,你是对的,根据报告,大约 50% 的 RAM 被 .bss 占用。可以肯定的是,您可以生成映射文件来找出变量的分配方式(或位置)(-Wl,-Map=output.map)。

关于解决方案,您必须优化软件(是否需要所有变量?您是否使用编译器优化作为 -O3/... options ?您可以重复使用变量吗?)我不知道您的代码/算法/等,但看起来仅仅用于加热系统就需要很多字节。

链接器脚本将向您显示 .bss 部分的边框(即当前大小)(以及您的内存如何分割),以防万一您想要修改它(您可以选择内存的分配方式) )。

关于c - 我的 BSS 部分的大小是否达到临界值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com