首先,我不是嵌入式工程师,但我用 C 语言开发了几年。我的问题:当我在笔记本电脑上从我们的一个嵌入式软件(基于 contiki)编译源代码时,我得到的文件大小(222Kb 236Kb)与我们交付的分包商(我无法联系)不同。我不知道为什么我有这种差异。我想研究轨道。- 我有很好的库 - 我使用相同的 ARM EABI 编译器 - 我使用相同的 makefile 我安装了与我们的分包商相同的编译器 ARM EABI,所以我认为(可能是错误的)我的输出已准备好嵌入。我错了?
想法?
这可能归结为许多事情,例如:
也许您应该要求您的分包商提供地图文件并将地图文件与您身边的地图文件进行比较。
-Wl,-Map=the_map.map
如果您使用 GCC,请添加到 LFLAGS。
PS 此外,请确保您具有相同的配置。例如,如果您的分包商进行了“发布”构建,您也应该与您自己的“发布”构建进行比较。
对于每个编译器\链接器,您总是可以按如下部分找到映射:
text data bss dec hex filename
0x1408 0x18 0x81c 7228 1c3c size.elf
对两种建筑环境一一比较这些部分,以缩小调查范围。