相关疑难解决方法(0)

减少可执行文件大小的过程

我正在生成一个在ARM处理器上运行的hex文件,我想保持在32K以下.它目前比这大得多,我想知道是否有人可能会对减肥的最佳方法有什么建议?

这是我到目前为止所做的

  1. 所以我在它上面运行'size'来确定hex文件有多大.
  2. 然后'size'再次查看每个目标文件有多大,该链接用于创建十六进制文件.似乎大多数大小来自外部库.
  3. 然后我使用'readelf'来查看哪些函数占用了大部分内存.
  4. 我搜索了代码,看看是否可以消除对这些函数的调用.

这是我卡住的地方,有一些我不直接调用的函数(例如_vfprintf),我找不到调用它的所以我可以删除调用(因为我认为我不需要它).

那么接下来的步骤是什么?

回答答案:

  • 正如我所看到的,有些函数被调用占用大量内存.然而,我无法找到所谓的内容.
  • 我想省略那些功能(如果可能的话),但我找不到它们的名字!我想可以从任意数量的库函数调用.
  • 链接器正在按需工作,我认为它只包含相关的库文件.您如何知道是否仅包含相关功能?你可以为此设置旗帜吗?
  • 我正在使用GCC

embedded arm

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

arm ×1

embedded ×1