您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

嵌入式体系仿真环境—SkyEye

发布日期:2011-04-19


   摘 要:
本文全面阐发了开放源码的嵌入式体系仿真集成开辟环境SkyEye,并对SkyEye上已经移植告成的利用体系、典范应用举行了先容,着末报告了SkyEye正在开展的变乱和将来的生长方向。 
   关键词:嵌入式体系;仿真环境;SkyEye;Linux;mClinux;mC/OS-II 

   SkyEye 
   SkyEye是一个在Linux和 Windows平台上实现纯软件仿真的集成开辟环境,它基于GPL协议,可在SkyEye上运行Linux、mClinux以及mC/OS-II 等多种嵌入式利用体系和种种体系软件(如TCP/IP、图形子体系、文件子体系等),并可对它们举行源码级的阐发和测试。 
   SkyEye作为指令级仿真器,可以仿真多种嵌入式开辟板,支持多种CPU指令集,在SkyEye上运行的利用体系意识不到它是在一个假造环境中运行,并且开辟职员可以通过SkyEye调试利用体系和体系软件。由于SkyEye的目标不是验证硬件逻辑,而是资助开辟、调试和学习体系软件,以是在实现上SkyEye与真实的硬件环境相比有肯定差别。在时钟节拍的时序上,SkyEye不包管与硬件完全雷同,并简化了对软件透明的一些硬件仿真,如许可以进步SkyEye的实行屈从。 
   在32位嵌入式CPU范畴中,ARM系列CPU所占比重相称大,因此SkyEye起首选择了ARM CPU核作为仿真目标CPU核。SkyEye可用于学习、阐发、开辟Linux、mClinux、mC/OS-II利用体系内核和TCP/IP实现,相识ARM嵌入式CPU编程,而这齐备都可在一个集成环境中完成。要是可以大概改革SkyEye本身,则大家对ARM、8019 ethernet网络芯片等硬件的相识也会更深入。由于SkyEye与GDB可以无缝连合,开辟者可以方便地利用GDB提供的种种调试本领对SkyEye仿真体系上的软件举行源码级调试,还可以举行种种阐发,如实行热门阐发、步调实行包围度阐发等。 

   SkyEye技能阐发 
   SkyEye实现的硬件仿真 
   * CPU和开辟板系列 
   如今SkyEye可以仿真的CPU紧张是基于ARM内核的CPU,包括ARM7TDMI、StrongARM、ARM720T、ARM9TDMI、ARM9xx、ARM10xx、Xscale、Ateml91x40、EP7312等。 
   各硬件开辟公司可以根据它们的需求在上述CPU核上加上特定的扩展,形成基于种种ARM底子内核的特定CPU,如Atmel91X40和 EP7312,则分别扩展了ARM7TDMI和ARM720T的内存控制和种种I/O控制器,简化了开辟板的逻辑筹划,加强了开辟板的结果。 
   如今SkyEye仿真的开辟板包括基于Atmel91x40、EP7312和StrongARM的adsbitsy开辟板,以及基于XScale PXA250的lubbock开辟板。紧张仿真了映射各个开辟板的串口、时钟、RAM、ROM等硬件外设。 
   * 存储器办理单位温和存单位 
   MMU即存储器办理单位,是用来办理假造内存体系的硬件。MMU的两个紧张结果是:将假造地点转换成物理地点;控制存储器的存取权限。MMU关失时,假造地点直接输出到物理地点总线。MMU本身有少量存储空间存放从假造地点到物理地点的结婚表,此表称作TLB。为了支持仿真多种典范CPU的MMU/Cache,SkyEye包括了一个通用的MMU/Cache仿真实现。通过对一些参数的调解可以支持仿真多种典范的MMU/cache物理结讨论逻辑活动。 
   * 网络芯片 
   如今SkyEye仿真了8019as网络芯片,其特点是:NE2000兼容,内建 16K RAM缓冲区,10MB传输速率。开辟板上可以参加网络芯片8019as,再加上差别利用体系上的8019as驱动步调,可以完成种种网络应用筹划开辟。如今已经在在基于Atmel91x40的开辟板上实现了网络芯片8019as扩展,并增长了mC/OS-II和mClinux的网络驱动步调,支持大量的网络应用步调,如lwip、nfs server/clinet、http server/client、telnet server/client、ftp server/client等。 
   SkyEye总体布局 
   SkyEye基于GDB /armulator,可以仿真完备的嵌入式谋略机体系,如今包括CPU、内存、I/O寄存器、时钟、UART、网络芯片,将来还会有MMU、Cache、LCD、USB等种种硬件。 
   SkyEye从总体上分为以下四个层次。 
   用户接口模块:处理惩罚处罚用户的输入下令,并把干系调试数据输出给用户。 
   标记处理惩罚处罚模块:紧张处理惩罚处罚实行文件的头信息,表明实行文件中内嵌的debuger调试信息,以及对标记表的办理和对源代码表达式的阐发,并定位源代码中的语句位置和呆板码的位置干系等。 
   目标控制模块:紧张完成实行控制(如克制实行,克制条件的设置等)、步调栈布局阐发,以及对详详目标硬件的控制(如本地调试、长途调试和仿真调试的控制)。 
   目标仿真模块:仿真紧张硬件的实行,对实行文件的呆板指令举行表明,并仿真实行每一条呆板指令,孕育孕育产生相应的硬件相应。 

   SkyEye上运行的应用 
   由于已经实现多种软件的移植,如今在SkyEye的仿真硬件上可以运行多种利用体系、驱动步调、网络协议栈和种种应用软件。 
   ARM Linux 
   Linux原来被筹划为桌面体系,如今广泛应用于办事器范畴,而更大的影响在于它正垂垂应用于嵌入式配置。由于SkyEye仿真的CPU底子上基于ARM核,以是如今可以支持面向ARM核的Linux利用体系-ARM Linux。 
   mClinux 
   mClinux紧张针对没有MMU的处理惩罚处罚器,而标准的Linux只支持带MMU的CPU。为了淘汰OS的尺寸,mClinux采取了如下做法:删除不须要的内核结果,重新配置内核;mClinux的根(root)文件体系采取romfs文件体系;mClinux的应用步调库为精简的uClibc,而不是巨大的glibc。 
   mC/OS-II 
   无论是通过学习 mC/OS-II 来相识及时利用体系的布局,大概是直接利用它来针对细致应用举行开辟,都好坏常方便和可行的。如今在SkyEye上可以运行mC/OS-II 2.51版。 
   更多的 OS 移植 
   基于 SkyEye,开辟者可以验证自行开辟的OS,也可将更多的OS,如MINIX等,移植到SkyEye上。 
   mClinux上的TCP/IP 
   mClinux上面有完备的TCP/IP协议栈,但缺少对SkyEye网络仿真芯片的驱动步调。SkyEye实现了简化的8019as驱动步调,它紧张包括了初始化、克制处理惩罚处罚、汲取数据包和发送数据包的处理惩罚处罚等变乱。 
   基于mC/OS-II的LwIP 
   通过把开放源代码的LwIP移植到mC/OS-II上来,可得到了一套免费的嵌入式网络软件平台。体系表现图如图1所示。 
   LwIP是瑞士谋略机科学院Adam Dunkels等开辟的一应用于嵌入式体系的开放源代码TCP/IP协议栈,其含义是Light Weight(轻型)IP协议。LwIP可以移植到利用体系上,也可以在无利用体系的环境下独立运行,如今利用的是LwIP最新稳固版V0.5.3。除了LwIP之外,另有很多开源的嵌入式TCP/IP协议栈,此中的代表有tinyTCP、mcIP、mIP等。 
   Lwip上的echo办事器 
   在Lwip上实现了一个TCP echo办事器,监听7号端口,实现了RFC中最大抵的echo协议:收到什么,就往回发同样的内容。编译运行后,用ping ip地点 下令可以得到ICMP reply相应。用telnet ip地点 7(登录7号端口) 下令可以看到echo办事器的回显结果。阐发ARP、ICMP、IP、TCP协议都已正确运行。 
   mC/OS-II下的人机界面 
   实现人机界面(shell)的本质头脑是:Shell作为一个mC/OS-II下的任务,变乱于内核之外,占用一个任务号。它汲取用户输入的字符,存储到缓冲区,并回显在屏幕上,以回车键为用户输入的结束信号,随后阐发用户输入的下令名称、参数,调用相应的下令函数。不绝到这个下令函数运行返回,才连续Shell的人机交互界面,本文称之为Genie Shell。其流程图如图2所示。 
   Genie Shell实现了最底子的下令输入、阐发参数、调用下令函数结果,以及两条示例性的下令,其特色是采取了面向东西的思路来实现Shell的种种下令。 
   mClinux和ARM Linux上的应用 
   如今已经在mClinux上告成地实行了shell、ping、ifconfig、telnet server/client、ftp client/server、nfs server等大量应用步调。绝大多数mClinux或ARM Linux应用级步调完全不消修改源码就可以在SkyEye上运行。 

   SkyEye生长 
   在大学的嵌入式课程试验和嵌入式项目研究中,已把SkyEye作为一个告急的嵌入式体系开辟的实践东西,在清华大学、国防科技大学等院校得到了应用。以后,skyEye将支持仿真更多的CPU、开辟板和种种外设,并提供过细的筹划文档。除了对SkyEye进一步美满以外,本课题组正在举行以下方面的变乱。 
   LCD仿真 
   作为单片机体系告急的输出配置,LCD应用非常广泛。Skyeye中将参加LCD控制器配置仿真,并利用GTK+图形函数库在Xwindow中仿真出一个LCD屏幕。Skyeye的LCD仿真实现的表现图如图3所示。 
   IDE 集成开辟环境 
   IDE集成开辟环境是SkyEye的一个告急构成部分。全部支持GDB的IDE集成开辟环境都可以很容易地移植为SkyEye的IDE集成开辟环境。将来大概会采取结果强大、可扩展性强的Eclipse集成开辟环境作为SkyEye的IDE集成开辟环境。

参考文献
1. SkyEye Web Site:http://hpclab.cs.tsinghua.edu.cn/~SkyEye/
2. ARM System-on-Chip Architecture,second edition,Steve Furber,Pearson Education Published
3. ARM Architecture Reference Manual,ARM Ltd