【问题标题】:Error due to GNU ARM toolchain usage in IAR workbench由于在 IAR 工作台中使用 GNU ARM 工具链而导致的错误
【发布时间】:2015-10-21 11:12:28
【问题描述】:

我最近开始使用 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

我意识到_impure_ptr_REENT_INIT_PTR_reclaim_reent 是 GNU ARM 工具链中存在的reent.h 文件的一部分。这被用作使用 FreeRTOS 功能的一部分。使用 Eclipse,这不是问题,但是在使用 IAR 工作台时,是否还有其他类似于 reent.h 的 IAR 工作台的文件我应该包括在内?

我知道这是一个幼稚的问题,但我是嵌入式编程的初学者,仍处于建立此项目的初始阶段。

【问题讨论】:

    标签: iar freertos stm32f4discovery gnu-arm


    【解决方案1】:

    这些是 NewLib 定义,而不是直接的 GNU ARM 工具链定义。大概 Eclipse 应用程序正在使用 GCC 库,其中包括 NewLib(无论如何都不是为小型嵌入式系统创建的) - 而 IAR 项目正在使用 IAR 自己的(并且更适合小型嵌入式系统)库。

    FreeRTOS 可以配置为使用一些 NewLib 重入功能,但这不是默认配置。如果这些隐式和未定义的定义来自 FreeRTOS 代码本身,请确保在 FreeRTOSConfig.h 中将 configUSE_NEWLIB_REENT 设置为 0。

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多