编译时的RAM内存优化

3

我正在进行一个项目,它使用C编程语言。我试图在编译时分析库文件的RAM内存(段分配)以及特定特性。这将有助于我在编译级别上静态地优化数据大小。

我使用的是Wind River(Diab 5.8)编译器。该编译器可在Freescale微控制器平台上运行。我在Windows环境中开发此应用程序。请帮助我找到相关资料。

2个回答

1
如果您将-m传递给链接器,它就足以打印出段分配列表。这样,您就可以看到代码段中有多少是由特定(静态链接的)库占用的。

你确定吗?至少对于Diab 5.6,获取地图转储的选项是“-m”。使用“-M”会导致“无效的选项格式:-M”。 - undur_gongor
对于大多数链接器来说,应该是-m,而GNU LD有一个很好的--print-map选项,但我从未使用过Diab。不过链接映射应该能够显示您所需的内容。 - jleahy
我刚刚查看了Diab 5.8的手册,确实是“-m”,所以我修正了你的答案(并点赞)。 - undur_gongor

0

好的,我理解了架构的区别:你尝试过this?


我怀疑在这个微控制器上,当然不需要操作系统,编译器(或链接器)为特定的目的分配特定的RAM范围。因此,例如rwdata段将位于某个选择的地址,由静态链接器修复。 - Steve Jessop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接