📗嵌入式开发领域

① armcc是ARM公司开发的一套基于MDK的5代嵌入式工具链,嵌入在Keil IDE中使用(IDE顾名思义就是集成开发环境,代码编辑、代码编译、代码仿真、代码调试等过程都集成在IDE上,让用户只需关注代码逻辑和实现),也可在ARM官网独立下载。⭐商业行为-闭源⭐
② armclang同样是ARM公司开发的一套基于MDK的6代嵌入式工具链,同样嵌入在Keil IDE中使用,是基于苹果公司LLVM框架的嵌入式工具链,也可在ARM官网独立下载。⭐商业行为-闭源⭐
③ 🔗arm-none-eabi-gcc是ARM GNU Toolchain嵌入式工具链,基于GCC(伟大开源先驱—GNU的组件之一)的衍生物。在嵌入式开发方面,其配套环境如下:VSCode/Eclipse/Clion等 + arm-none-eabi-gcc工具链 + Make&Makefile / CMake&CMakeList.txt + OpenOCD调试工具。⭐开源(致敬开源精神),可跨Win/Mac/Linux平台⭐。
不可否认的是,arm-none-eabi-gcc编译器相比于keil的AC5、AC6编译器,前者编译出的hex文件体积占用flash稍微大一点。不过既然它自由开源,我们就去拥抱它吧。

细心的你应该发现了,打开keil uvision IDE的“俄罗斯方块”—>Folders/Extensions,其实可以选择性地使用以上的工具链,如下图所示

在这里插入图片描述
然后点击上方的Folders/Extensions

在这里插入图片描述
--------------------------------------------------------------------------------延伸--------------------------------------------------------------------------------------------
📘PC端程序开发领域
有3个常用的编译器,分别是GCC、MSVC、Clang,

① GCC编译器:GNU编译器集合。在Linux平台,GCC编译器被广泛使用;在Windows平台,选择安装🔗Cygwin / MinGW / MSYS2任意一个集合,可使用GCC编译。⭐开源⭐。
② MSVC:微软自家的编译器,与自家的IDE绑定,只能在Windows平台使用。⭐闭源⭐
③ Clang:苹果公司基于LLVM框架的编译器前端,LLVM项目中涉及到Clang前端,LLVM后端,LLD链接器。⭐开源⭐
据说Clang编译器是苹果公司为了【优化GCC编译器的编译速度】和【错误提示信息不健全】这2个缺点而挖人去开发出来的,对标GCC。

📙Make构建工具是啥?Makefile是啥?CMake构建生成器又是啥?CMakeLists.txt又是啥?它们都有什么用?

个人理解:
🍇当你有单个或几个源文件+头文件时,只需要调用简单的gcc相关编译命令即可,或许并不需要这些工具,但是当你项目的源文件+头文件一旦多起来,编译过程就会变得异常繁琐。
🍎以前聪明的程序员大佬就想到了,能不能开发一个脚本文件和工具,来解决这些繁琐的步骤呢?……于是Makefile脚本和Make构建工具就诞生了,Makefile里面的语法规定了多文件项目的编译顺序和编译规则,Make负责调用并解析Makefile脚本。
🍍随着项目的各种文件越来越多,Makefile的内容也会越来越多,同时也由于Win/Linux/Mac平台的构建工具不一样,每更换一个构建工具就需要重写一份新的构建文件,在跨平台方面很不友好,这个时候,又有聪明的程序员大佬想到了,能不能用一个顶层工具自动生成Makefile脚本或其他构建工具的内容呢?……于是CMake构建系统生成器和CMakeLists.txt诞生了,CMake的全称为Cross Plantform MakeCMakeLists.txt语法具有现代化特性,CMake通过与CMakeLists.txt文件规则配合,然后自动生成MakefileNinjaNMake Makefile等底层构建文件并执行。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐