嵌入式系统开发中的C语言编程和普通C语言编程有何区别?

Python035

嵌入式系统开发中的C语言编程和普通C语言编程有何区别?,第1张

无区别,只不过编译器不一样罢了。因为不同的cpu构架有不同的指令集。而嵌入式基本使用RISC结构的cpu,需要使用pc上的cpu编译出在能嵌入式cpu上运行的二进制程序。这叫交叉编译。pc上的程序不可以直接在其他cpu上运行,需要重新编译。

因为编译器不一样,执行的c语言标准就跟编译器相关。

管理内存映射,设置中断系统等在pc上也有,不是嵌入式的专利。

只是做嵌入式里的界面、网络、文件编程的话,跟pc上几乎没有差别,因为有操作系统罩着。如果开发驱动程序,就要求你对所使用的cpu和板子的结构很了解,也就是看得懂硬件手册即可。

语法上没什么区别,就是普通的c编程是在OS之上,有很多的标准库函数可以调用,分配的内存就是PC机的内存,处理器就是PC的CPU。 而嵌入式C编程的话会涉及到操作硬件,所以底层没有库函数调用,需要自己编写操作硬件的函数,另外编译的时候是用交叉编译器,内存是芯片上的ram, 处理器就是芯片带的处理器,例如ARM或者MIPS等等,而不是PC的x86 CPU, 还有就是在写程序的时候更注重程序的优化和效率,因为嵌入式硬件资源相对PC有限,实时性较强等等。

嵌入式系统需要学C语言编程。

根据中国物联网校企联盟的建议,学习嵌入式系统的必备知识与学习方法如下:

1、C开发经验

条件:Linux。方法:主要是掌握ANSI C编程(不包括gtk,qt等图形可视化开发)

2、网络、操作系统、体系结构

条件:Linux,各种书,算法、例程。方法:通过C编程实现简单的网络等知识的算法和过程。

3、嵌入式系统概念

条件:各个嵌入式网站,讨论组,书籍。方法:少提问,多留给自己思考的空间。

4、嵌入式开发实践

条件:各种嵌入式系统开发工具的demo版,包括编译器,仿真器。

方法:一个是基于MCU/MDSP的嵌入式系统开发,另一个是像Palm OS,WinCE,uC/OS II等RTOS下的应用软件开发。第一个是针对硬件开发而言的,而第二个则是针对软件开发而言的。

扩展资料

发展趋势:

1、嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。

目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和板级支持包(BSP)。

而WindowCE在主推系统时也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。

2、网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。

参考资料来源:百度百科-嵌入式系统