0

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

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

4

1 回答 1

1

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

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

在链接器脚本中搜索对命名部分 ( .bar) 的引用,您可能会很好地猜测它的用途。

于 2015-02-13T11:33:28.877 回答