位置:51电子网 » 技术资料 » 嵌入式系统

嵌入式系统仿真环境—SkyEye

发布时间:2008/5/27 0:00:00 访问次数:577

陈渝 杨晔 李明 王利明

摘 要: 本文全面分析了开放源码的嵌入式系统仿真集成开发环境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。为

陈渝 杨晔 李明 王利明

摘 要: 本文全面分析了开放源码的嵌入式系统仿真集成开发环境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 a250的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。为

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!