STM32CUBEMX6.9.2生成带FreeRTOS的程序在MDK keil5.38中报错

错误环境

错误码如下

167 | static portFORCE_INLINE void vPortSetBASEPRI( uint32_t ulBASEPRI )
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(162): note: expanded from macro 'portFORCE_INLINE'
162 | #define portFORCE_INLINE __forceinline
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(170): error: expected 'volatile', 'inline', 'goto', or '('
170 | {
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(178): error: unknown type name '__forceinline'
178 | static portFORCE_INLINE void vPortRaiseBASEPRI( void )
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(162): note: expanded from macro 'portFORCE_INLINE'
162 | #define portFORCE_INLINE __forceinline
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(183): error: expected 'volatile', 'inline', 'goto', or '('
183 | {
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(193): error: unknown type name '__forceinline'
193 | static portFORCE_INLINE void vPortClearBASEPRIFromISR( void )
| ^
../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(162): note: expanded from macro 'portFORCE_INLINE'
162 | #define portFORCE_INLINE __forceinline

error总数达160+

解决方案

最近组里有人问这个问题,正巧之前我看到的那篇文章没了,在这里记一下
cubemx里配的freertos如果用arm5编译不会出问题,如果选择arm6,则会报许多错
可以直接替换cubemx下载的芯片包里的文件,从而不用每次生成工程都要自己手动复制粘贴

打开cubemx芯片软件包下载的位置,不知道位置的可以在这cubemx>>help>>updater里看

我以f4为例,选择你用的版本,进入
...\STM32Cube_FW_F4_V1.25.2\Middlewares\Third_Party\FreeRTOS\Source\portable

将RVDS文件夹里的ARM_CM4F文件夹替换为GCC里的ARM_CM4F文件夹即可
重新用cubemx生成工程,现在可以用arm6编译了


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_43481066/article/details/114982741

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值