2013年11月15日 Eclipse

Simics器件建模(视频演示)

由雅各布Engblom

jakob-engblom-intro-picture

为了给一个感觉如何建模工作在Simics,我们已经发布了一个在Youtube上的视频这显示了如何将新设备添加到现有机器上。在视频中,任务是将一个新设备添加到现有的机器上,并使该设备的驱动软件满意。为了实现这一点,我们使用Simics Eclipse中的Modeling透视图,以及自动化单元测试、全系统测试和用户交互测试。我们用Simics DML和Python编写代码。

我们正在构建的设置是这样的:

modeling-goal

我们有一个armQSP机器有两个核心和一组基本的外设,并添加了一个新的设备,它是一个简单的面向用户的控制器面板。面板本身有四个彩色的led,可以从设备上打开和关闭,以及一个按钮输入,应该会导致设备发送一个中断到机器的处理器(通过中断控制器)。我们还假设有一个包含设备驱动程序的软件堆栈,并且最终目标是让该软件驱动程序满意于我们的虚拟平台。这种情况对于许多真实的Simics的使用和建模具有代表性。

这段视频,我们将展示如何使用西米奇Eclipse GUI,通过Simics建模白皮书中列出的阶段:

  • 一开始,我们有QSP机器和面向用户的面板。
  • 设置设备的编程寄存器映射的框架(使用DML)
  • 将设备添加到机器设置中(系统内存映射)
  • 软件测试运行(以失败告终,因为没有功能)
  • 设置单元测试来描述设备的功能(本质上是测试驱动的开发)
  • 填补大部分的功能(我们在这里做一个快进,就像在一个烹饪节目中你从把蛋糕放入烤箱到它被完成)
  • 重新运行单元测试并使用软件重新测试,以显示设备仍略有不完整
  • 填充最后一个功能
  • 重新运行单元测试和软件测试,显示设备现在正常工作

实际上,测试运行看起来像这样:

modeling-screenshot

在实践中,大多数Simics建模都以类似于这个视频的方式完成,即向现有的机器添加东西。使用Simics,建模几乎总是可以从某些现有运行的系统(从QSP开始)开始快速启动平台l就像我们在视频里做的那样现有的模型)。即使是从零开始,我们也会快速构建一个基本的运行系统,这样我们就有了可以运行的东西,然后迭代随着时间的推移,添加新的设备。Simics系统建模是一种敏捷的、迭代的、测试驱动的活动。

当软件还不能用于新设备时,单元测试就成为开发工作的主要驱动力。测试本质上定义了设备的正确行为。在实践中,软件驱动程序将使用设备模型作为他们的基础开发,然后驱动程序将用于测试硬件到达硅。

有关使用Simics建模的更多信息,请参见西米奇建模白皮书

设备建模也是其中的关键部分尝试目标设置西米奇。

以前的十大理由相信您的业务风河Linux -第3部分
下一个数码物理模拟(附短片)