创建Freertos工程时出现“Source/CMSIS_RTOS_V2/freertos_os2.h(31): error: #13: expected a file name”的错误处理

问题现象

在使用CubeMX创建FreeRTOS工程时,若CMSIS-RTOS API版本选择了V2,最开始编译会出现错误:
../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/freertos_os2.h(31): error: #13: expected a file name

在这里插入图片描述
错误提示缺少文件

解决办法

在CubeMX打开该工程并切换到如下界面

在这里插入图片描述
取消右侧的勾选并将选项改成V1.8.5版本

在这里插入图片描述

之后点击右上角的代码生成按钮更新程序并在Keil内进行编译即可

在这里插入图片描述

错误原因

在V1.8.6的版本框架中,根据编译器的错误提示可以定位到freertos_os2.h文件的如下位置
在这里插入图片描述

这行代码的作用是包含 CMSIS 设备头文件,但编译器找不到文件“CMSIS_device_header”
即使将这行代码注释也会有其他的错误出现。

在这里插入图片描述
在这里插入图片描述

在该版本的框架中可以看到cmsis_os2.c文件包含了以下两个库文件:

  • freertos_os2.h
  • freertos_mpool.h

在这里插入图片描述

其中错误行就是出现在freertos_os2.h中

当我们在CubeMX把框架切换成V1.8.5之后,cmsis_os2.c文件就不会包含这两个库文件,软件框架的不同就规避掉了这个问题。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值