2015-07-30 10 views
0

Недавно я начал программирование на плате STM32F4Discovery и использую верстак IAR в качестве среды IDE. Я должен использовать уже разработанную программу в Eclipse как часть моего проекта. Когда я импортировал это в IAR Workbench, я получаю следующее сообщение об ошибке и предупреждения: Error[Pe020]: identifier "_impure_ptr" is undefined Warning[Pe223]: function "_REENT_INIT_PTR" declared implicitly Warning[Pe223]: function "_reclaim_reent" declared implicitly CОшибка из-за использования инструментальной привязки GNU ARM в рабочем средстве IAR

Я понял, что _impure_ptr, _REENT_INIT_PTR, _reclaim_reent являются частью reent.h файла, которые присутствуют в GNU ARM Toolchain. Это используется как часть использования функции FreeRTOS. С Eclipse это не проблема, но при использовании IAR workbench есть ли другой файл, похожий на reent.h для IAR Workbench, который я должен включить?

Я знаю, что это наивный вопрос, но я начинаю программировать и все еще на начальных этапах создания этого проекта.

ответ

1

Это определения NewLib, а не определения GNU ARM toolchain. Предположительно, приложение Eclipse использует библиотеки GCC, которые включают NewLib (который не создается для небольших встроенных систем), в то время как проект IAR использует собственные библиотеки IAR (и лучше для небольших встроенных систем).

FreeRTOS может быть настроен на использование некоторых функций повторного входа NewLib, но это не стандартная конфигурация. Если эти неявные и неопределенные определения исходят из самого кода FreeRTOS, тогда для configUSE_NEWLIB_REENT установлено значение 0 в FreeRTOSConfig.h.