万能的互联网 发表于 2024-2-27 22:43

Cmake加ARMClang构建雅特力AT32基于CLion IDE的开发环境,未来,必定是属于ARMClang的未来!

本帖最后由 万能的互联网 于 2024-11-21 23:27 编辑

#申请原创#   @21小跑堂

GCC编译工具,全称GNU Complier Collection。

ARMCC编译工具,即ARM Compiler 5,简称AC5。ARMCC可以拆分为,ARM+CC。前部分的ARM,可以对应GCC的GUN部分,两者的汇编语法是不太一样的。顾名思义,ARMCC基于GCC开源编译器开发。GCC和ARMCC的差距是,ARMCC是专门针对ARM架构单片机做了特调优化的。毕竟,应该没有人比ARM公司,更懂得ARM架构了吧?

ARMClang编译工具,即ARM Compiler 6,简称AC6,基于LLVM和Clang技术开发。讲到这里,不难看出,ARMCC比ARMClang差了一代。所以,GCC和ARMClang相比,就差了一代加上ARM单片机专用编译工具特调优化的差异。对于单片机开发的编译工具来说,3个编译工具的排名等价于,GCC < ARMCC < ARMClang。

有人抱怨GCC编译出来的单片机固件体积大,不可控的编译优化,代码执行效率相比AC5、6低。

综上所述,我们已经,简短的梳理和概括了,这几个单片机开发工具。剩下的,留给各位单片机开发者去思考。



AT32的GCC开发环境,我已经玩过了,目前升级到了ARMClang的开发环境。搭建开发环境,主要有以下2种思路:

第1种:CLion独立开发环境,CLionIDE + Cmake+ ARMClang工具链 ,CLion负责代码编辑和提示,编译与下载。当然,不一定非得用CLion,其他支持Cmake和ARMClang工具链的IDE,理论上应该都能支持,例如QT Creator,我没用过。但这种方式,可能不适合团队协作开发。

第2种:CLion IDE + Keil搭配,CLion使用cmake负责代码编辑和提示,Keil负责编译下载和调试。只要在项目中新建mdk_v5文件夹,并创建mdk工程。这种方式,更简单可靠,还可以团队协作。

我个人对于以上2种开发环境的点评:Cmake+ ARMClang工具链,可能会遇到在keil中不会出现的报错。相比之下,第2种,更加保险,同时又能解决keil的痛点。


工具链版本:
Cmake:       v3.27.8                                                                            CLion自带
ARMClang:   v6.21                                                                           ARM
MingW64:   x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1                github
openocd:   v2.0.4                                                                              雅特力AT32官方提供AP Note 0193



1;工具链设置



2;openocd的cfg配置文件



3;openocd下载与运行设置



4;CmakeLists.txt文件




5;构建成功,输出hex文件



6;mdk_v5文件夹



7;keil项目,编译成功




8;系统环境变量


9;CMakeLists.txt







liaozhen 发表于 2024-3-30 22:23

先进

caigang13 发表于 2024-4-1 08:19

跨平台开发是未来趋势

LEDyyds 发表于 2024-4-7 17:02

这个平台确实比传统的平台好看多了

呐咯密密 发表于 2024-4-19 12:03

这个界面极度舒适

wujio 发表于 2024-12-1 22:11

本帖最后由 wujio 于 2024-12-2 12:11 编辑

感谢,确实可以armclang编译+gdb调试
页: [1]
查看完整版本: Cmake加ARMClang构建雅特力AT32基于CLion IDE的开发环境,未来,必定是属于ARMClang的未来!