个开放源码的嵌入式仿真环境——SkyEye_第1页
个开放源码的嵌入式仿真环境——SkyEye_第2页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个幵放源码的嵌入式仿真环境SkyEyeSkyEye摘要综述幵放源码的嵌入式仿真环境介绍的背景、目标和存在的意义, 对目前本身进行简要的技术分析;介绍上已经移植成功的操作系统和典型 应用。讲述正在幵展的工作和将来的发展计划。关键词仿真口赧入式系统 1 1 的目标与意义 1111 产生的背景操作系统是 软件产业的基础和龙头,能左右软件产业发展的方向,是世界软件产业最 大的利润来源。对于后时代和普适计算而言,嵌入式系统无处不在,其中关键的软件 核心技术包括嵌入式操作系统和网络互联中间件等。对于想进行嵌入式系统软件幵发和学习,或者想研究嵌入式等操作系 统和一些底层系统软件如等的研究和幵发人员来说,可能

2、存在如下几方面 的问题经常苦于经费不足,缺少足够的硬件幵发板和完善的软件幵发环 境;相关的书籍对一些最新软件的分析还不够全面,无法深研究和幵发嵌 入式软件。2高层次的软件设计和幵发一般不用过多考虑底层硬件的实现细节,如果直接处于一具体的硬件环境下,在幵发和研究中可能会陷入硬件的具 体细节中不能自拔,而不能把精力放到高层次的软件设计和幵发上。3如果硬件幵发环境不太稳定这种情况经常见到,且对身体的硬件不 是很了解,则可能在排除问题上花费大量不必要的时间。对于想了解、学习一般操作系统的实现原理、U操作系统或等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码。这是一种静态的学习方法,但效率较

3、低,比较枯燥,缺少一种动态和 亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代 码,只有通过亲手实践才能够掌握软件设计的核心内容。上面所指出的问题和需求促使了项目的诞生。1212 的目标和意义是开源软件项目,中文名字是天目。 的目标是在通用的和平台实现一个仿真集成开发环境,模拟常见的嵌 入式计算机系统;可在上运行以及W等多种嵌入式操作系统和各种系统 软件如、图形子系统、文件子系统等,并可对它们进行源码级的分析和测 试。的推出具有下面三方面的意义。1通过仿真集成环境可以很方便地进入嵌入式系统软件学习和开发 的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用

4、户来说,它将 是一个非常有效的学习工具和开发手段,因为的整个软件系统都是的,且 基于协议片除外。因此,如果要学习操作系统或者进行嵌入式系统开发,但苦于没有硬 件支持, 仿真环境软件是一个很好的选择! 如果想研究与具体硬件无关 的系统软件如协议栈等,采用可以有效地提高工作效率,因为你可以直接在W和U上进行幵发和调试,而与具体硬件打交道的各种已经存在,且有源码级调试环境,只需关心高层的逻辑设计和实现就可以了。 本身作为一个开放式的项目体系, 可以划分为多个独立的子项目系 统。通过参与的各个子项目,与大家共同交流、协议,可以进一步学习、 分析、精通内核,掌握嵌入式编程。在 3232 位嵌入式领域中,

5、系列所占比例相当大,而 7 7 是其中使用最广 泛的之一,因此,首先选择了 7 7 作为仿真的目标。目前,上可运行并进行源码级调试的有e W操作系统和一个著名的嵌入式实现、等系统软件。可用于学习、分析、开发这些系统软件,了解嵌入式编程,而这一切 都可在一个集成环境中完成。如果能够改进本身, 则大家对、 80198019 网络芯片等硬件的了解也会更深 入。并不能完全取代开发板等硬件的功能,但通过它可以比较容易地进入到嵌入式软件开发的广阔天地中。由于建立在基础之上,使用者可以方便地使用提供的各种调试手段对仿真系统上的软件进行源码级的调试,还可以进行各种分析,如执行点分 析、程序执行覆盖度分析等。由

6、于提供了源代码和相关文档,有经验的用户完全可以修改和扩展来满足 自已的需求2 2 的技术分析 2121 总体结构基于, 模仿了一个完整的嵌入式系统, 目前 包括、内存、寄存器、时钟、网络芯片、,将来还会仿真、等各种硬 件。在上运行的操作系统和各种系统软件意识不到它们是在一个虚拟的 计算机系统上运行。从总体上分为四个层次。 用户接口模块包括命令行用户界面和图形用户界面, 及时处理用户 的输入命令,并把相关调试数据输出给用户。2符号处理模块主要处理执行文件的头信息, 解释执行文件中嵌的调 试信息,管理符号表,解析源代码表达式,定位源代码中的语句位置和机 器码的位置关系等。3目标控制模块主要完成执行

7、控制如执行断程序,设置中断条件等, 程序栈结构分析,对具体目标硬件的控制如本地调试、远程调试和仿真调 试的控制。4目标仿真模块主要是模仿计算机系统中的主要硬件包括、 内存和各 种硬件外设等的执行,对执行文件的机器指令进行解释,并仿真执行每一 条机器指令,产生相应的硬件响应。2222 模拟的硬件介绍目前,仿真的包含不带的 91409140 和带的 720720,它们 都是基于 7 7内核的。还模拟了其它硬件外设,如串口、网络芯片、内存、时钟、网络等。 的仿真主要完成对指令集处理、寄存器操作和流水线处理等的仿真。720720 具有,即存储器管理单元,是用来管理虚拟内存系统的操作。的两具主要功能是

8、* *将虚地址转换成物理地址; * * 控制存储器存取允许, 关掉时,虚地址直接输出到物理地址总线。本身有少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作。表中保存的是虚地址及其对应的物理地址、权限、域和映射类型。当对一虚拟地址进行存取时,首先搜索表以查找对应的物理地址等信 息。如果没有查到,则进行查找,称为。 经过后,将查到的信息保存到,然后根据表项的物理地址进行读写。 的仿真主要是依据 720720 处理器的体系结构进行的。720720 可以看成 7 7 加上模块,主要是仿真控制的寄存器结构、结构、结 构、的控制逻辑以及在此基础上内存的读取操作。对于网络部分,仿真的是兼容 20002

9、000 的 80198019 以太网网络芯片,支持 8 8 位数据通路,仿真实现了远程信道和本地信道两个部分。本地完成控制器与仿真网络的数据交换,主处理器收发数据只需对远 程操作。当主处理器要向以太网络发送数据时,先将一帧数据经过远程信道, 送到以太网络控制器中发送缓存,然后发出传送命令。以太网络控制器在送出前一帧的数据后,继布完成此帧的发送。 以太网络控制器接收到的数据通过比较后,由存到接收缓冲区,收满1 1 帧后,以中断或缓存器标志的方式通知主处理器。 为了有效支持网络仿真, 还设计了一个虚拟 - -,可以在一台主机上支持多个在上运行的实例进行网络的通信互联,从而更有助于针对网络方面的开发

10、和研究3 3 上已经移植成功的 3131 焊应用于嵌入式设备的一个版本,是主要针 对不带的而设计的系统。M系统对于内存的访问地址都是实际的物理地址。操作系统对内存空间没有保护这实际上是很多嵌入式系统的特点,各 个进程实际上共享一个运行空间没有独立的地址转换表。目前,上可以运行 的 20032003 年最新版本。3232p- -作为一个基于 91409140 幵发板的仿真环境,在它上面可以移植各种适 合地嵌入式幵发应用的操作系统, 将片移植琶上是我们对此做的又一次尝 试。M- -是一个简单、高效的嵌入式实时操作系统内核。自从 19921992 年以来,已经被应用到各种嵌入式系统中。目前,它可以支

11、持 8686、等众多体系结构,并有上百个商业应用式 系统中。目前,它可以支持 8686、等众多体系结构,并有上百个商业应用实 例,其稳定性和可用性是经过实践验证的。同时,它的源代码公开, 任何人都可以从 - -的网站上获得全部源码以及 其在各种体系结构平台上的移植范例。无论是通常学习p来了解实时操作系统的构造,还是直接使用它来针 对具体应用进行开发,都是非常方便和可行的。目前,支持的p内核为 251251 版。3333 属于标准发行内核中的一个分支, 支持的系列, 如 720720、920920、等。 我们目前在上仿真的型号为内核是内核选择的本系结构为7117271172,它支持 2020、串

12、口等硬件,都是目前仿真的硬件。目前已经成功运行了版本为 24182418 的。有关的更多信息请访问。4 4 目前支持的网络协议栈 4141 上的卩上面有完整的协议栈,但缺少对的网络仿真芯片仿真兼容 20002000 的 80198019 的驱动程序。我们实现的驱动程序主要包括了初始化、中断处理、接收数据包的处理、发送数据包的处理等工作, 再加上的虚拟- -的协议,使卩的多个实例之 间、实例与主机之间可以进行通信。4242 片上的w本身没有协议栈,目前的一些第三方支持都是完全商业化的,很少给出源代码,影响了w- -的研究和推广。通过把幵放源代码的协议栈移植到w- -上来,就获得了一套可免费研究、

13、学习的嵌入式网络软件平台。其系统示意图如图 1 1 所示。是瑞士计算机科学院的等开发的一套用于嵌入式系统的开放源代码协议栈。的含义是轻型协议。可以移植到操作系统上,也可以在无操作系统的情况下独立运行。 我们目前使用的是的最新稳定版 053053。协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、编译器相关的部分独立出来,放在目录下。因此,在片上的实现就是修改这个目录下的文件,其它的文件一般不 应该修改。我们在中所仿真的网络芯片是 20002000 ,所以目前实现的网络设备驱动是针对 20002000 的,其它类型的网络芯片驱动可以在的网站上找到。现在已经顺利运行在W上了,目前可以从主机

14、和上运行的w+ +顺利进行的通信。4343 更多的协议栈除了之外,还有很多开源的嵌入式协议栈。 它们各有各的特点,有些功能较全面,有些占用资源出奇的少,能适 合不同场合的需要,而且多接触一些不同的思路,对协议和编码能有更好 的理解。其中的代表有、等,它们的基本思路应该都是一致的。 小组希望能有列多对协议栈感兴趣的人参与进来,特别是,实际上它 是专门为片设计的。5 5 上已经实现的简单应用 5151 上的服务器做完的移植修改工作以后, 就 可以在W中初始化,并创建或任务进行测试了。值得注意的是的初始化必须在P- -完全启动之后也就是在任务中进行, 因为它的初始化用到了信号量等与相关的操作。提供了

15、两种,供用户使用这个协议栈。第一种是。这种非常像标准中的,所以对其这样命名。它跟普通的一样,是基于 -模型的。范文先生网收集整理它提供了一种标准的方法来使用协议栈。但这种效率较低,消耗资源较多,因此不推荐使用。第二种称为。这种接口实际上是直接使用了协议栈中的回调函数,从而使应用程序和协议栈代码能够更好地集成在一起,运行同一个线程即任务中。相对于普通来说,速度更快,消耗内存资源更少;唯一的缺点是编程 复杂,对程序员的要求高。考虑到我们是在嵌入式设备中工作,这样的缺点是可以接受的。事实上,就是用来实现的。利用实现的 _ _是一个服务器,监听 7 7 号端口,这实际上是实现了中最简单协议收到什么,就

16、往回发同样的内容。编译运行后,用地址命令可以得到响应。用地址 7 7 登录 7 7 号端口命令可以看到的回显效果。说明、协议都已正确运行。5252w只提供了操作系统内核,用户要自己添加文件处理、人机界面、网络接口等重要部分。大部分人认识都是从这里开始的。 由于下的仿真串口已经实现了中断方式的接收实际是从键盘接收输 入和输出实际上是输出到终端屏幕,所以实现一个类似的简化版并不困难。其本质思想就是作为一个 - -下的任务,工作于内核之外,占用一个任 务号。它接收用户输入的字符,存储到缓冲区,并回显到屏幕上,以回车键为用户输入的结束信号,随后解析用户输入的命令名称、参数,调用相应的命令函数一直到这个

17、命令函数运行返回,才继续的人机交互界面。我们目前在片下实现的被命名为。它实现了最基本的命令输入、解析参数、调用命令函数功能,以及两 条示例性的命令。这个的特色是采用了一些面向对象的思路来实现的各种命令。 把每个命令看成一个对象,对象的属性是命令名,而对象的方法就是 命令的执行函数本身。用户输入命令及参数后,将参数传递给对象的方法并执行。 要中增加一条命令,就是增加一个对象,并实现这个对象的方法,以 利于今后做进一步的扩充。5353 上的应用程序目前 -20030305-20030305 已经可以在上运行。其中的、,、等主要的应用程序都可以成功地运行在中, 而且不需要对应用程序进行任何修改。6

18、6 正在开展的工作 6161 仿真作为单片机系统重要的输出设备, 屏幕用得 非常广泛,因此,我们认为有必要为加入控制器设备仿真。我们使用 + +图形函数库在中模拟出一个屏幕,这样在上运行的 , ,其驱动 程序会像驱动真正的控制器一样发送控制命令,而解释这些控制命令,并 且应地在 + +绘出的窗口中画不同灰度或颜色的点。这里对 + +的使用仅限于绘制窗口和画点,因为这是屏幕的最基本动作, 其它所有的工作如画图、的实现都应该由应用程序利用画点的功能去实现, 与本身无关。的是映射到内存中的。屏幕的每个点对应内存中的 1 1 位或几位,各个点所对应的内存按行序 连续存放。上显示什么内容,完全由这块内存

19、决定。仿真控制器会根据这块内存去刷新屏幕显示,刷新频率等参数要根据 具体使用的屏幕来决定。中的驱动程序要往屏幕上写东西,就是写这块内存。6262 基于的其它体系结构的仿真 3451034510 是三星公司推出的针对嵌入式 应用的 16321632位嵌入式处理器,是一款应用十分广泛的嵌入式处理器。该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成 本和高性能的特点。3451034510 中内置了公司设计的 16321632 位 7 7 处理器,可以执行 3232 位的指令, 也可执行1616 位的指令,并集成了多种外围部件。目前,仿真的体系结构还比较少,尝试对 3451034510 的

20、仿真,一方面是使 能够支持更多的体系结构;另一方面,通过仿真3451034510,有助于为设计可扩展框架,使更具通用性和模块化。公司的芯片 11101110 的最高运行速度可达 206206;其内部有强大的指令操作 能力、高速缓冲能力、寄存器管理能力、读写缓冲器能力。11101110 寄存器总线接口可与、 、以及其它潜在的器件共享数据信号, 其寄存器与模块支持 4 4 个快速大同小页操作模式、扩展数据输出、同步、 6 6 个静态存储器、 6 6个等。11101110 可提供系统支持逻辑、 多个串行通信通道、 1 1 个彩色灰度控制器、2 2 个插槽、 2828 个口;内部提供定时器、电源管理、

21、指令控制、复位控制、 时钟产生、中断控制等功能。11101110 电源管理提供正常、 空闲、睡眠三种工作状态, 其内部包含六通 道的控制器,用于支持串行通信过程中的数据高速运行,如串行通道与外 部寄存器、等之间的通信;此外,还有 1 1 个用于支持控制器工作的 独立的控制器 11101110,它有 5 5 个独立的串行通道, 可分别执行半双工被动协 议的通用串行总线通信、 红外数据通信、 多媒体通信口同步串行口通信等。11101110 通过指令和数据断点提供调试支持, 还提供口, 用于进行系统连 续检查。通过对芯片的仿真,除了有助于设计可扩展框架外,还将推动下一步 对的系列的研究。5353 集成开发环境的实现集成开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论