keil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记

新项目的开发工具原打算用vs2019+visualGDB+cubeMX,配置两天未成功,遂继续使用keil了。

据说最新版keil带的arm compiler6 变异速度相比原来的ac5提高不少,于是考虑使用cubemx生成带freeRTOS的工程,并使用keil编译。期间出现一些问题,于此记录。

1,cubemx生成工程,没啥可说的,一路点点点即可;

2,keil5.29(最新版)直接编译生成工程即可成功。注意,cubemx需要

这种固件文件,最好提前在st官网下载好;keil需要stm32f1(对应型号)这种dfp 包,需要提前下载好。都知道cubemx和keil的下载偶尔会抽风。

3,使用最新版arm compiler,如果没有freeRTOS,那么只需要修改

keil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记_第1张图片这两处即可,OK之后再重新编译会发现编译速度提高不止一点。但如果使用了freeRTos,编译会多出来一堆问题:

keil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记_第2张图片

搜索到信息是由于cubemx生成的freeRTOS中portable下(适配不同MCU部分)文件并没有做好对ac6.13的接口(推测ac6.0之后都会有这个问题),需要从freeRTOS官网下载源码,从源码中portable/gcc/arm_cm3文件夹复制文件替换cubemx生成工程中的freertos portable部分源码,之后就可编译成功。

keil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记_第3张图片

编译速度之快,超过ac5.

最后则是keil调试工程自动执行问题。新版keil在硬件复位电路正常,勾选reset and runkeil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记_第4张图片之后,仍有可能程序不执行,需要手动重启。一个解决思路是检查pack选项卡下enable是否勾选,如勾选的话,取消掉问题可能会解除,原理暂时不清楚,反正我这里可以了。

keil + stm32 + cubemx + FreeRTos + arm compiler6.13环境配置笔记_第5张图片

祝君身体健康,

祝武汉疫情早日结束。

你可能感兴趣的:(MCU)