|
知识路径: > 计算机软件与网络基础知识 > 嵌入式系统 > 嵌入式系统软件开发环境 > 调试方法 >
|
相关知识点:5个
|
|
|
|
模拟器是运行于宿主机上的一个纯软件工具,它通过模拟目标机的指令系统或目标机操作系统的系统调用来达到在宿主机上运行和调试嵌入式应用程序的目的。
|
|
|
模拟器适合于调试非实时的应用程序,这类程序一般不与外部设备交互,实时性不强,程序的执行过程是时间封闭的,开发者可以直接在宿主机上验证程序的逻辑正确性。当确认无误后,将程序写入目标机上就可正确运行。
|
|
|
模拟器有两种主要类型:一类是指令级模拟器,在宿主机模拟目标机的指令系统;另一类是系统调用级模拟器,在宿主机上模拟目标操作系统的系统调用。指令级的模拟器相当于宿主机上的一台虚拟目标机,该目标机的处理器种类可以与宿主机不同。比较高级的指令级模拟器还可以模拟目标机的外部设备,如键盘、串口、网络接口等。系统调用级的模拟器相当于在宿主机上安装了目标机的操作系统,使得基于目标机的操作系统的应用程序可以在宿主机上运行。被模拟的目标机操作系统的类型可以跟宿主机的不同。两种类型的模拟器相比较,指令级模拟器所提供的运行环境与实际目标机更为接近。
|
|
|
使用模拟器的最大好处是在实际的目标机不存在的条件下就可以为其开发应用程序,并且在调试时利用宿主机的资源提供更详细的错误诊断信息,但模拟器有许多不足之处:
|
|
|
(1)模拟器环境和实际运行环境差别很大,无法保证在模拟条件下通过的应用程序也能在真实环境中正确运行。
|
|
|
(2)模拟器不能模拟所有的外部设备,但嵌入式系统通常包含诸多外设,但模拟器只能模拟少数部分。
|
|
|
(3)模拟器的实时性差,对于实时类应用程序的调试结果可能不可靠。
|
|
|
|
尽管模拟器有很多的不足之处,但在项目开发的早期阶段,其价值是不可估量的,尤其对那些实时性不强的应用,模拟器调试不需要特殊的硬件资源,是一种非常经济的方法。
|
|
|
:从软件工程的角度来看,调试与测试是不同的。而本节中的“调试”相当于测试和调试的统一体,而且更加侧重于测试。有关软件测试和软件调试的更加详细的知识,请阅读8.8节。
|
|
|