最近我为Eclipse Luna安装了IAR嵌入式工作台。我以前一直在使用Eclipse,所以我对IDE的布局和不同功能有点熟悉。
(部分偏离主题)我曾经使用GNU CC和DS-5 for Eclipse进行编译,专门用于瑞萨处理器系列。但是,我们的软件部门想要更改编译器。这就是我们为IAR选择的原因。在此之前更改编译器之前,所有内容都已编译好。
当我立即编译我的软件时,它会向我发出警告:Warning[Pe161]: unrecognized #pragma
。我以前从未见过这个警告。我是否在安装Eclipse的IAR插件时忽略了一些东西,或者我在这里缺少什么?这可能有助于摆脱稍后出现在同一源文件中的一些恼人的错误。
/* Transfer source buffer : allocated to L1 cache disabled area in large-capacity on-chip RAM space */
//#ifdef __CC_ARM
#pragma arm section zidata = "BSS_DMAC_SAMPLE_INTERNAL_RAM"
static uint8_t dmac_src_data_internalram_1[DMAC_BUFF_SIZE_4096];
static uint8_t dmac_src_data_internalram_2[DMAC_BUFF_SIZE_1024];
static uint8_t dmac_src_data_internalram_3[DMAC_BUFF_SIZE_256];
#pragma arm section zidata
//#endif
#ifdef __ICCARM__
static uint8_t dmac_src_data_internalram_1[DMAC_BUFF_SIZE_4096] @ "BSS_DMAC_SAMPLE_INTERNAL_RAM";
static uint8_t dmac_src_data_internalram_2[DMAC_BUFF_SIZE_1024] @ "BSS_DMAC_SAMPLE_INTERNAL_RAM";
static uint8_t dmac_src_data_internalram_3[DMAC_BUFF_SIZE_256] @ "BSS_DMAC_SAMPLE_INTERNAL_RAM";
#endif
我确定stackoverflow上的大脑会帮助这个;)
答案 0 :(得分:0)
[这是事件后的方式,但我在这里写了一个总结的答案,以便人们找到这个问题]
GCC使用“section”pragma将声明放在不同的内存区域; IAR使用专有的“@”语法扩展,如您在示例中的两个声明块中所示,它们是等效的。
正如其中一位评论者指出的那样,你的问题是IAR正在看GCC版本,因为保护它的#ifdef已被注释掉了。