嵌入式操作系统

上传人:wan****21 文档编号:252940534 上传时间:2024-11-26 格式:PPT 页数:75 大小:728.50KB
返回 下载 相关 举报
嵌入式操作系统_第1页
第1页 / 共75页
嵌入式操作系统_第2页
第2页 / 共75页
嵌入式操作系统_第3页
第3页 / 共75页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式操作系统,SkyEye 简介,李春杰,主要内容,SkyEye简介,SkyEye模拟硬件介绍,SkyEye的安装和使用,安装,运行hello,编译并运行,uCLinux,参考教材,源码开放的,嵌入式系统软件分析与实践,基于SkyEye和ARM开发平台,北京航空航天大学出版社 陈渝 李明 等编著,SkyEye简介1,SkyEye是一个,开源,软件项目,中文名字是“天目”。,SkyEye的起源和发展,陈渝:做一个用软件实现的,嵌入式开发硬件模拟器,,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统,Skyeye的网站:,http:/,SkyEye简介2,SkyEye的,目标,:在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟多种主流的嵌入式计算机系统。,目前可在SkyEye上运行的系统有:,1)多种嵌入式操作系统,如ARM Linux、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模拟的开发板包括,基于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、网络芯片等硬件外设,SkyEye模拟硬件介绍,存储器管理单元和缓存单元,MMU,Memory Management Unit,存储器管理单元,是用来管理虚拟内存系统的硬件。,MMU的两个主要功能是:1)将虚地址转换成物理地址;2)控制存储器的存取权限。,MMU关掉时,虚地址直接输出到物理地址总线,SkyEye模拟硬件介绍,CACHE,缓存单元,主要用于缓存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高CPU的内存数据的访问效率。,write/read buffer硬件单元,write/read buffer硬件单元的作用与CACHE的作用类似。,SkyEye模拟硬件介绍,MMU、CACHE、write/read buffer一般是高性能CPU的重要组成部分,且不同类型CPU的MMU、CACHE、write/read buffer的逻辑行为也有一定的差异。为了支持模拟多种类型CPU的MMU/CACHE,SkyEye包含了一个通用的MMU/CACHE模拟实现。通过对一些参数的调整可以支持模拟多种类型的MMU/CACHE物理结构和逻辑行为。,SkyEye模拟硬件介绍,网络芯片,目前SkyEye模拟了网络芯片8019AS,,其特点是:NE2000兼容,内建16KRAM缓冲区,10MB传输速率。,虽然目前模拟的开发板上不一定有网络芯片8019AS,但可以在模拟的开发板上加上网络芯片8019AS 的模拟。,SkyEye的安装,Linux操作系统,Windows+MingW或cygwin,有两种安装方法,下载源代码,编译并安装,直接安装二进制代码,下载源代码,编译并安装,最新版本情况,下载,为编译的skyeye准备编译环境,解压缩,编译并安装,简单编译,./congure CC=gcc-3.4 /利用gcc-3.4进行编译也可以选用其他合适的版本,Make,sudo make install,判断安装是否成功,下载测试集,最新的skyeye-testsuits,版本为,解压缩,使用skyeye模拟某个板子运行某个Linux,进入到 linux 目录,修改符号连接 skyeye指向编译好的skyeye,rm skyeye,ln -s ././skyeye-1.2.8 rc1/skyeye skyeye,运行如下命令:,cd,././skyeye -c skyeye.conf -e vmlinux,如成功则表示安装成功,在 Linux 的根文件系统中添加 hello,准备交叉编译环境,下载的交叉编译器到你的工作目录 $WDIR,在工作目录 $WDIR 中解压缩($WDIR 也可以是根目录),tar jvxf,运行hello,编写简单的 hello.c,并编译,使用 3.4.1 版本的 arm-linux 交叉编译器,静态编译得到 elf格式的可执行文件:,hello.c,看是否安装成功,将 hello 复制到 linux 的根文件系统映像 initrd.img 中,挂载根文件系统映像,mkdir root,sudo mount -o loop initrd.img root,将 hello 拷贝到根文件系统中,sudo cp hello root/bin,卸载根文件系统映像,sudo umount root,使用 skyeye 启动 linux,运行 hello,skyeye -c skyeye.conf -e vmlinux,进入 armlinux 之后,进入 bin 目录,运行 hello,直接安装二进制代码,下载编译好的SkyEye的二进制包,到上找到最合适的版本,例如二进制包在,这里,是,在合适的目录下解压缩,/usr/local/或者/opt/,bz2格式使用“tar -xjvf 压缩文件名,skyeye在解压缩得到的目录中的bin子目录下,将skyeye的路径添加到PATH,修改/.bashrc文件:添加 export PATH=$PATH:所选目录/skyeye-insight/bin(如下图),为使修改后的.bashrc有效,必须先退出控制台,然后重新启动控制台,运行skyeye,得到进入skyeye的画面,如图:,编译并运行,uCLinux,为uC,Linux安装交叉编译环境并配置uCLinux,编译生成,uC,Linux,和包含应用程序的文件系统,用,skyeye,运行和调试,uC,Linux,内核,1、,安装交叉编译环境,为uC,Linux的开发提供相应的交叉编译工具,如:,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 -o hello hello.c,得到的输出文件,hello和hello.gdb,检查hello的格式,file hello,如何运行hello?,-Wl,-elf2flt选项让链接器将elf格式转换为flt格式,最新实验表明,直接使用-elf2flt即可,源文件,生成的文件,运行,hello,hello必须在target环境上,无法在host上,如何准备target的运行环境,skyeye=模拟器,uCLinux=操作系统?,文件系统?,?,生成,uCLinux,操作系统,两种方案,使用,skyeye,提供的二进制包,自己动手编译配置,uCLinux,编译配置uClinux,到uClinux,网站的,发行页,上下载,本课例子为,发行版,uClinux-dist-20051110,使用”tar -xzvf”解压缩,得到uClinux-dist目录,在uClinux-dist目录下,第一步:配置uClinux命令:make config在vendor/product选贤中选择GDB/ARMulatorKernel版本选择2.4.x其他选项不变(使用缺省选项),第二步:编译生成uClinux,和文件系统命令:make dep; make,编译成功?,uClinux-dist目录里将出现一个images目录,在中出现了linux、system.map,image.bin:,包含Linux内核映像和romfs文件系统映像,可以烧写到flash中,romfs.img:romfs文件系统映像,linux:linux内核文件,system.map:,内核符号表,用skyeye运行,ucLinux,制作skyeye的硬件配置文件,第一步,制作skyeye的硬件配置文件,vi skyeye.conf,第二步,提供上面所需的boot.rom,命令:ln -s images/romfs.img boot.rom,将romfs烧写到flash中,第三步,在skyeye下运行,uCLinux,命令:sudo skyeye,进入skyeye后,,命令1:target sim,命令2:load,命令3:run,进入uCLinux,直接使用uCLinux的二进制包,下载skyeye的二进制包,使用“tar -xjvf” 解压缩,使用,uCLinux,作为运行操作系统,使用skyeye运行,cLinux,skyeye linux,target sim,load,run,将hello拷贝到,uCLinux,的,romfs,文件系统中,将boot.rom中的内容在host中解开,方法如下:,mkdir romfs,mkdir /mnt/tmp,mount -o loop boot.rom /mnt/tmp,cp -r /mnt/tmp/* romfs,将hello拷贝到romfs中的bin目录下,重新生成boot.rom映像,genromfs -f boot.rom d romfs/,运行hello,在模拟器上运行,启动模拟器、装载操作系统、装载文件系统,skyeye,file linux,target sim,load,run,进入bin目录运行hello,ARMboot 的运行,ARMboot属于自由软件,,http:/,是针对ARM CPU编写的通用Boot Loader,其作用是,对CPU以及主板进行初始化,加载操作系统或者其他boot image,支持目前市面上的多种ARM板,也可以很容易的移植到新的开发板上,目前ARMboot已经与PPCBoot合并,u-boot,支持PPC、ARM等多种CPU,下载并安装ARMboot,Armboot源码公开,可以在, zxf,README,为了使用arm-elf-打头的交叉编译命令,需要修改中的CROSS_COMPILE变量的值arm-linux-为arm-elf-,或者安装arm-linux-交叉编译包,安装arm-linux-交叉编译包,下载,mkdir p /usr/local/arm,cd /usr/local/arm,tar jxf cross-2.95.3.tar.bz2,这就有了一个arm-linux-交叉编译环境了,修改.bashrc,添加,查看是否安装成功?,退出并重新进入控制台,对“arm-linux-”使用tab键,可以看到所有“arm-linux-”打头的工具,使用命令“arm-linux-gcc -v”查看编译器信息,修改armboot,include/configs/conifg_ep7312.h,配置armboot的启动方式,配置armboot,支持ep7312开发板,make ep7312_config,Build,sudo make all,各种格式的,目标文件,生成的目标文件有三个:,armboot:ELF格式,armboot.bin:二进制映像文件格式,armboot.srec:Motolola的一种格式,此外在根目录的tftpboot目录下也有一个armboot.bin备份,配置skyeye,并运行armboot,首先,新建一个目录代表ep7312的主板,mkdir ep7312forArmboot,将刚才编译成功的armboot.bin拷贝到这个目录下,skyeye支持raw binary和ELF格式,这里我们用raw binary的格式,编辑skyeye.conf,skyeye.conf如下(下页),此时,ep7312forArmboot主板就配置好了,skyeye.conf,#skyeye config file for armboot cpu: arm720t mach: ep7312 mem_bank: map=I, type=RW, addr=0x80000000, size=0x00010000 #skyeye for armboot flash 16M bank 1 mem_bank: map=M, type=RW, addr=0x00000000, size=0x01000000, file=./armboot.bin,boot=yes #skyeye for armboot sdram 16M bank 1 mem_bank: map=M, type=RW, addr=0xc0000000, size=0x01000000,log: logon=0, logfile=/tmp/c_2.log, start=0, end=10000,运行skyeye进入ARMboot命令界面,ARMboot的命令,U-boot在,skyeye中运行,下载源码,解压缩,tar jvxf,编译 u-boot使用交叉编译器:arm-linux-tools-20061213.tar.gz (gcc 版本为 3.4.4),make ep7312 cong,make all,在skyeye中运行u-boot,可以根据需要修改,在include/configs/ep7312.h中,U-boot的缺省启动方式,修改结束后,配置并编译,make ep7312_config,sudo make all,编写skyeye.conf,#skyeyeconfigfileforubootcpu:arm720tmach:ep7312mem_bank:map=I,type=RW,addr=0x80000000,size=0x00010000#skyeyeforubootflash16Mbank1mem_bank:map=M,type=RW,addr=0x00000000,size=0x01000000,file=./u-boot.bin,boot=yes#skyeyeforubootsdram16mbank1mem_bank:map=M,type=RW,addr=0xc0000000,size=0x01000000,注意这里的内存的地址和容量的分配都是根据uboot里面的ep7312的配置文件调整的。这样也可以是我们对uboot的代码修改做到最小。,运行Skyeye,由于u-boot限时自动boot,所以在run之后要立刻使用“回车”键阻止autoboot,进入u-boot的界面,谢谢听讲,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!