2015-07-30 2 views
0

J'ai récemment commencé à programmer avec la carte STM32F4Discovery et j'utilise IAR workbench comme IDE. Je suis supposé utiliser un programme déjà développé dans Eclipse dans le cadre de mon projet. Quand j'importé dans ce IAR Workbench, je reçois l'erreur et les avertissements suivants: Error[Pe020]: identifier "_impure_ptr" is undefined Warning[Pe223]: function "_REENT_INIT_PTR" declared implicitly Warning[Pe223]: function "_reclaim_reent" declared implicitly CErreur due à l'utilisation de la chaîne d'outils GNU ARM dans l'atelier IAR

Je me suis rendu compte que le _impure_ptr, _REENT_INIT_PTR, _reclaim_reent font partie du fichier reent.h qui sont présents dans le GNU ARM Toolchain. Ceci est utilisé dans le cadre de l'utilisation de la fonctionnalité FreeRTOS. Avec Eclipse, ce n'est pas un problème, mais lorsque vous utilisez IAR workbench, existe-t-il un autre fichier similaire au reent.h pour IAR Workbench que je suis censé inclure? Je sais que c'est une question naïve, mais je suis un débutant à la programmation embarquée et encore dans les premières étapes de la mise en place de ce projet.

Répondre

1

Il s'agit de définitions NewLib, plutôt que de définitions de chaîne d'outils GNU ARM directement. On peut supposer que l'application Eclipse utilise les bibliothèques GCC, qui incluent NewLib (qui n'est pas créée pour les petits systèmes embarqués de toute façon) - tandis que le projet IAR utilise les bibliothèques propres à IAR (et mieux pour les petits systèmes embarqués). FreeRTOS peut être configuré pour utiliser certaines des fonctionnalités de réintégration de NewLib, mais il ne s'agit pas d'une configuration par défaut. Si ces définitions implicites et indéfinies proviennent du code FreeRTOS lui-même, assurez-vous que configUSE_NEWLIB_REENT est défini sur 0 dans FreeRTOSConfig.h.