当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 嵌入式c语言与c语言的区别

嵌入式c语言与c语言的区别 时间:2019-10-14      来源:沈阳中心,窦老师

嵌入式c语言与c语言的区别

最广泛使用的系统编程语言是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中才可以运行。

三、对于硬件的访问

1.如上图所示:对于普通c语言而言,操作系统对计算机硬件设备进行操作,如控制声卡发出声音,控制显卡绘制图形等。

应用程序可以通知操作系统执行某个具体的动作,以便使应用程序间接的通过操作系统对硬件进行操作。

对于操作系统是怎样控制硬件设备的只需大致了解即可,此过程为应用程序对API调用的过程,这一过程称为系统调用,通过系统提供的接口函数就可以指挥操作系统来工作了。

2.如上图所示:嵌入式系统在访问硬件时,必须编写直接操作硬件的应用程序。

四、资源的限制

1.由于在嵌入式系统中使用小而耗电的组件,嵌入式系统具有有限的ROM和RAM以及较少的处理能力,因此在嵌入式C中编写程序时应该注意有限的资源。

2.在C语言中,台式计算机可以访问系统操作系统,存储器等,可以利用所有计算机资源。

五、应用方向

1.C主要用于简单但逻辑的程序,基于操作系统的软件等。

2.嵌入式C用于电视,洗衣机等微控制器。

上一篇:嵌入式c语言编码规范

下一篇:基于Linux下的C语言项目实战--本地账号管理系统

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2018 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号

回到顶部