嵌入式操作系统



《嵌入式操作系统》由会员分享,可在线阅读,更多相关《嵌入式操作系统(75页珍藏版)》请在装配图网上搜索。
1、,,,,,,,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,嵌入式操作系统,—SkyEye 简介,李春杰,,,主要内容,,SkyEye简介,,SkyEye模拟硬件介绍,,SkyEye的安装和使用,,安装,,运行hello,,编译并运行,uCLinux,,,,参考教材,,源码开放的,,嵌入式系统软件分析与实践,,,——基于SkyEye和ARM开发平台,,北京航空航天大学出版社 陈渝 李明 等编著,,SkyEye简介1,SkyEye是一个,开源,软件项目,中文名字是“天目”。,,SkyEye的起源和发展,,陈渝:做一个用软件实现的,
2、嵌入式开发硬件模拟器,,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统,,,Skyeye的网站:,http://,,SkyEye简介2,SkyEye的,目标,:在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟多种主流的嵌入式计算机系统。,,目前可在SkyEye上运行的系统有:,,1)多种嵌入式操作系统,如ARM Linux、μClinux、μC/OS-II等,,2)各种系统软件,如嵌入 式TCP/IP协议栈-lwIP,图形子系统-MiniGUI等,,可对上述软件系统进行源码级的分析、调试和测试。,,,SkyEye模拟硬件介绍,目前,S
3、kyEye模拟了大量的硬件,包括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的L
4、UBBOCK开发板、基于SAMSUNG S3C4510B/S3C44B0 CPU的开发板、基于SHARP LH7A400 CPU的开发板、基于Philip LPC22xx CPU的开发板等。,,主要模拟了对应各个开发板的串口、时钟、RAM、ROM、LCD、网络芯片等硬件外设,,,,,SkyEye模拟硬件介绍,存储器管理单元和缓存单元,,MMU,Memory Management Unit,存储器管理单元,是用来管理虚拟内存系统的硬件。,,MMU的两个主要功能是:1)将虚地址转换成物理地址;2)控制存储器的存取权限。,,MMU关掉时,虚地址直接输出到物理地址总线,,SkyEye模拟硬
5、件介绍,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模拟实现。通过对一些参数的调整可以支持模
6、拟多种类型的MMU/CACHE物理结构和逻辑行为。,,,SkyEye模拟硬件介绍,网络芯片,,目前SkyEye模拟了网络芯片8019AS,,,其特点是:NE2000兼容,内建16KRAM缓冲区,10MB传输速率。,,虽然目前模拟的开发板上不一定有网络芯片8019AS,但可以在模拟的开发板上加上网络芯片8019AS 的模拟。,,SkyEye的安装,,Linux操作系统,,Windows+MingW或cygwin,,有两种安装方法,,下载源代码,编译并安装,,直接安装二进制代码,,下载源代码,编译并安装,最新版本情况,,下载,,为编译的skyeye准备编译环境,,,,解压缩,,,,,,,编译并安装
7、,,简单编译,,./configure 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.con
8、f -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,
9、,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/,,
10、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,
11、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,
12、,得到的输出文件,,hello和hello.gdb,,检查hello的格式,,file hello,,如何运行hello???,,,,,-Wl,-elf2flt选项让链接器将elf格式转换为flt格式,,,最新实验表明,直接使用-elf2flt即可,源文件,生成的文件,,运行,hello,hello必须在target环境上,无法在host上,,,,,如何准备target的运行环境,,skyeye====模拟器,,uCLinux====操作系统??,,文件系统??,,……??,,,生成,uCLinux,操作系统,两种方案,,使用,skyeye,提供的二进制包,,自己动手编译配置,uCLinux
13、,,,编译配置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目录,,在中出
14、现了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
15、,,命令: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,,mkd
16、ir /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编写的通用Boo
17、t 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 –
18、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开发板,,m
19、ake 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格式,这里我们用
20、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=0
21、x01000000, 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-
22、tools-20061213.tar.gz (gcc 版本为 3.4.4),,make ep7312 config,,make all,,,,,在skyeye中运行u-boot,,可以根据需要修改,在include/configs/ep7312.h中,,U-boot的缺省启动方式,,,,,修改结束后,配置并编译,make ep7312_config,,sudo make all,,,编写skyeye.conf,,#skyeye config file for ubootcpu: arm720tmach: ep7312 mem_bank: map=I, type=RW, addr=0x800
23、00000, size=0x00010000#skyeye for uboot flash 16M bank 1mem_bank: map=M, type=RW, addr=0x00000000, size=0x01000000, file=./u-boot.bin,boot=yes#skyeye for uboot sdram 16m bank 1mem_bank: map=M, type=RW, addr=0xc0000000, size=0x01000000,,注意这里的内存的地址和容量的分配都是根据uboot里面的ep7312的配置文件调整的。这样也可以是我们对uboot的代码修改做到最小。,,,,运行Skyeye,,由于u-boot限时自动boot,所以在run之后要立刻使用“回车”键阻止autoboot,,,进入u-boot的界面,,,,谢谢听讲,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色简约风地球1小时日主题班会
- 红色党政风全民国家安全教育
- 古风书香中国世界读书日读书分享
- 2024消费者权益保护法实施条例学习加大消费者合法权益保护力度
- 2025《提振消费专项行动方案》大力提振消费全方位扩大国内需求
- 手术室仪器设备管理医疗器械管理仪器设备管理制度医疗培训医疗行业
- 绿色清新中国风毕业答辩开题报告
- 政府工作报告里的“加减乘除”
- 红色插画风聚焦三农党政会议精神
- 党的建设的六项基本要求确保党的先进性和纯洁性提高党的执政能力和领导水平
- 2025民营经济座谈会
- 《哪吒2》与导演饺子的家庭教育智慧
- “三农”工作这么干
- 清明祭英烈缅怀先烈铸忠魂砥砺奋进践初心英灵不朽山河永念
- 红色党政教育强国建设规划纲要