Hi,您好,欢迎来到西安盛图软件科技有限公司!

嵌入式工程师都在用的编译器,你最喜欢哪个?

发布时间:2023-11-07 14:17:48

欲先善其事必先利其器,对嵌入式工程师来说,编译器就是不可或缺的神兵利器。 

由于C语言历史悠久,早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款C语言编译器。

 C语言的翻译官
所谓编译器,从概念上讲就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

其工作原理就是是首先对源代码进行词法分析,将源代码分解成一系列的单词和语法元素。然后,将这些单词和语法元素转换成一系列机器指令,

这些指令可以被计算机理解并执行。

最后,编译程器将这些指令转换成可执行的机器代码,这样计算机就可以运行它们了。 
用人话解释,C语言和机器语言是两种完全不同的语言,我们输入电脑的代码和机器理解的代码不是一回事,所以编译器就是把我们输入到电脑的代码翻译成电脑能理解的代码。

图片

对嵌入式工程师来说,C语言是最基础的一种编程语言,而且大多单片机也是以C为基础的。
根据桌面端和嵌入式系统端,C语言编译器分为两种大类。其中,桌面端根据当前主流桌面操作系统,分为Visual C++ Studio、GCC及LLVM Clang三大编译器;嵌入式系统端则分为很多流派,包括大名鼎鼎的Keil C51、Arduino板搭载的开发套件可用针对AVR微控制器的AVR GCC编译器;Arm公司的ADS(ARM Development Suite)、RVDS(RealView Development Suite)、DS-5 Studio等;TI的CSS(Code Composer Studio);ADI(Analog Devices,Inc.)的Visual DSP++ 编译器等。

图片

  工程师喜欢用什么
Visual Studio同时也被网友戏称是宇宙第一编译器,它是由微软研发,从1995年至今已经近28年,支持多种编程语言,C#/VB、JavaScript 、.NET、Node.js、Java、Python、C++等等,一直深受开发者的喜爱。日常生活中几乎你使用到的所有应用程序,他都可以开发出来。它跨平台语言,高度集成,具有友好的用户界面、强大的调试功能、丰富的扩展库等特点,可以帮助快速高效地开发C语言程序。
被网友誉为C/C++开发神器的CLion也是一款不错的编译器。它是一款专为C语言和C++ 设计的IDE,其最大的优点是跨平台,在Linux、Mac、Windows 上都可以运行。最新版本CLion 2023支持C++14(几乎完全支持)和C++17(初次支持),可以帮助用户更快、更有效地编写代码。通过Disassembly view(反汇编视图),即使没有源代码,用户也可以轻松调试代码。同时,在Catch的帮助下,用户可以测试代码,尝试对Microsoft Visual C++编译器进行实验性支持。 
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器。GCC的初衷是为GNU操作系统专门编写的一款编译器。GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。该编译器在编译速度、代码生成质量、诊断能力等方面都具有的表现,因此被广泛应用于各种领域。GCC支持的主要处理器架构:ARM、x86、x86-64、MIPS、PowerPC等。
说到GCC就不得不提Clang,Clang具有编译速度快、内存占用小以及与GCC等其他优秀特性的兼容性,这些特点使得许多工具都选择使用它。 
Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GCC的替代品。作者是克里斯·拉特纳(Chris Lattner),在苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可,Clang主要由C++编写。Clang本身性能优异,其生成的AST所耗用掉的内存仅仅是GCC的20%左右,经测试证明Clang编译Objective-C代码时速度为GCC的3倍,还能针对用户发生的编译错误准确地给出建议。
除了上面这些,在线编译器也广受欢迎。2010年Mbed团队发布了基于浏览器的IDE,这使得为基于Arm的微控制器编写软件变得更快,更容易。从那时起,在线编译器已被全球数十万开发人员使用,许多人也是在那里学会为微控制器编写C++的。 

2021年末,Mbed在线编译器退役,由Keil Studio Cloud接替,Keil Studio Cloud是基于Arm为Mbed Studio和Mbed Online Compiler开发的技术构建,旨在提供一个易于使用的快速原型开发环境,可用于IoT、ML和一般嵌入式开发。Keil Studio Cloud可以说是是Mbed Studio的进化版本,使用相同的底层IDE框架和代码库,并适应了对CMSIS生态系统的额外支持,与其他Keil工具(如Keil MDK)一样。


以上为本次所有分享内容

addffbe8602b57d798f22949b3de8ce.png

上一篇:嵌入式学习的八大步骤
下一篇:什么是数组?C语言数组的基本概念