STM32Cubemx+freertos+ARMCompiler5.06移植6.19

背景:最近使用STM32Cubemx生成freertos工程编译很慢,从ARMCompiler5.06升级至ARMCompiler6.19的过程记录。

一、MDK版本与ARMCompiler6.19的升级

开始我的MDK版本是5.33,ARMCompiler是5.06,经过查询后得知MDK版本需要升级,我选择了5.3.7版本。ARMCompiler添加了6.19版本的编译器。

二、MDK版本的升级

在有旧版本的前提下,我这里直接双击安装,注:!!!安装路径要与旧版本相同!!!相当于升级。具体安装步骤不在陈述。

三、添加编译器ARMCompiler6.19

解压后双击安装,安装路径建议选择KEIL安装路径下RAM文件夹中新建文件夹

例:E:\Keil5\ARM\ArmCompiler6.16

四、KEIL导入编译器6.19

导入路径即步骤三的ARMCompiler6.19安装路径。

如果导入提示错误,这里给几个方向供参考:

1、ARMCompiler6.19安装路径不在KEIL\ARM文件夹下

2、MDK版本过低

3、重启电脑

4、另请高明

可以看到已经有了6.19的编译器,这里已经成功一半了。此时在CUBEMX生成代码已经可以编译过了。但是:生成FREERTOS的代码编译一大堆错误。具体解决看步骤五。

五、CubeMX生成的FreeRTOS的port.c、portmacro.h不支持GNU,内部有大量的内联汇编,需更换为GCC版本。

此处参考了这位老哥的博客。

【Keil】CubeMX配置的FreeRTOS利用V6编译出错_use default compiler version 6-优快云博客

解决方案一共有两种:

1、将GCC的port.c、portmacro.h把工程内部RVDS的port.c、portmacro.h替换掉,但是不能一劳永逸,下次生成代码会将port.c、portmacro.h文件重新替换为RVDS的。

2、一劳永逸版,将固件库的RVDS的port.c、portmacro.h替换掉为GCC的port.c、portmacro.h。即使下次生成也是从固件库复制到工程里。

我们选择第二种。

路径可从cubemx这里获取

RVDS路径

C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.1\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F

GCC路径

C:\Users\用户名\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.1\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F

将GCC的粘贴至RVDS下,替换掉后重新生成代码

可以看的到FREERTOS文件夹存在,选用6.19版本编译器。

当当当

教程结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值