|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式软件开发环境 > 编辑器、交叉工具链(编译器、链接器、调试器)、模拟器 > 调试及调试工具 >
|
相关知识点:6个
|
|
|
|
模拟器是一个运行在宿主机上的纯软件工具。它通过模拟目标机的指令系统或目标机操作系统的系统调用来达到在宿主机上运行和调试嵌入式程序的目的。
|
|
|
模拟器主要有两种类型:一类是在宿主机上模拟目标机的指令系统,称为指令级的模拟器;另一类是在宿主机上模拟目标机操作系统的系统调用,称为系统调用级的模拟器。指令级模拟器相当于在宿主机上建立了一台虚拟的目标机,该目标机的CPU种类与宿主机不同。例如,宿主机的CPU是Intel Pentium,而虚拟机是ARM、Power PC或MIPS等。比较高级的指令级模拟器还可以模拟目标机的外部设备,如键盘、串口、网口和LCD等。系统调用级的模拟器相当于在宿主机上安装了目标机的操作系统,使得基于目标机操作系统的应用程序可以在宿主机上运行。两种类型的模拟器相比,指令级模拟器所提供的运行环境与实际的目标机更接近;而系统调用级的模拟器本身比较容易开发,也容易移植。
|
|
|
使用模拟器的最大好处是:可以在实际的目标机环境并不存在的条件下开发其应用程序,并且在调试时可以利用宿主机的资源来提供更详细的错误诊断信息。但模拟器也有许多不足之处,包括:
|
|
|
.模拟环境与实际的运行环境差别较大,无法保证在模拟条件下调试通过的程序就一定能在真实环境下顺利运行。
|
|
|
.不能模拟所有的设备。嵌入式系统中经常包含许多外围设备,但除了一些比较常见的设备之外,多数设备是不能模拟的。
|
|
|
.实时性差。在使用模拟器调试程序时,被调试程序的执行时间和在真实环境中的运行时间差别较大。
|
|
|
尽管模拟器有许多不足,但是在项目开发的早期阶段,尤其是在还没有任何硬件可供使用时,模拟器还是非常有用的。对那些实时性不强,没有特殊外设,只需验证其逻辑的程序,用模拟器基本可以完成所有的调试工作。而且在使用模拟器调试程序时,不需要额外的硬件来协助,因此降低了开发成本。
|
|
|