Недавно я установил IAR для Eclipse Luna. Я раньше использовал Eclipse, поэтому я немного знаком с макетом и различными функциями, которые может предложить IDE.
(частично не по теме) Я использовал для компиляции с использованием GNU CC, вместе с DS-5 для Eclipse, специально для линейки процессоров Renesas. Однако наш отдел программного обеспечения хотел изменить компилятор. Вот почему мы выбрали для IAR. Все скомпилировалось хорошо, прежде чем менять компилятор в то время.
Когда я собираю свое программное обеспечение прямо сейчас, оно возвращает мне предупреждение: Warning[Pe161]: unrecognized #pragma
, Я никогда не видел это предупреждение раньше. Я что-то упустил во время установки плагина IAR для Eclipse или мне чего-то не хватает здесь? Возможно, это поможет избавиться от некоторых досадных ошибок, которые позже появятся в том же исходном файле.
/* 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 придут на помощь в этом;)
[это после мероприятия, но я пишу краткий ответ здесь, чтобы люди могли найти этот вопрос]
GCC использует прагму section для размещения объявлений в разных областях памяти; IAR использует собственное расширение синтаксиса «@», как вы можете видеть в двух блоках объявлений в вашем примере, которые эквивалентны.
Как отметил один из комментаторов, ваша проблема в том, что версия GCC просматривается IAR, потому что защищающий ее #ifdef был закомментирован.