我正在开发一种产品,其中闪存空间(用于固件存储)和内存(用于执行)都非常宝贵。因此,我希望生成的 ELF 尽可能小,而不会明显牺牲产品性能。代码混合编译为 ARM 和 Thumb,当我可以摆脱它时,基本上使用 Thumb 模式。我一直在调整编译器/链接器选项以减小大小(优化空间、删除未使用的函数等)。我注意到的一件事是我得到了很多(大约 180 个)生成的远调用补丁,这占用了一些空间。
长话短说,任何人都知道最小化或消除这些补丁的好方法(大概是通过避免大多数/所有远调用)?在我看来,应该有一种方法来重新组织和优化所有内容在其各自的内存部分中的存储/链接顺序,到目前为止调用是不必要的或至少是最小化的。
编辑:我不再需要这个问题的答案。事实证明,远调用在该产品中是不可避免的,因为它们是 ITCM 和 SRAM 之间的调用所必需的(不幸的是,它们在地址空间中彼此相距很远)。感谢您的评论和回答。