嵌入式系统原理与应用设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.3 嵌入式应用程序

如图1.1所示,嵌入式应用程序是处于最上层,直接面向用户,为用户提供服务的程序。其可分为两类:一类基于某一操作系统平台,通过操作系统提供的API(应用程序编程接口)调用底层驱动程序对硬件进行操作控制;另一类则不带操作系统,直接调用底层驱动程序操作控制设备。嵌入式应用程序与具体应用有关,不能一概而论,但其开发过程是相似的,都是采取交叉方式开发,故在此仅介绍嵌入式应用软件的开发环境与开发过程。

所谓交叉开发是指先在一台通用PC上进行软件的编辑、编译及连接,然后下载到嵌入式设备中运行、调试的开发方式。通用PC称为宿主机,嵌入式设备称为目标机。

交叉开发需要一个开发环境。交叉开发环境通常由集成开发环境IDE(Intergrated Development Environment)、调试仿真器、评估板及PC组成。其中,IDE一般为一个整合了编辑、编译、汇编、链接、调试、工程管理及函数库等功能模块的软件平台。IDE与处理器架构相关,如MCS-51单片机使用的开发平台是Keil51,TI的DSP使用的是CCS,ARM使用开发平台有ADS、SDT及EmbestIDE等。

调试仿真器有指令集模拟器、JTAG仿真器、在线仿真器ICE与ROM监控器等种类。其中,指令集模拟器为一种利用PC端的仿真开发软件进行模拟调试的方法,是一个软件仿真器。

JTAG仿真器是基于JTAG的在电路调试器ICD(In-Circuit Debugger),其通过处理器芯片的JTAG边界扫描口与处理器核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段。

在线仿真器ICE(In-Circuit Emulator)使用仿真头代替目标板上的CPU,可以完全仿真处理器芯片的行为。但结构较复杂,价格昂贵,现已不再常用。

ROM监控器(Monitor,驻留监控软件)驻留一个监控程序在目标板上运行,PC端调试软件通过并口、串口或网口与之交互,以完成程序执行、存储器及寄存器读/写、断点设置等调试任务。

评估板可作为嵌入式软件运行的载体及操作控制的对象,尤其是在目标板出来之前,可用其作目标板用,替代目标板的功能,用于调试软件。

嵌入式应用软件开发过程可分为源代码编辑、源文件编译和链接、重定位和下载、联机调试四个基本阶段,如图1.5所示。

图1.5 嵌入式软件开发流程