C 中带有@符号的奇怪定义
Strange definition in C with @ sign
我在嵌入式 C 源文件中遇到了以下定义:
const preamble_t OAD_Preamble @ ".preamble" =
{
HAL_OAD_RC_MAX, // Default program length of max if not using post-processing tool.
OAD_MANUFACTURER_ID, // Manufacturer ID
OAD_TYPE_ID, // Image Type
0x00000001 // Image Version
};
我不知道@部分,你能帮我解决这个问题吗?
编辑:
这是在 IAR 编译器中,与 TI SoC 一起使用。
您可以通过这种方式指定要放置变量的内存地址或部分。
".preamble"
是段名,
OAD_Preamble
是要放置在那里的变量。
您也可以在 @
符号后指定物理地址:
const unsigned char port_bit @ 0x1800 = BIT0;
更多信息在this document。
注意:这是一个不可移植的编译器扩展,不是标准 C 语法的一部分。
我在嵌入式 C 源文件中遇到了以下定义:
const preamble_t OAD_Preamble @ ".preamble" =
{
HAL_OAD_RC_MAX, // Default program length of max if not using post-processing tool.
OAD_MANUFACTURER_ID, // Manufacturer ID
OAD_TYPE_ID, // Image Type
0x00000001 // Image Version
};
我不知道@部分,你能帮我解决这个问题吗?
编辑: 这是在 IAR 编译器中,与 TI SoC 一起使用。
您可以通过这种方式指定要放置变量的内存地址或部分。
".preamble"
是段名,OAD_Preamble
是要放置在那里的变量。
您也可以在 @
符号后指定物理地址:
const unsigned char port_bit @ 0x1800 = BIT0;
更多信息在this document。
注意:这是一个不可移植的编译器扩展,不是标准 C 语法的一部分。