新项目的开发工具原打算用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,那么只需要修改
这两处即可,OK之后再重新编译会发现编译速度提高不止一点。但如果使用了freeRTos,编译会多出来一堆问题:
搜索到信息是由于cubemx生成的freeRTOS中portable下(适配不同MCU部分)文件并没有做好对ac6.13的接口(推测ac6.0之后都会有这个问题),需要从freeRTOS官网下载源码,从源码中portable/gcc/arm_cm3文件夹复制文件替换cubemx生成工程中的freertos portable部分源码,之后就可编译成功。
编译速度之快,超过ac5.
最后则是keil调试工程自动执行问题。新版keil在硬件复位电路正常,勾选reset and run之后,仍有可能程序不执行,需要手动重启。一个解决思路是检查pack选项卡下enable是否勾选,如勾选的话,取消掉问题可能会解除,原理暂时不清楚,反正我这里可以了。
祝君身体健康,
祝武汉疫情早日结束。