论文部分内容阅读
随着计算成本的大幅降低,各种模拟器技术被广泛地用于嵌入式系统的设计与开发,此项技术对于降低设计成本、工程时间开销有着显著的成效.但是现有嵌入式操作系统开发中系统级模拟器通常只针对特定的目标硬件进行设计,在可扩展性和灵活性上存在不足.该文在研究现有模拟器构造技术的基础上做了两项主要工作:其一,提出了一种可定制、可扩展的模拟器结构Simular;其二,实现了依据处理器指令系统描述生成CPU模拟器部分代码的编译器.Simular提供了一个不依赖于目标硬件平台的通用模拟器框架,可以支持对完整的CPU指令集、存储设备以及各种外设等的模拟.该框架采用面向对象的设计,实现了模拟器软件运行所需的各种基本机制.它允许用户依据需求加载用以模拟不同处理器和硬件设备的库以及其他功能模块.为了适应模拟不同处理器的需求,该文设计了生成CPU模拟器部分代码的软件工具.该工具分析一个定义处理器指令系统的nML描述,利用该语言为属性文法的特征构造了属性树以及属性计算的规则,并生成处理器模拟程序的译码程序和每条指令的模拟程序.生成的程序和已经实现的模拟器的其它部分结合在一起构成模拟处理器的可加载模块.生成的模拟程序使用了译码缓冲和代码链接技术优化模拟速度.Simular目前的实现包括ARM V4指令解释器以及中断、时钟、RS232和LCD控制器等简单外设的模拟,可以运行μCOSII for ARM的示例程序.为了支撑嵌入式操作系统开发,Simular还实现了GDB远程调试协议,可以用GDB实现操作系统核心的源代码级调试.此外,模拟器还提供了性能日志接口用以辅助性能分析.该文首先通过分析现有模拟器实现技术确定了技术路线.然后自顶向下的描述了模拟器框架以及支撑模拟器运行的重要系统机制,并对生成模拟器代码的方法进行了论述.该文的最后对进一步的研究做了展望.