我正在生成一个在ARM处理器上运行的hex文件,我想保持在32K以下.它目前比这大得多,我想知道是否有人可能会对减肥的最佳方法有什么建议?
这是我到目前为止所做的
- 所以我在它上面运行'size'来确定hex文件有多大.
- 然后'size'再次查看每个目标文件有多大,该链接用于创建十六进制文件.似乎大多数大小来自外部库.
- 然后我使用'readelf'来查看哪些函数占用了大部分内存.
- 我搜索了代码,看看是否可以消除对这些函数的调用.
这是我卡住的地方,有一些我不直接调用的函数(例如_vfprintf),我找不到调用它的所以我可以删除调用(因为我认为我不需要它).
那么接下来的步骤是什么?
回答答案:
- 正如我所看到的,有些函数被调用占用大量内存.然而,我无法找到所谓的内容.
- 我想省略那些功能(如果可能的话),但我找不到它们的名字!我想可以从任意数量的库函数调用.
- 链接器正在按需工作,我认为它只包含相关的库文件.您如何知道是否仅包含相关功能?你可以为此设置旗帜吗?
- 我正在使用GCC