2015-04-23 5 views
0

Récemment, j'ai installé le plan de travail intégré IAR pour Eclipse Luna. J'ai déjà utilisé Eclipse, donc je connais un peu la mise en page et les différentes fonctions de l'EDI.Avertissement: #pragma non reconnu

(partiellement hors-sujet) J'avais l'habitude de compiler en utilisant GNU CC, avec DS-5 pour Eclipse, spécifiquement pour la gamme de processeurs Renesas. Notre département de logiciel a voulu changer le compilateur, cependant. C'est pourquoi nous avons choisi pour IAR. Tout compilé bien avant de changer le compilateur à ce moment-là. Lorsque je compile mon logiciel maintenant, il me renvoie un avertissement: Warning[Pe161]: unrecognized #pragma. Je n'ai jamais vu cet avertissement avant. Ai-je négligé quelque chose lors de l'installation du plug-in IAR pour Eclipse, ou ai-je quelque chose qui manque ici? Cela pourrait probablement aider à se débarrasser de certaines erreurs ennuyeuses qui apparaissent dans le même fichier source plus tard.

/* 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 

Je suis sûr que le cerveau à stackoverflow viendront à une aide dans celui-ci;)

+0

Cela peut être sympa de voir la ligne #pragma du code –

+0

ajoutée à l'OP. L'avertissement se produit sur le tout premier message de '# pragma'. Les 3 lignes sous '#ifdef __ICCARM__' donnent une erreur que les statistiques ont déjà été déclarées ci-dessus. Cela pourrait-il être lié? – Qwedvit

+0

Impossible de trouver '#pragma arm ...' dans le guide du développeur. http://supp.iar.com/FilesPublic/UPDINFO/004916/arm/doc/EWARM_DevelopmentGuide.ENU.pdf –

Répondre

0

[son chemin après l'événement, mais j'écris une réponse résumée ici au profit des personnes trouver cette question]

GCC utilise le pragma "section" pour mettre des déclarations dans différentes régions de la mémoire; IAR utilise une extension de syntaxe "@" propriétaire comme vous pouvez le voir dans les deux blocs de déclarations de votre exemple, qui sont équivalents.

Comme l'un des commentateurs l'a fait remarquer, votre problème est que la version de GCC est vue par IAR car le #ifdef qui le protège a été mis en commentaire.