前言:
开发过单片机的同学都对keil不陌生,我们知道keil集成了代码编辑,编译,和调试的功能,极大的方便了我们的开发。但是keil万年不变的代码编辑器对于阅读源代码来说是极其不友好,还有那个已经停止维护的Arm Compiler 5不仅编译慢,还存在隐藏的BUG,都让人难以忍受。
还对Arm Compiler 5和Arm Compiler 6比较陌生的同学,建议首先百度了解一下。
最新版本的MDK虽然只支持到了6.14,但是Arm已经发布了最新版本 6.15,并且在老版本的MDK版本上也可以安装最新版本,安装方法参考傻孩子大佬的文章:老MDK也可以使用新编译器
接下来的内容我们来把VScode编辑代码的优点和Arm Compiler 6编译代码的优点结合到一起,来解决使用MDK开发touchgfx项目编译慢,阅读代码不友好的缺点。
准备工作:
软件: MDK V5.29以上, Visual Studio Code;TouchGFXDesigner v4.15 ,STM32CubeMX V6.0.1
联系作者:
加我微信,备注“加群”,加入技术交流群
一、使用ARM Compiler 6.15编译TouchGFX工程
1. 替换freertos的port.c和portmacro.h文件
由于STM32CubeMX自动生成的freertos工程默认的是使用ARM Compiler 5编译,所以需要替换可以使用ARM Compiler 6编译的接口。可以在STM32CubeMX软件包的安装目录中按照自己单片机型号找到对应的文件,然后替换掉cubemx自动生成的port.c和portmacro.h。
由于cubemx每次生成的代码都会自动覆盖,所有如果想永久使用armclang编译器,可以直接把下边目录的文件替换掉。
2.替换touchgfx_core库文件
进入到touchgfx的库目录,可以发现有Keil和Keil6.x两个文件夹,其中Keil6.x文件夹下对应的库便是给AC6用的。可以手动在mdk中把touchgfx_core更换为Keil6.x文件夹下的touchgfx_core库。
3.在MDK中设置编译规则
去掉Short enums/Wchar选项
去掉Micro LIB选项
4. 最后编译,ac6编译速度会比ac5有明显提升
二、使用VScode的keil插件编辑TouchGFX工程
1. 打开VSCODE安装keil插件
设置keil的编译器路径
2. 打开刚才的touchgfx工程
3.集编辑与编译一体的工具大功告成
扩展阅读:[小技巧]使用静态库提高TouchGFX的编译速度
关注公众号,后续有精彩内容会第一时间发送给您!