《3SkyEye介绍课件》由会员分享,可在线阅读,更多相关《3SkyEye介绍课件(42页珍藏版)》请在金锄头文库上搜索。
1、SkyEye介绍介绍xlanchen2007.5.2813SkyEye介绍上周课内容回顾上周课内容回顾l上周一主要内容有:一、嵌入式系统基本概念二、嵌入式硬件的发展三、嵌入式软件及其开发四、嵌入式操作系统及系统开发五、典型嵌入式操作系统介绍六、嵌入式操作系统选型23SkyEye介绍l上周二主要内容有:一、本地开发、交叉平台开发二、GNU Tools简介lGCC、 binutils、 Gdb、 make、ld三、GNU Tools交叉开发环境及其安装33SkyEye介绍本次课主要内容本次课主要内容lSkyEye简介lSkyEye的安装和使用43SkyEye介绍SkyEye简介简介lSkyEye是
2、一个开源软件项目,中文名字是“天目”。lSkyEye的起源和发展l陈渝:做一个用软件实现的嵌入式开发硬件模拟器,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统53SkyEye介绍lSkyEye的目标:在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟多种主流的嵌入式计算机系统。l目前可在SkyEye上运行的系统有:1)多种嵌入式操作系统,如ARM Linux、Clinux、C/OS-II、elastos2)各种系统软件,如嵌入 式TCP/IP协议栈lwIP,图形子系统MiniGUI等可对上述软件系统进行源码级的分析、调试和测试。 63Sk
3、yEye介绍SkyEye模拟硬件介绍模拟硬件介绍 l目前,SkyEye模拟了大量的硬件,包括CPU内核、存储器、存储器管理单元、缓存单元、串口、网络芯片、时钟等 CPU和开发板系列:l目前SkyEye可以模拟的CPU主要是基于ARM内核的CPU,包括ARM7TDMI,ARM720T, ARM9TDMI,ARM9xx,ARM10xx,StrongARM,XScale等73SkyEye介绍l目前SkyEye模拟的开发板包括基于Atmel 91X40/AT91RM92 CPU的开发板,基于Crirus Logic ep7312的开发板、基于StrongARM CPU的ADSBITSY开发板,基于XS
4、cale PXA250 CPU的LUBBOCK开发板、基于SAMSUNG S3C4510B/S3C44B0 CPU的开发板、基于SHARP LH7A400 CPU的开发板、基于Philip LPC22xx CPU的开发板等。主要模拟了对应各个开发板的串口、时钟、RAM、ROM、LCD、网络芯片等硬件外设。83SkyEye介绍存储器管理单元和缓存单元lMMUMemory Management Unit,存储器管理单元,是用来管理虚拟内存系统的硬件。lMMU的两个主要功能是:1)将虚地址转换成物理地址;2)控制存储器的存取权限。lMMU关掉时,虚地址直接输出到物理地址总线93SkyEye介绍lTL
5、B,Translation Lookaside Buffers在MMU中,存放从虚拟地址到物理地址的匹配表l保存的内容包括:虚址及其对应的物理地址,权限,域和映射类型。l当CPU对一虚拟地址进行存取时,首先搜索TLB表以查找对应的物理 地址等信息,如果没有查到,则进行查找translation table,称为Translation Table Walk(简称TTW)。经过TTW过程后,将查到的信息保存到TLB。然后根据TLB表项的物理地址进行读写。103SkyEye介绍lCACHE,缓存单元主要用于缓存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高CPU的内存数据的访问效率。lw
6、rite/read buffer硬件单元write/read buffer硬件单元的作用与CACHE的作用类似。113SkyEye介绍lMMU、CACHE、write/read buffer一般是高性能CPU的重要组成部分,且不同类型CPU的MMU、CACHE、write/read buffer的逻辑行为也有一定的差异。为了支持模拟多种类型CPU的MMU/CACHE,SkyEye包含了一个通用的MMU/CACHE模拟实现。通过对一些参数的调整可以支持模拟多种类型的MMU/CACHE物理结构和逻辑行为。123SkyEye介绍网络芯片l目前SkyEye模拟了网络芯片8019AS,l其特点是:NE2
7、000兼容,内建16KRAM缓冲区,10MB传输速率。l虽然目前模拟的开发板上不一定有网络芯片8019AS,但可以在模拟的开发板上加上网络芯片8019AS 的模拟。133SkyEye介绍SkyEye的安装的安装lLinux操作系统lWindows+MingW或cygwin 143SkyEye介绍在在Kubuntu上安装上安装SkyEyel演示使用的Linux的版本luname命令用于打印系统信息使用uname -help可以看到uname命令的使用说明内核名称 主机名内核版本内核发行时间主机硬件架构名称操作系统名称153SkyEye介绍在在Kubuntu上安装上安装SkyEyel有两种安装方法
8、l下载源代码,编译并安装l直接安装二进制代码163SkyEye介绍在在Kubuntu上上直接安装二进制代码直接安装二进制代码l下载编译好的SkyEye的二进制包l到上找到最合适的版本l例如最新的二进制包在这里是l在合适的目录下解压缩l/usr/local/或者/opt/lbz2格式使用“tar -xjvf 压缩文件名”173SkyEye介绍在在Kubuntu上上直接安装二进制代码直接安装二进制代码lskyeye在解压缩得到的目录中的bin子目录下l将skyeye的路径添加到PATHl修改/.bashrc文件:添加 export PATH=$PATH:所选目录/skyeye-insight/bi
9、n(如下图)183SkyEye介绍193SkyEye介绍l为使修改后的.bashrc有效,必须先退出控制台,然后重新启动控制台l判断是否设置成功l命令:echo $PATHl对sky使用tab键功能lOK?l运行skyeye,得到进入skyeye的画面,如图:203SkyEye介绍213SkyEye介绍SkyEye的使用的使用l为uCLinux安装交叉编译环境并配置uCLinuxl编译生成uCLinux和包含应用程序的文件系统l用skyeye运行和调试uCLinux内核223SkyEye介绍安装交叉编译环境安装交叉编译环境l为uCLinux的开发提供相应的交叉编译工具l如:arm-elf-to
10、ols-20030314.shl安装l在root权限下运行lsh ./arm-elf-tools-20030314.shl检查一下l对 arm-elf运用shell的tab功能可以看到一系列arm-elf打头的程序,如lbinutils系列、gcc、gdb等等l也可以使用命令:arm-elf-gcc -v233SkyEye介绍243SkyEye介绍测试测试arm-elf-gccl源代码253SkyEye介绍测试测试arm-elf-gccl编译larm-elf-gcc -Wl,-elf2flt -o hello hello.cl得到的输出文件lhello和hello.gdbl检查hello的格式
11、l如何运行hello?263SkyEye介绍BFLT格式:binary FLAT -Wl,-elf2flt选项让链接器将elf格式转换为flt格式源文件生成的文件273SkyEye介绍运行运行hellolhello必须在target环境上,无法在host上l如何准备target的运行环境lskyeye=模拟器luCLinux=操作系统?l文件系统?l?283SkyEye介绍获得获得uCLinux操作系统操作系统l两种方案1.使用skyeye提供的二进制包2.自己动手编译配置uCLinux293SkyEye介绍编译配置编译配置uClinuxl到uClinux网站的发行页上下载l本课例子为发行版u
12、Clinux-dist-20051110l使用”tar -xzvf”解压缩,得到uClinux-dist目录l在uClinux-dist目录下l第一步:配置uClinux命令:make config在vendor/product选贤中选择GDB/ARMulatorKernel版本选择2.4.x其他选项不变(使用缺省选项)303SkyEye介绍l第二步:编译生成uClinux和文件系统命令:make dep; makel编译成功?luClinux-dist目录里将出现一个images目录l在linux-2.4.x中出现了linux、system.map image.bin:包含Linux内核映像
13、和romfs文件系统映像可以烧写到flash中linux.data:包含内核所有数据段 linux.text:包含Linux的所有代码段 romfs.img:romfs文件系统映像linux:linux内核文件system.map:内核符号表313SkyEye介绍用用skyeye运行运行cLinuxl第一步,制作skyeye的硬件配置文件vi skyeye.confl第二步,提供上面所需的boot.roml命令:ln -s images/romfs.img boot.rom将romfs烧写到flash中323SkyEye介绍l第三步,在skyeye下运行uCLinuxl命令:sudo skye
14、ye linux-2.4.x/linuxl进入skyeye后,l命令1:target siml命令2:loadl命令3:runl进入uCLinux333SkyEye介绍进入画面进入画面343SkyEye介绍直接使用直接使用uCLinux的二进制包的二进制包l下载skyeye的二进制包lskyeye-binary-testutils-1.2.0l使用“tar -xjvf” 解压缩353SkyEye介绍l使用uCLinux作为运行操作系统l使用skyeye运行cLinuxlskyeye linuxltarget simlloadlrun烧写到flash中的内核映像363SkyEye介绍接下来,接下
15、来,将将hello拷贝到拷贝到uCLinux的的romfs文件系统中文件系统中l将boot.rom中的内容在host中解开,方法如下:lmkdir romfslmkdir /mnt/tmplmount -o loop boot.rom /mnt/tmplcp -r /mnt/tmp/* romfsl将hello拷贝到romfs中的bin目录下l重新生成boot.rom映像lgenromfs -f boot.rom d romfs/373SkyEye介绍建立/mnt/tmp目录Boot.rom是romfs的映像,将其挂载到tmp目录上把tmp目录中的所有内容拷贝到我们的romfs目录中这是romfs中的内容383SkyEye介绍拷贝hello到/bin目录下重新制作boot.rom新的boot.rom393SkyEye介绍运行运行hellol在模拟器上运行l启动模拟器、装载操作系统、装载文件系统lskyeyelfile linuxltarget simlloadlrunl运行hello403SkyEye介绍在在uCLinux界面下,可以得到:界面下,可以得到:413SkyEye介绍reviewlSkyEye简介lSkyEye的安装和使用423SkyEye介绍