最广泛使用的系统编程语言是C语言,它是使用自由格式源代码的简单编程语言;它曾用于以前用汇编语言构建的应用程序中。嵌入式C是C语言的扩展,它在嵌入式系统中应用于编写嵌入式软件。
一、启动过程
1)通用c语言程序的启动过程
普通c语言启动程序搭载了windows或linux等通用操作系统的PC机,编译器会自动完成启动程序,对微处理器和外围设备进行初始化,然后再调用main函数,用户没有必要制作自己的启动程序。
2)嵌入式c语言程序的启动过程
嵌入式c语言搭载微处理器,用于嵌入式系统的启动程序要能够对目标系统的硬件和数据进行初始化,因此,用户必须做特定的启动程序。一般情况下,在支持微处理器的编译器中会捆绑相应的启动程序,如下图:
二、存储空间的分配
存储器ROM和RAM
RAM:随机存取存储器(random access memory)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。
RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。
ROM:只读存储器。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定,断电后所存数据也不会改变。1. 对于普通c程序,操作系统将程序和数据从外部存储设备载入RAM中运行。代码、数据、堆栈都在RAM中。2. 对于嵌入式c程序,因没有通用的操作系统,嵌入式系统必须先将代码设置到ROM中,将数据、堆栈设置到RAM中才可以运行。
三、对于硬件的访问
对于普通c语言而言,操作系统对计算机硬件设备进行操作,如控制声卡发出声音,控制显卡绘制图形等。
应用程序可以通知操作系统执行某个具体的动作,以便使应用程序间接的通过操作系统对硬件进行操作。
对于操作系统是怎样控制硬件设备的只需大致了解即可,此过程为应用程序对API调用的过程,这一过程称为系统调用,通过系统提供的接口函数就可以指挥操作系统来工作了。
嵌入式系统在访问硬件时,必须编写直接操作硬件的应用程序。
四、资源的限制
1.由于在嵌入式系统中使用小而耗电的组件,嵌入式系统具有有限的ROM和RAM以及较少的处理能力,因此在嵌入式C中编写程序时应该注意有限的资源。2.在C语言中,台式计算机可以访问系统操作系统,存储器等,可以利用所有计算机资源。
五、应用方向
1、C语言主要用于操作系统开发,以及系统底层开发。2、嵌入式C主要用于家电产品、消费电子有关的单片机开发。 |
|