没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
SkyEye 安装及 Windows 下 GNU 环境的
搭建
1. SkyEye 简介
1.1SkyEye 的目标和意义
SkyEye 是一个开源软件(OpenSource Software)项目,中文名字是"天目"。
SkyEye 的目标是在通用的 Linux 和 Windows 平台上实现一个纯软件集成开发环境,模
拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在 SkyEye 上
运行 μCLinux 以及 μC/OS-II 等多种嵌入式操作系统和各种系统软件(如 TCP/IP,图形子
系统,文件子系统等),并可对它们进行源码级的分析和测试。
纯软件的模拟器有许多种,如模拟一个芯片时序逻辑的模拟器、只模拟 CPU 指令的模
拟器、模拟整个硬件开发板的模拟器、模拟一个 PDA 的模拟器等。存在一些纯软件的仿真
器或模拟器,如 Stanford 大学的 SimOS 模拟器,它仿真的是 MIPS 系列 CPU 和相关外
设,可以在其上运行 SGI 公司的 Irix 操作系统和软件,目前基本上停止了进一步的开发;
PSIM 是一个仿真 PowerPC 指令集的模拟器,目前只支持简单的命令行应用程序;
xcopilot 是一个 PDA 模拟器,它是由 Greg Hewgill 出于个人喜好编写的,它仿真的是
M68K CPU,通过它可以给基于 PalmOS 的软件开发者提供一个模拟开发环境。Bochs
是一个仿真 x86 CPU 的开源项目,目前还支持 AMD64 CPU,在它上面可以运行 Linux
操作系统。其它一些商业的仿真软件如 vmware 和 virtualPC 可以仿真一个真实的 x86
计算机,而 Virtutech Simics 仿真器可以仿真多种 CPU 和硬件,功能强大,可用于硬件
和系统软件的评测。
SkyEye 是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种 CPU 指令集,
在 SkyEye 上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以
通过 SkyEye 调试操作系统和系统软件。由于 SkyEye 的目标不是验证硬件逻辑,而是协
助开发、调试和学习系统软件,所以在实现上 SkyEye 与真实的硬件环境相比还是有一定
差别的。SkyEye 在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件仿
真进行了一定的简化。这样带来的好处是 SkyEye 的执行效率更高。SkyEye 的推出具有
下面三方面的意义:
通过 SkyEye 仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔
天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常
有效的学习工具和开发手段,因为 SkyEye 的整个软件系统都是 Open Source 的,且基
于 GPL 协议(μCOS-II 除外)。因此,如果要学习 Linux 操作系统或者进行嵌入式系统开
发,但苦于没有硬件支持,SkyEye 仿真环境软件是一个很好的选择!
如果想研究与具体硬件无关的系统软件(如 TCP/IP 协议栈等),采用 SkyEye 可
以有效地提高工作效率,因为你可以直接在 μCOS-II 和 μCLinux for SkyEye 上进行开发
和调试,而与具体硬件打交道的各种 driver 已经存在,且有源码级调试环境,只需关心高
层的逻辑设计和实现就可以了。
SkyEye 本身作为一个开放式的项目体系,可以划分为多个独立的子项目系统。通
过参与 SkyEye 的各个子项目,与大家共同交流、协作,可以进一步学习、分析、精通
Linux 内核,掌握 ARM 嵌入式 CPU 编程。
在 32 位嵌入式 CPU 领域中,ARM 系列 CPU 所占比重很大,而 ARM7TDMI 是其中
最广泛的一种 ARM CPU 核,因此 SkyEye 首先选择了 ARM7TDMI 作为仿真的目标 CPU
核,当然将来 SkyEye 会支持更多种类的 CPU。目前在 SkyEye 上可运行并进行源码级调
试 ARM Linux、μCLinux、μC/OS-II 操作系统和 LwIP(一个著名的嵌入式 TCP/IP 实
现)、MiniGUI(一个著名的嵌入式 GUI 系统)等系统软件。SkyEye 可用于学习,分析,
开发这些系统软件的实现,了解 ARM 嵌入式 CPU 编程。而这一切都可在一个纯软件的环
境中完成。通过分析 SkyEye 本身实现,系统软件开发人员对 ARM,8019as(NE2000
兼容)以太网络芯片等硬件的了解也会更深入。
SkyEye 并不能取代开发板等硬件的功能,但通过它可以比较容易进入到嵌入式软件
的广阔天地中。由于 SkyEye 建立在 GDB 基础之上,使用者可以方便地使用 GDB 提供的
各种调试手段对 SkyEye 仿真系统上的软件进行源码级的调试,还可以进行各种分析,如
执行热点分析、程序执行覆盖度分析等。由于 SkyEye 提供了源代码和相关文档,有经验
的用户完全可以修改和扩充 SkyEye 来满足自己的需求。
1.2.SkyEye 模拟硬件介绍
目前 SkyEye 模拟了大量的硬件,包括 CPU 内核、存储器、存储器管理单元、缓存单
元、串口、网络芯片、时钟等。下面做一简单介绍。
1) CPU 和开发板系列
目前 SkyEye 可以模拟的 CPU 主要是基于 ARM 内核的 CPU,包括
ARM7TDMI,ARM720T,ARM9TDMI,ARM9xx,ARM10xx,StrongARM,XScale
等。ARM7/9/10TDMI 是 ARM 系列 CPU 的基本核心部分,它们不支持 MMU/CACHE 和
一些扩展指令,是 ARM CPU 基本核。
ARM720T、ARM920T、ARM10xx、StrongARM、Xscale 是建立在以上 ARM CPU 核
上,并扩展了 MMU/CACHE 和其它功能。各硬件开发公司可以根据它们的需求在上述
CPU 核上加上特定的扩展,形成基于各种 ARM 基本核心的特定 CPU,如 Atmel91X40
和 ep7312,分别扩展了 ARM7TDMI 和 ARM720T 的内存控制和各种 I/O 控制器,简化
了开发板的逻辑设计,大大增强了开发板的功能。
目前 SkyEye 模拟的开发板包括基于 Atmel 91X40/AT91RM92 CPU 的开发板,基
于 Crirus Logic ep7312 的开发板、基于 StrongARM CPU 的 ADSBITSY 开发板,基于
XScale PXA250 CPU 的 LUBBOCK 开发板、基于 SAMSUNG S3C4510B/S3C44B0
CPU 的开发板、基于 SHARP LH7A400 CPU 的开发板、基于 Philip LPC22xx CPU 的开
发板等。主要模拟了对应各个开发板的串口、时钟、RAM、ROM、LCD、网络芯片等硬
件外设。
2) 存储器管理单元和缓存单元
MMU(Memory Management Unit)即存储器管理单元,是用来管理虚拟内存系
统的硬件。MMU 的两个主要功能是:将虚地址转换成物理地址;控制存储器的存取权限。
MMU 关掉时,虚地址直接输出到物理地址总线。MMU 本身有少量存储空间存放从虚拟地
址到物理地址的匹配表,此表称作 TLB(Translation Lookaside Bu?ers)。TLB 表中保
存的是虚址及其对应的物理地址,权限,域和映射类型。当 CPU 对一虚拟地址进行存取时,
首先搜索 TLB 表以查找对应的物理地址等信息,如果没有查到,则进行查找 translation
table,称为 Translation Table Walk(简称 TTW)。经过 TTW 过程后,将查到的信息
保存到 TLB。然后根据 TLB 表项的物理地址进行读写。CACHE 是缓存单元,主要用于缓
存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高 CPU 的内存数据的访
问效率。
write/read bu?er 硬件单元的作用与 CACHE 的作用类似。
MMU、CACHE、write/read bu?er 一般是高性能 CPU 的重要组成部分,且不同类型
CPU 的 MMU、CACHE、write/read bu?er 的逻辑行为也有一定的差异。为了支持模拟
多种类型 CPU 的 MMU/CACHE,SkyEye 包含了一个通用的 MMU/CACHE 模拟实现。通
过对一些参数的调整可以支持模拟多种类型的 MMU/CACHE 物理结构和逻辑行为。
3) 网络芯片
目前 SkyEye 模拟了网络芯片 8019AS,其特点是:NE2000 兼容,内建 16KRAM
缓冲区,10MB 传输速率。虽然目前模拟的开发板上不一定有网络芯片 8019AS,但我们
可以在我们模拟的开发板上加上网络芯片 8019AS 的模拟。这样再加上在不同操作系统上
的 8019AS 驱动程序,就可以方便地完成各种网络应用的开发和设计。目前已经在在基于
Atmel91X40 CPU 的开发板上实现了网络芯片 8019AS 扩展,并增加了 μC/OS-II 和
μClinux 的网络驱动程序,已经支持大量的网络应用程序,如 LwIP (一个 TCP/IP 协议栈
实现)、nfs server/clinet、http server/client、telnet server/client、ftp
server/client 等。
1.3 SkyEye 的设计实现
1) SkyEye 设计原则
SkyEye 软件的核心在目标模拟模块。为了提高模拟效率,且能够模拟更多的 CPU、
开发板和各种外设,方便开发人员进行开发和学习,SkyEye 遵循如下的设计原则:
用 C 语言编程,采用面向对象的方式定义各种要模拟的硬件;
定义抽象模拟硬件对象,最大化重用代码;
定义硬件配置脚本,使得不用改动 SkyEye 代码就可以灵活地调整各种硬件配置;
保持与 GDB 上层接口的一致性,这样可充分利用 GDB 强大的源代码级调试功能。
2) SkyEye 的总体结构
SkyEye 基于 GDB/ARMulator(目前由 David McCullough 维护),并进行了全面的
改变和扩展。SkyEye 建立在 GNU GDB 的底层,可以模仿多种完整的嵌入式计算机系统,
目前模拟的硬件包括 CPU、内存、I/O 寄存器、时钟、UART、网络芯片、
剩余15页未读,继续阅读
资源评论
- lky10042013-05-21挺好的,很有用,谢谢
- hourger2013-09-06很实用,支持一下啊。。。
- dream_20172018-09-17介绍简单易懂
- 001liujie2014-09-30讲得很详细!
jg_ben
- 粉丝: 10
- 资源: 122
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 徐州市区shp边界文件
- 简易数字频率计设计(原理图、PCB、源码、分析报告)
- 20225207038罗丽文财管专2201班.rar
- Golang:通过Gin框架+Redis+责任链,实现一个简单的钉钉机器人,进行消息处理 ps:多应用版
- 基于cnn和AlexNet的铝材缺陷检测内含数据集和demo原型2种方法
- 2023年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
- go 语言 实现的 使用modbus 协议 通过DTU tcp 链接 采集数据
- SHELL脚本(全是干货)
- Windows屏幕录屏软件
- 2022年各城市PM2.5, PM10, SO2, NO2等环境空气质量数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功