本帖最后由 万能的互联网 于 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独立开发环境,CLion IDE + 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
CMakeLists文件参考配置.zip
(3.49 KB)
|