5嵌入式操作系统9

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

嵌入式操作系统—SkyEye简介李春杰主要内容SkyEye简介SkyEye模拟硬件介绍SkyEye的安装和使用安装运行hello编译并运行uCLinux参考教材源码开放的嵌入式系统软件分析与实践——基于SkyEye和ARM开发平台北京航空航天大学出版社陈渝李明等编著SkyEye简介1SkyEye是一个开源软件项目,中文名字是“天目”。SkyEye的起源和发展陈渝:做一个用软件实现的嵌入式开发硬件模拟器,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统Skyeye的网站:简介2SkyEye的目标:在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟多种主流的嵌入式计算机系统。目前可在SkyEye上运行的系统有:1)多种嵌入式操作系统,如ARMLinux、μClinux、μC/OS-II等2)各种系统软件,如嵌入式TCP/IP协议栈-lwIP,图形子系统-MiniGUI等可对上述软件系统进行源码级的分析、调试和测试。SkyEye模拟硬件介绍目前,SkyEye模拟了大量的硬件,包括CPU内核、存储器、存储器管理单元、缓存单元、串口、网络芯片、时钟等CPU和开发板系列:目前SkyEye可以模拟的CPU主要是基于ARM内核的CPU,包括ARM7TDMI,ARM720T,ARM9TDMI,ARM9xx,ARM10xx,StrongARM,XScale等SkyEye模拟硬件介绍目前SkyEye模拟的开发板包括基于Atmel91X40/AT91RM92CPU的开发板,基于CrirusLogicep7312的开发板、基于StrongARMCPU的ADSBITSY开发板,基于XScalePXA250CPU的LUBBOCK开发板、基于SAMSUNGS3C4510B/S3C44B0CPU的开发板、基于SHARPLH7A400CPU的开发板、基于PhilipLPC22xxCPU的开发板等。主要模拟了对应各个开发板的串口、时钟、RAM、ROM、LCD、网络芯片等硬件外设SkyEye模拟硬件介绍存储器管理单元和缓存单元MMUMemoryManagementUnit,存储器管理单元,是用来管理虚拟内存系统的硬件。MMU的两个主要功能是:1)将虚地址转换成物理地址;2)控制存储器的存取权限。MMU关掉时,虚地址直接输出到物理地址总线SkyEye模拟硬件介绍CACHE,缓存单元主要用于缓存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高CPU的内存数据的访问效率。write/readbuffer硬件单元write/readbuffer硬件单元的作用与CACHE的作用类似。SkyEye模拟硬件介绍MMU、CACHE、write/readbuffer一般是高性能CPU的重要组成部分,且不同类型CPU的MMU、CACHE、write/readbuffer的逻辑行为也有一定的差异。为了支持模拟多种类型CPU的MMU/CACHE,SkyEye包含了一个通用的MMU/CACHE模拟实现。通过对一些参数的调整可以支持模拟多种类型的MMU/CACHE物理结构和逻辑行为。SkyEye模拟硬件介绍网络芯片目前SkyEye模拟了网络芯片8019AS,其特点是:NE2000兼容,内建16KRAM缓冲区,10MB传输速率。虽然目前模拟的开发板上不一定有网络芯片8019AS,但可以在模拟的开发板上加上网络芯片8019AS的模拟。SkyEye的安装Linux操作系统Windows+MingW或cygwin有两种安装方法下载源代码,编译并安装直接安装二进制代码下载源代码,编译并安装最新版本情况下载1.2.7为编译1.2.7的skyeye准备编译环境skyeye-1.2.7_rc1.tar.bz2解压缩编译1.2.7并安装简单编译1.2.8./configureCC=gcc-3.4//利用gcc-3.4进行编译也可以选用其他合适的版本Makesudomakeinstall判断安装是否成功下载测试集最新的skyeye-testsuits,版本为1.2.5skyeye-testsuite-1.2.5.tar.bz2解压缩使用skyeye模拟某个板子运行某个Linux进入到linux目录,修改符号连接skyeye指向编译好的skyeyermskyeyeln-s../../skyeye-1.2.8rc1/skyeyeskyeye运行如下命令:cds3c2410/s3c2410x-2.6.14/../../skyeye-cskyeye.conf-evmlinux如成功则表示安装成功在Linux的根文件系统中添加hello准备交叉编译环境下载3.4.1的交叉编译器到你的工作目录$WDIRarm-linux-gcc-3.4.1.tar.bz2在工作目录$WDIR中解压缩($WDIR也可以是根目录)tarjvxfarm-linux-gcc-3.4.1.tar.bz2运行hello编写简单的hello.c,并编译使用3.4.1版本的arm-linux交叉编译器,静态编译得到elf格式的可执行文件:$WDIR/usr/local/arm/3.4.1/bin/arm-linux-gcc-static-ohellohello.c看是否安装成功将hello复制到linux的根文件系统映像initrd.img中挂载根文件系统映像mkdirrootsudomount-oloopinitrd.imgroot将hello拷贝到根文件系统中sudocphelloroot/bin卸载根文件系统映像sudoumountroot使用skyeye启动linux,运行helloskyeye-cskyeye.conf-evmlinux进入armlinux之后,进入bin目录,运行hello直接安装二进制代码下载编译好的SkyEye的二进制包到上找到最合适的版本例如二进制包在这里是在合适的目录下解压缩/usr/local/或者/opt/bz2格式使用“tar-xjvf压缩文件名skyeye在解压缩得到的目录中的bin子目录下将skyeye的路径添加到PATH修改~/.bashrc文件:添加exportPATH=$PATH:所选目录/skyeye-insight/bin(如下图)为使修改后的.bashrc有效,必须先退出控制台,然后重新启动控制台运行skyeye,得到进入skyeye的画面,如图:编译并运行uCLinux为uCLinux安装交叉编译环境并配置uCLinux编译生成uCLinux和包含应用程序的文件系统用skyeye运行和调试uCLinux内核1、安装交叉编译环境的开发提供相应的交叉编译工具如:arm-elf-tools-20030314.sh安装在root权限下运行sh./arm-elf-tools-20030314.sh检查一下对arm-elf运用shell的tab功能可以看到一系列arm-elf打头的程序,如binutils系列、gcc、gdb等等也可以使用命令:arm-elf-gcc-v测试arm-elf-gcc编译arm-elf-gcc-elf2flt-ohellohello.c得到的输出文件hello和hello.gdb检查hello的格式filehello如何运行hello???-Wl,-elf2flt选项让链接器将elf格式转换为flt格式最新实验表明,直接使用-elf2flt即可源文件生成的文件运行hellohello必须在target环境上,无法在host上如何准备target的运行环境skyeye====模拟器uCLinux====操作系统??文件系统??……??生成uCLinux操作系统两种方案1.使用skyeye提供的二进制包2.自己动手编译配置uCLinux编译配置uClinux到uClinux网站的发行页上下载本课例子为发行版uClinux-dist-20051110使用”tar-xzvf”解压缩,得到uClinux-dist目录在uClinux-dist目录下第一步:配置uClinux命令:makeconfig在vendor/product选贤中选择GDB/ARMulatorKernel版本选择2.4.x其他选项不变(使用缺省选项)第二步:编译生成uClinux和文件系统命令:makedep;make编译成功?uClinux-dist目录里将出现一个images目录在linux-2.4.x中出现了linux、system.mapimage.bin:包含Linux内核映像和romfs文件系统映像可以烧写到flash中romfs.img:romfs文件系统映像linux:linux内核文件system.map:内核符号表用skyeye运行ucLinux制作skyeye的硬件配置文件第一步,制作skyeye的硬件配置文件viskyeye.conf第二步,提供上面所需的boot.rom命令:ln-simages/romfs.imgboot.rom将romfs烧写到flash中第三步,在skyeye下运行uCLinux命令:sudoskyeyelinux-2.4.x/linux进入skyeye后,命令1:targetsim命令2:load命令3:run进入uCLinux直接使用uCLinux的二进制包下载skyeye的二进制包skyeye-binary-testutils-1.2.0使用“tar-xjvf”解压缩使用uCLinux作为运行操作系统使用skyeye运行μcLinuxskyeyelinuxtargetsimloadrun将hello拷贝到uCLinux的romfs文件系统中将boot.rom中的内容在host中解开,方法如下:mkdirromfsmkdir/mnt/tmpmount-oloopboot.rom/mnt/tmpcp-r/mnt/tmp/*romfs将hello拷贝到romfs中的bin目录下重新生成boot.rom映像genromfs-fboot.rom–dromfs/运行hello在模拟器上运行启动模拟器、装载操作系统、装载文件系统skyeyefilelinuxtargetsimloadrun进入bin目录运行helloARMboot的运行ARMboot属于自由软件,是针对ARMCPU编写的通用BootLoader,其作用是对CPU以及主板进行初始化加载操作系统或者其他bootimage支持目前市面上的多种ARM板,也可以很容易的移植到新的开发板上目前ARMboot已经与PPCBoot合并u-boot支持PPC、ARM等多种CPU下载并安装ARMbootArmboot源码公开,可以在上下载解压缩tar–zxfarmboot-1.1.0.tgzREADME为了使用arm-elf-打头的交叉编译命令,需要修改armboot-1.1.0/Makefile中的CROSS_COMPILE变量的值arm-linux-为arm-elf-或者安装arm-linux-交叉编译包安装arm-linux-交叉编译包下载cross-2.95.3.tar.bz2mkdir–p/usr/local/armcd/usr/local/armtarjxfcross-2.95.3.tar.bz2这就有了一个arm-linux-交叉编译环境了修改

1 / 75
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功