c语言是目前世界上使用最广泛的系统编程语言,而嵌入式c语言是c语言的扩展,是在嵌入式系统中应用于编写嵌入式软件。嵌入式c语言与普通c语言没有特别大的区别,针对嵌入式开发的c语言就是嵌入式c语言,两个主要区别在于嵌入式程序员思考角度、使用习惯与普通c语言不一样。具体体现在启动过程、存储空间的分配、对于硬件的访问、资源的限制等方面。
1.启动过程
嵌入式c语言搭载微处理器,要求嵌入式系统的启动程序:要能对搭载微处理器的硬件平台和所需数据进行初始化操作。所以做嵌入式开发的程序员一定要制作特定的启动程序。
而pc机上普通c语言编译器会自动完成启动,自动初始化cpu和外设,调用main函数,程序员不用制作自己的启动程序。
2.存储空间
嵌入式c程序,因没有通用的操作系统,嵌入式系统必须先将代码设置到rom中,将数据、堆栈设置到ram中才可以运行。
而对于普通c程序,操作系统将程序和数据从外部存储设备载入ram中运行。代码、数据、堆栈都在ram中。
3.资源访问
嵌入式c语言编程的话会涉及到操作硬件,所以底层没有库函数调用,需要自己编写操作硬件的函数,另外编译的时候是用交叉编译器,内存是芯片上的ram, 处理器就是芯片带的处理器,还有就是在写程序的时候更注重程序的优化和效率,因此在嵌入式c中编写程序时应该注意有限的资源。
而普通的c语言编程是在os之上,有很多的标准库函数可以调用,分配的内存就是pc机的内存,处理器就是pc的cpu。对于普通c,操作系统对计算机硬件设备进行操作,应用程序可以通知操作系统执行某个具体的动作,以便使应用程序间接的通过操作系统对硬件进行操作。在c语言中,pc机可以访问系统操作系统,存储器等,可以利用所有计算机资源。
总之,嵌入式开发是一门实践性非常强的技术,不仅需要掌握c语言程序编写,还要熟悉硬件特性和缺陷,对编译原理、计算机技术等有深刻的理解。
以上就是关于嵌入式c语言与普通c语言有什么区别的介绍,如果对嵌入式感兴趣,可以关注国信安嵌入式课程,跟老师详细了解。