使用用户定义的部分名称 [ __attribute__((section(“name”)) ]

Use of a user defined section name [ __attribute__((section(“name”)) ]

我确实对 attribute((section("name")) 有一些疑问。定义用户定义的 .section 的真正用途是什么?有没有示例来说明它是如何有用的?

用户定义的部分对于具有多个内存条的嵌入式系统特别有用。在链接器脚本的帮助下,这些部分可用于将代码和数据放置在特定存储区和特定位置;这是例如确保正确放置中断向量很重要。 比如this line places the following data into a custom section (in assembly language, but it's equivalent to the section attribute), such that the linker script就可以放到flash memory的开头。

对于普通的符合标准的 C 和 C++ 应用程序,这通常是不必要的,这就是该属性是非标准扩展的原因。