如何解决C-Linker:如何将内存与具有预定义地址的某些内存部分分开,并填充剩余的可用空间?
我不是C Linker的真正专家,也许我想做的很棘手。 目标平台是带有Gnu ARM GCC编译器的ARM-CortexM4。
我需要用预定义的FLASH地址(0x1000、0x2000等创建一个预定义的内存部分(3,4个或更多,但不是很大)),在其中加载一个函数或多个函数的代码和常量数据
重要的是,链接器可以使用剩余数据“自动”填充节之间的剩余可用内存,而无需预先配置此活动。
我可能想做什么?如果可以给我一些提示? 在此先感谢任何人都会回答!
解决方法
简单,使用链接器命令文件。
注意。不同的链接器在链接器命令文件中使用不同的命令语言。
建议阅读:TI linker command file primer
这样的文件定义了所有内存段地址,它们的长度并为其命名。
每个段都定义了其内容。
其中一个关键字是fill
,可用于为所有未使用的地址填充特定值,例如0xdead
请注意,如果您定义了所有内存,并为每个未使用(或未填充)的区域分配了“ fill”参数,那么目标文件将非常庞大。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。