嵌入式软件的开发过程与开发环境

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在利用驻留程序法作为调试手段时,程序的 开发步骤如下:
(1) 在宿主机上编写程序的源代码。在编写源 代码时应根据需要加入若干语句,目的是通 过宿主机端软件显示某些变量的值,以便帮 助进行程序调试;
(2) 在宿主机上编译程序的源代码,生成可执 行程序;
直接测试法是嵌人式系统发展的早期经常采用的一 种调试方法。原因是这种方法需要的调试工具非常 简单,比较适应当时的实际情况。采用这种方式进 行软件开发的基本步骤如下:
(1) 在宿主机上编写程序的源代码; (2) 在宿主机上用交叉编译工具对程序的源代码进 行编译,生成可执行程序;
(3) 将可执行程序固化到中; (4) 将插到目标机的插座上; (5) 在目标机上启动程序运行,若程序正确,则转 到第(8)步; (6) 在在宿主机上修改程序的源代码,纠正错误; (7) 转到第(2)步; (8) 程序开发完成。
3 嵌入式软件的开发环境
本章主要内容: (1) 嵌入式软件的开发过程 (2) 嵌入式软件的建立及其工具 (3) 嵌入式软件的下载及其工具 (4) 嵌入式软件的调试及其工具 (5) 典型的嵌入式软件开发环境
3.1 嵌入式软件的开发过程
为嵌入式系统开发应用程序的过程与为机开 发应用软件过程有一定的不同,出现了一些 在机上不曾有的工作阶段。在同样的一个阶 段,具体的工作也有很多的不同。
(3) 在目标机上按复位键,重新启动目标机。目标机 被重新启动后,将自动执行驻留在中的程序。(一 些开发评估板可以通过跳线选择系统重新启动后从 不同的地址开始运行。)
(4) 将宿主机的串口和目标机的串口设置为相同的传 输速率。在设置时应选择尽可能高的速率,以节省 程序下载所花费的时间。设置目标机串口传输速率 的方法是同过超级终端程序输入相应的命令。
x86 95 x86
i960 R3、R40 D10v、M32 68k 、
39
3.2.3 链接
交叉编译器所产生的目标文件是不完整的,它里 面可能还有未定义的内部变量和函数引用。链接 阶段的工作就是用链接工具把这些目标文件组合 到一起,使所有未定义的变量和函数在程序库或 其它目标文件中找到它的定义。
链接阶段得到的结果是一个“可重定位”的程序 文件。其中包含了来自输入文件的所有代码和数 据。链接工具通过合并输入文件里的代码段、数 据段来完成这一工作。链接完成后,所有输入文 件里的机器语言代码将出现在输出文件的代码段 里,所有变量将出现在输出文件的数据段里。
而应用程序要在和宿主机有很大 差别的目标机上实际运行。
应用程序的调试Leabharlann Baidu要是 在宿主机上进行,但在 很多情况下要借助于目 机。
应用程序的编辑、编译、交链叉接开等发过模式
程都在宿主机上完成,
嵌入式软件的开发过程
3.2 嵌入式软件的建立及其工具
嵌入式软件的建立步骤: 源代码编写 编译 链接 定址
嵌入式软件的建立步骤
3.3 嵌入式软件的下载及其工具
程序的下载就是把在宿主机上生成的目标 机内存映像文件放到目标机的存储器或者 上面去,以便进行调试和运行。程序下载 的方法主要有以下几种: (1) 使用仿真器 (2) 使用在线仿真器() (3) 使用片上调试器() (4) 使用目标机上的驻留程序
使用目标机上的驻留程序
3.2.4 定址
要使链接工具输出的文件变成可执行的程序文件还 必须做一件事,那就是为程序的代码和数据指定存 储地址。指定存储地址这项工作是需要在定址阶段 通过定址工具来完成的任务。定址工具的输入是 “可重定位”的程序文件,输出是可执行的二进制 文件。它们二者之间的转换,由定址工具自动完成, 但应用程序的开发者必须向定址工具提供有关目标 机上的存储器的信息。定址工具将用这些信息来为 “可重定位”程序里的每一个代码段和数据段指定 物理存储地址。
3.2.2 编译
编译阶段要做的工作是用交叉编译或汇编 工具处理程序的源代码,产生目标文件。 当宿主机和目标机采用同样类型的处理器 时,没有“交叉”的问题,是这一阶段的 一个特例。这时编译工作往往简单些。
编译器支持的宿主机/目标机组合
宿主机 9000/700 6000
目标机 x86
H8/300、H8/300H、H8
生成了目标机的内存映象文件之后,就可以使用 程序将这个内存映像文件下载到目标机上面去。 宿主机端软件和程序一般是通过串口相互连接。 当然也可以通过以太网相连接。在使用串口相连 接时,下载程序的工作可分为以下几步进行:
(1) 用串口线连接宿主机和开发评估板的串口。
(2) 在宿主机上启动程序。当使用以为操作系统 的机做宿主机时,通常以超级终端程序做宿主机 端软件。
3.2.1 源代码编写
源代码编写阶段的工作任务是使用适当的程序设计 语言编写程序的源代码。比如说用C语言、语言、 汇编语言等。就目前的情况来看,使用最多的是C 语言。这其中的原因可能有以下三个:其一,受通 用计算机的影响,C语言的使用非常广泛,几乎每 一种处理器都支持C语言的编译器,而且有相当多 的程序员具有用C语言进行程序开发的丰富经验。 其二,在嵌入式系统领域中,C语言是一种最具统 一标准的程序设计语言。其三,C语言是一个非常 “低级”的语言。它赋于程序员很多直接控制计算 机硬件的能力,但又不失去高级语言所固有的好处。 它的这种特点对嵌入式系统更为重要。
(5) 在宿主机上通过超级终端程序输入程序的命令, 将开发评估板设置为等待接收下载程序状态,并指 定程序下载的位置。
(6) 在宿主机上发出下载命令。开始进行程序下载。
3.4 嵌入式软件的调试及其工具
直接测试法 驻留程序法 插桩法 仿真器法 在线仿真器法 片上调试法 模拟器法
3.4.1 直接测试法
3.4.2 驻留程序法
驻留程序常被称为程序。它需要有一个与之 配合工作的宿主机端软件。宿主机端软件和 可建立起连接。对目标机来说宿主机端软件 好比是一个终端。通过它可以输入针对目标 机的控制命令。目标机上的应用程序输出在 标准输出设备上的内容可以通过宿主机端软 件显示出来。因此,只要在被调试的程序中 将一些重要的信息用语句显示出来就可以帮 助程序的调试。
相关文档
最新文档