嵌入式开发为什么选择C语言?
发布日期:2021-07-04 08:35 浏览量:2181
C语言和嵌入式C编程有什么区别?其区别在于嵌入式的C语言是跑在嵌入式的开发板上的,CPU和电脑不一样,所以编译器也是不一样的,生成的可执行程序也是不一样的。选择嵌入式开发语言归结于嵌入式系统开发的特点上。
操作系统所有的内核几乎都是C语言编写,因此C语言在嵌入式开发中占有十分重要的地位,就如Python语言之于人工智能一样。主要原因还是在于C语言的优势,下面就谈下C语言的特点:
1、C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。
2、C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。
3、C语言具有很高的运行效率。
那么为什么C语言适用于嵌入式开发呢?嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。
性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。
而其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式开发的编程是要在开发板上跑的,占用内存的增多必然会影响性能。这样一来,C语言的优势就会凸现出来啦。
1、嵌入式系统不是PC系统,是另一种独立操作系统
它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程,有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
2、嵌入式微处理器是嵌入式系统控制核心
嵌入式微处理器主要功能有四大点:
a、对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
b、嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统,如需要功耗只有mW甚至μW级。
c、具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已经模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
d、可扩展的处理器结构,以便能最迅速地开发出满足应用的最高性能的嵌入式微处理器。
3、嵌入式系统有别于其他操作系统有很大不同
最大的核心竞争力有六大特点:
a、嵌入式系统为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
b、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
c、嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
d、嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
e、嵌入式系统通常是面向特定应用的嵌入式CPU,与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
f、嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
从嵌入式系统开发的特点就明白,不同于一般形式的软件编程,基于特定的硬件平台嵌入式系统编程的,势必要求其编程语言具备较强的硬件直接操作能力。毫无疑问,汇编语言是具备这种特点的。然而,由于该语言编写开发过程的复杂性,通常不选择它用于嵌入式系统开发,而C语言是一种“低层次”的语言,已经成为嵌入式开发语言的最佳选择。