为什么使用__attribute __(section)进行内存分配?

时间:2014-12-28 19:05:58

标签: attributes linker-scripts gcc4.9

我有foo[NUMBYTES] __attribute__((section(".bar")));

为什么要使用此属性.bar部分?因为foo []提供了一些内存空间。这是为了便于内存管理吗?

1 个答案:

答案 0 :(得分:1)

对于没有操作系统的裸机代码,section属性__attribute__((section(".bar")))通常用于:

  • 将符号(数据或功能)放在特殊的存储空间中,例如内置于微控制器中的RAM,FLASH或EEPROM。
  • 将符号放在特殊地址,例如将中断向量表放在ARM Cortex-M处理器的FLASH开头。
  • 连续分组相关符号,例如Linux内核将只在启动时需要的初始化代码组合在一起(参见linux/init.h中的init section),以便以后可以释放它们以节省RAM。

在您的链接描述文件中搜索对指定部分(.bar)的引用,您可能会对它的使用做出很好的猜测。