STM32
直播中

刘勇

8年用户 1420经验值
私信 关注
[问答]

stm32cubemx 5.1.0版本生成的开启mpu的IAR工程编译报错的原因?

今天升级了STM32cubemx 还有f4的软件包(STM32Cube_FW_F4_V1.24.0)此次升级改动较以往来说还是比较多的
freertos升级到10.0.1,cmsis-rtos升级到v2
添加了专门处理中断的库
  * @file    stm32f4xx_hal_exti.c
  * @author  MCD Application Team
  * @brief   EXTI HAL module driver.
  *          This file provides firmware functions to manage the following
  *          functionalities of the Extended Interrupts and events controller (EXTI) peripheral:
  *           + Initialization and de-initialization functions
  *           + IO operation functions

最郁闷的是,生成一个f4的新工程后,编译报错

回帖(1)

王辉

2024-5-10 17:49:34
根据您提供的信息,您在使用 STM32CubeMX 5.1.0 版本生成的开启 MPU 的 IAR 工程时遇到了编译错误。您还提到了升级了 STM32CubeMX 和 F4 软件包(STM32Cube_FW_F4_V1.24.0),以及 FreeRTOS 升级到 10.0.1 和 CMSIS-RTOS 升级到 v2。

要解决这个问题,我们可以按照以下步骤进行:

1. 首先,确保您的 IAR Embedded Workbench 版本与 STM32CubeMX 5.1.0 版本兼容。如果不兼容,请升级 IAR Embedded Workbench 到合适的版本。

2. 检查您的项目设置,确保所有必要的库文件和头文件都已正确包含。这包括 CMSIS 库、HAL 库和 FreeRTOS 库。

3. 仔细查看编译错误信息,找出具体的错误类型。这将帮助您确定问题所在。例如,如果错误是关于缺少符号定义,那么可能是某个库文件没有正确包含。

4. 如果错误与 EXTI HAL 模块驱动有关,请检查 stm32f4xx_hal_exti.c 文件是否已正确包含在项目中。此外,确保您的项目配置了正确的中断处理函数。

5. 检查您的代码中是否有任何与新版本不兼容的部分。这可能包括对旧版本的 API 的调用,或者使用了已在新版本中弃用的宏定义。

6. 如果问题仍然存在,您可以尝试在 STM32CubeMX 中禁用 MPU,然后重新生成项目。这将帮助您确定问题是否与 MPU 配置有关。

7. 如果禁用 MPU 后问题解决,那么您可能需要查看 STM32CubeMX 和 IAR Embedded Workbench 的文档,了解如何在新版本中正确配置 MPU。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分