|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式软件开发基础知识 >
|
相关知识点:6个
|
|
|
|
|
|
嵌入式系统目标机上的资源非常有限,例如,处理器的结构比较简单,速度较慢;内存和外存的容量小;显示功能较弱;软件资源较少,等等。因此,直接在嵌入式系统的硬件平台上开发和调试应用软件比较困难,有时甚至是不可能的。目前一般采用的解决办法是:将集成开发环境安装在高性能的PC上,然后在PC上进行嵌入式应用软件的开发。由于PC上的CPU较多使用x86芯片,而嵌入式系统中的处理器芯片种类繁多,如ARM、MIPS、Power PC等,两种处理器的指令集是不同的。因此,在集成开发环境下编写的源程序需要经过交叉编译,才能生成目标平台上运行的二进制代码格式。
|
|
|
|
需要在目标机执行的程序经过交叉编译之后,还要经过调试排错,确认能正常运行后才能交付使用。显然,在目标机上进行调试排错是非常困难的,因此实际的做法是仿真调试。也就是通过接口和信号线,把目标机上机器指令的执行结果和CPU当前各个寄存器的值传送到集成开发平台,使开发人员能够观察到目标机的执行状况,从而判断出指令执行的正确与错误。
|
|
|
|
嵌入式应用软件需要在开发板上完成所有的开发任务。系统开发完成之后,才把目标程序安装在目标机上运行。也就是说,开发板只是中间的目标机,其任务就是支持开发和调试。
|
|
|
|
在台式机环境下,程序员拥有大量的硬件和软件编程资源,对内存容量、硬盘容量、可以打开的文件数量等问题几乎不加限制。然而在嵌入式软件开发中,就必须考虑可用资源的问题。嵌入式系统使用的处理器、内存和存储容量与台式机相比有很大的差距。因此,嵌入式代码不仅要提供丰富的功能,还必须满足其他的一些约束条件,如按所需速度运行以满足系统期限、适应内存总量限制、满足功耗要求等等。
|
|
|
|
在开发桌面应用程序时,很少直接与硬件打交道,除非是开发初级的设备驱动程序。但是在嵌入式系统的开发中,软件与硬件的关系非常密切,经常需要对运算器、寄存器和存储器进行操作。即使是采用了嵌入式操作系统,为了架构的简化以及节省空间,也容许应用程序直接去访问外围的寄存器。特别是当系统发生了难以理解的错误时,可能无法确认到底是程序写错,还是目标平台的硬件电路有问题。因此编程人员除了要了解如何编写高级语言程序(C、C++、Java等)与低级语言程序(如汇编),还要了解硬件设计及除错的内容。
|
|
|