链接程序脚本中有多个备用.data节吗?

时间:2018-08-07 09:51:27

标签: linker ld sections

STM32F4xx系列MCU基本上具有三个不同的RAM块(RAM1(112k),RAM2(16k),内核耦合存储器(64k))映射到特定地址。所有这些都可以由CPU透明地用作数据RAM。 (基本原理是,所有三个RAM可以同时运行,因此,例如,您可以进行一次往返RAM1的DMA传输,一次往返RAM2的DMA传输以及CPU对CCM的访问而无任何争用。)

ld链接描述文件中,您可以定义相应的部分,并让gcc通过__attribute__((section("name"))在其中放置变量。

我想要实现的是让ld自动分配变量,首先填充RAM1,然后填充RAM2,再填充CCM。 (RAM1和RAM2在地址空间中是连续的,CCM是分开的。)

所以,我想

  • 已按照上述顺序从三个部分中分配了RAM 以上
  • 另外,给每个部分起一个名字,以强制一些变量 一节

似乎我需要ld .data节放入RAM1中,等到RAM2填满后再放入CCM。那可能吗?还是我必须将所有不适合RAM1的变量显式地放入RAM2或CCM?

0 个答案:

没有答案