一般我们说的仿真器有两种,一种是emulator,另一种是simulator,像那种电视游东乐器仿真器是前者,它主要仿真的层次是CPU或接口设备,它会从ROM中抓出一行一行电视游乐器CPU的机器码,辨识后再仿真CPU的行为,简单地说就是在PC上仿真执行其他CPU的机器码程序,我们通常称emulator为binary level仿真,因为它是直接执行机器码程序。
而所谓的simulator主要是仿真系统与应用程序的层次,例如有一些仿真飞行的PC上通过程序仿真硬件与环境(用图仿真仪表板、天空与地面环境等),再把控制飞机的算法和上述仿真硬件的程序连接在一起,虽然说simulator是在仿真某个系统工程,但它却是个货真价实的PC程序,所以我们通常称simulator为source level仿真,它不像emulator要仿真执行其他CPU的机器码,亦即我们可以在PC上检验系统以及应用程序的算法,如果有问题我们可以直接修改程序,而这点是emulator做不到的。
归纳一下,emulator和simulator都是PC程序,但前者是仿真执行其他CPU的机器码,而simulator则是要设法让系统与应用程序中与硬件无关的程序代码(source code),使其能够在PC上执行。
所以你知道嵌入式系统开发项目中说的仿真器是指什么了吧?! |