使用clang / LLVM时,如何将变量链接到静态预定义位置?例如,某些编译器支持以下语法:
static const uint8_t myVar __attribute__ ((at(MY_LOCATION))) = 0x11;
到目前为止,我发现全局变量和函数支持section属性:http://clang.llvm.org/docs/AttributeReference.html#id38,但我不确定这是否是我需要使用的内容和/或如何使用利用它。
这个用例就是工具链的输出是一个平面二进制文件,它被加载到设备内存中。某些脚本或其他工具可能期望在二进制图像中的固定偏移处找到该二进制的某些属性。这在嵌入式系统领域尤为常见。
编辑:我还发现这个https://github.com/llvm-mirror/clang/blob/master/test/Sema/attr-section.c似乎是该属性的单元测试框架。通过的案例有两个字符串,我真的不明白为什么一个字符串名称只有一个字符串。