作者:
问与答 4. 问:仿真器和模拟器的区别是什么 答:在线仿真器ICE(In\ Circuit Emulator)能检查运行程序的处理器的状态。实际上,ICE取代了(或仿真了)目标板上的处理器,是一种强有力的工具。程序在ICE中可以实时运行、调试。 模拟器(simulator)是完全基于主机程序的。它模拟了目标处理器的功能和指令系统,其用户界面通常和仿真器的一样或比较类似。模拟器最大的缺点是它仅能模拟处理器,而嵌入式系统经常包含一个或更多重要的外围部件。模拟器无能为力而且不能实时运行程序。它只能起辅助作用进行软件粗调试,是纯软件的工具;而仿真器是硬件工具。 5. 问:嵌入式应用选择什么编程语言为好? 答:现在C语言是嵌入式世界里最广泛流行的高级语言。它是一个非常“低级”的高级语言,这是C语言最具威力的地方。C语言给予嵌入式程序员很大程度的直接控制硬件的能力,却不会失去高级语言带来的好处。C语言并不是嵌入式程序员使用的唯一语言,至少还有汇编语言、C++语言、BASIC、Forth\,JAVA和Ada语言。 在早期的时候,嵌入式软件只能用目标处理器的汇编语言来写。除了更高的软件开发费用和缺乏可移植性外,汇编语言还有很多缺点。最近几年找一个有经验的汇编语言程序员也变得越来越难。汇编语言现在只用作高级语言的附件,通常只用在那些必须要求极高效率或非常紧凑,或其他方法无法编写的小段代码里面。 C++语言是C语言的面向对象的超集,正在变得越来越流行。它的核心语言特征和C语言完全一样,但是部分特征会降低可执行代码的性能。它对程序员的帮助要比程序效率的损失更为重要。现在,JAVA和Ada语言在嵌入式领域还没有普遍的使用。 一般来说,越是高级的语言,其编译器和运行库施加的开销越大,你的应用程序也越大、越慢。例如,已经公认用汇编语言能写出很小很快的程序,其次是用C或Forth语言,接下来,较大的是C++或BASIC语言等。这是开发时间和运行性能间的一个得失权衡问题。 6. 问:为什么有时DSP后加一个小写的字母“s”,DSPs是什么? 答:DSPs是数字信号处理器芯片(Digital Signal Processors)的简称,而数字信号处理(Digital Signal Processing)则简称为DSP。加“s”特指芯片,以示区别。
