一、前言
- 嵌入式 C 语言主要应用于各类智能设备、家电控制(如智能冰箱、空调等的控制系统)、汽车电子等领域;
- C 语言则广泛应用于一般的软件开发,比如一些桌面应用程序、游戏开发等,同时也在一些底层系统开发中发挥重要作用
二、嵌入式C与C的不同
- 嵌入式C语言是C语言的一种扩展,在嵌入式系统中应用于编写嵌入式软件。它与标准C语言的主要区别在于嵌入式程序员的思考角度、使用习惯以及在一些具体应用方向上的不同。具体体现在以下几个方面:
1、 启动过程
- 在搭载Windows或Linux等通用操作系统的PC机上,普通C语言编译器会自动完成启动程序,程序员无需制作自己的启动程序。自动初始化CPU和外设后,调用main函数。
- 而嵌入式C语言搭载微处理器与普通PC机器不同,要求嵌入式系统的启动程序能够对搭载微处理器的硬件平台和所需数据进行初始化操作。所以做嵌入式开发的程序员一定要制作特定的启动程序。
2、 存储空间
- 随机存取存储器(RAM)是与CPU直接交换数据的内部存储器,它可以随时读写,速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。只读存储器(ROM)所存数据在工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变。
- 对于普通C程序,操作系统将程序和数据从外部存储设备载入RAM中运行,代码、数据、堆栈都在RAM中。
- 对于嵌入式C程序,因没有通用的操作系统,嵌入式系统必须先将代码设置到ROM中,将数据、堆栈设置到RAM中才可以运行。
3、 对于硬件的访问
- 对于普通C,操作系统对计算机硬件设备进行操作,应用程序可以通知操作系统执行某个具体的动作,以便使应用程序间接的通过操作系统对硬件进行操作。对于操作系统是怎样控制硬件设备的只需大致了解即可,此过程为应用程序对函数接口调用的过程,这一过程称为系统调用,通过系统提供的接口函数就可以指挥操作系统来工作了。
- 而嵌入式系统在访问硬件时,必须编写直接操作硬件的应用程序。
4、 资源的限制
- 由于在嵌入式系统中使用小而耗电的组件,嵌入式系统具有有限的ROM和RAM以及较少的处理能力,因此在嵌入式C中编写程序时应该注意有限的资源。
- 在C语言中,PC机可以访问系统操作系统,存储器等,可以利用所有计算机资源。
5、 应用方向
- C语言主要用于简单但逻辑的程序、基于操作系统的软件等。
- 嵌入式C语言则用于电视、洗衣机等微控制器。
三、总结
-
嵌入式C语言和C语言在语法上没有区别,但在代码编写上,嵌入式C语言需要更注重程序的优化和效率。
-
在应用方向上,C语言主要用于简单但逻辑的程序、基于操作系统的软件等,而嵌入式C语言则用于电视、洗衣机等微控制器。
-
两者都非常重要,它们在不同的领域都有广泛的应用。C语言是一种广泛使用的编程语言,具有高效、灵活、可移植等特点,适用于系统级编程、嵌入式系统、操作系统、网络编程、游戏开发等许多领域。嵌入式C语言则是专门用于嵌入式系统开发的编程语言,它具有高效、可移植、直接访问硬件等特点,适用于各种嵌入式设备的开发。