0
votes

I recently started programming with STM32F4Discovery board and am using IAR workbench as the IDE. I am supposed to use an already developed program in Eclipse as a part of my project. When I imported this into IAR Workbench, I get the following error and warnings: Error[Pe020]: identifier "_impure_ptr" is undefined Warning[Pe223]: function "_REENT_INIT_PTR" declared implicitly Warning[Pe223]: function "_reclaim_reent" declared implicitly C

I have realized that the _impure_ptr, _REENT_INIT_PTR, _reclaim_reent are a part of the reent.h file which are present in the GNU ARM Toolchain. This is being used as a part of the using FreeRTOS functionality. With Eclipse, this is not a problem, but when using IAR workbench, is there any other file similar to the reent.h for IAR Workbench that I am supposed to include?

I know it is a naive question but I am a beginner to embedded programming and still in the initial stages of setting up this project.

1

1 Answers

1
votes

These are NewLib definitions, rather than GNU ARM toolchain definitions directly. Presumably the Eclipse application is using the GCC libraries, which include NewLib (which is not create for small embedded systems anyway) - while the IAR project is using IAR's own (and better for small embedded systems) libraries.

FreeRTOS can be configured to use some of the NewLib re-entrancy features, but that is not a default configuration. If these implicit and undefined definitions are coming from the FreeRTOS code itself then ensure configUSE_NEWLIB_REENT is set to 0 in FreeRTOSConfig.h.