|
知识路径: > 计算机系统综合知识 > 操作系统 > 网络操作系统与嵌入式操作系统 > 嵌入式系统 > 嵌入式系统开发 >
|
相关知识点:6个
|
|
|
|
嵌入式系统的软件开发采用交叉平台开发方法(Cross Platform Development, CPD),即软件在一个通用的平台上开发,而在另一个嵌入式目标平台上运行。这个用于开发嵌入式软件的通用平台称为宿主机系统,被开发的嵌入式系统称为目标机系统。而当软件执行环境和开发环境一致时的开发过程则称为本地开发。
|
|
|
|
下图是一个典型的CPD环境,通常包含三个高度集成的部分:
|
|
|
(1)运行在宿主机和目标机上的强有力的交叉开发工具和实用程序。
|
|
|
|
(3)连接宿主机和目标机的多种通信方式。例如,以太网、串口线、ICE(In-Circuit Emulator,在线仿真器)、ROM仿真器等。
|
|
|
宿主机提供的基本开发工具有交叉编译器、交叉链接器和源代码调试器等,作为目标机的嵌入式系统则可能提供一个动态装载器、链接装载器、监视器和一个调试代理等。在目标机和宿主机之间有一组连接,通过这组连接程序代码,映像从宿主机下载到目标机,这组连接同时也用来传输宿主机和目标机调试代理之间的信息。
|
|
|
|
|
目前,嵌入式系统中常用的目标文件格式是COFF(Common Object File Format)和ELF(Executable Linking Format)。另外,一些系统还需要有一些专门工具将上述格式转换成二进制代码格式才可使用。典型地,一个目标文件包含:
|
|
|
(1)关于目标文件的通用信息,如文件尺寸、启动地址、代码段和数据段等具体信息。
|
|
|
|
|
|
|
嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
|
|
|
项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程的方法来进行,如采用原型化方法、结构化方法等。
|
|
|
由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
|
|
|
程序建立阶段的工作是根据详细设计阶段中产生的文档来进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境中进行调试,根据实际情况可以选用4.6.2节中的调试方法之一或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
|
|
|
最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
|
|
|