《基于SKYEYE的嵌入式Linux系统设计.doc》由会员分享,可在线阅读,更多相关《基于SKYEYE的嵌入式Linux系统设计.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、郑州航空工业管理学院嵌入式系统课程设计报告题目:基于SKYEYE的嵌入式Linux系统设计2013 2014第2学期院系:电子通信工程姓名:余会云 专业:通信工程学号: 指导老师:赵成电子通信工程系2014年4月制目 录一、引言二、设计目的三、设计要求(1) 建立VMWARE虚拟机。(2) 安装Linux RHEL AS4操作系统环境。(3) 建立Windows操作系统与Linux操作系统的共享功能。(4) 建立交叉编译环境;安装SKYEYE仿真软件。(5) 配置并编译U-Boot-1.3.2软件。(6) 配置并编译Linux-2.6.14内核源代码。(7) 制作Linux根文件系统。(8)
2、使用SKYEYE仿真嵌入式系统的运行。四、实验进展安排五、考核评价六、总体设计七、总结八、参考文献一、引言根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要
3、求的专用计算机系统。仿真技术也是实现仿真平台的关键,软件仿真技术的研究早已开始。目前,嵌入式系统的仿真软件主要有SKYEYE与QEMU,这里选用SKYEYE软件来仿真嵌入式系统中的软硬件系统。在本次课程设计中,采用ARMv4 版本架构的、ARM920T 核心的S3C2410A 微处理器,应用SKYEYE对经过编译的嵌入式系统的基本模块进行仿真。SKYEYE是一个面向完整 PC 系统的开源仿真器,可以实现嵌入式系统的仿真,给用户提供一个虚拟的硬件操作平台。它是一个指令级仿真器,可以模拟多种嵌入式开发板,可支持多种CPU 指令集。除了仿真处理器外,SKYEYE 还允许仿真所有必要的子系统,如连网硬
4、件和图形硬件。在SKYEYE 上运行操作系统与在一个真实的硬件环境中运行是一样的,看不出其中的差别,并且开发人员还可以通过SKYEYE 调试操作系统和系统软件。通过 SKYEYE 仿真集成环境不仅可以很方便地进入到嵌入式系统软件学习和开发领域,而且可以有效地提高工作效率,有助于进一步学习、分析、精通Linux 内核,掌握ARM 嵌入式CPU 编程。二、设计目的通过对嵌入式系统的基本知识及相关概念的了解,在熟悉Linux操作系统的基础上,利用SKYEYE仿真软件,对嵌入式系统的开发过程进行软件仿真,从而掌握嵌入式Linux系统开发中的主要方法。具体地,在设计过程中,达到以下目标:掌握嵌入式Lin
5、ux系统基础部分的U-Boot软件、Linux内核的配置、编译与应用;掌握BusyBox软件及根文件系统的制作方法;掌握SKYEYE软件的使用方法,通过SKYEYE仿真软件运行U-Boot文件、vmLinux文件映像及根文件系统root.cramfs映像。 最终,能在掌握嵌入式系统开发过程及SKYEYE软件使用方法的基础上,建立更有效的嵌入式系统开发方法,提高嵌入式系统的开发与应用的效率。三、设计要求1. 任务要求要求能独立地分析题目意义、设计实现步骤、制作相关软件、调试嵌入式系统“三大基础部分”。该设计的具体要求如下:(1) 建立VMWARE虚拟机。(2) 安装Linux RHEL AS4操
6、作系统环境。(3) 建立Windows操作系统与Linux操作系统的共享功能。(4) 建立交叉编译环境;安装SKYEYE仿真软件。(5) 配置并编译U-Boot-1.3.2软件。(6) 配置并编译Linux-2.6.14内核源代码。(7) 制作Linux根文件系统。(8) 使用SKYEYE仿真嵌入式系统的运行。2. 设计所需的软硬件设备(1)硬件环境配置计算机:Intel(R) Pentium(R) 及以上内存:1GB及以上(2)软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2虚拟机:VMware WorkStation 7
7、Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)嵌入式交叉编译器:arm-linux-gcc 3.4.4版本Linux内核版本:Linux-2.6.14SKYEYE版本:skyeye-1.2.4U-Boot版本:U-Boot-1.3.2BusyBox版本:BusyBox-1.2.03. 课程设计报告内容按该设计报告要求的模式格式提交课程设计报告书。四 推荐进程安排 进展安排1、 查阅资料、设计步骤 (已进行)2、 安装与配置开发环境1天;3、 配置与编译相关软件及系统3天;4、 写出设计报告 1天。五、考核评价考核评价评价机制权重过程评价考勤
8、10%课堂纪律10%自主学习20%团队合作10%任务完成过程20%任务完成结果20%设计报告书写10%合计100%六、 总体设计6.1 建立VMWARE虚拟机 1. 解压软件包到指定的文件夹 2. 双击VMware WorkStation安装程序图标,运行安装程序,进入Vmware虚拟机安装的初始加载界面。 3 .Vmware虚拟机的初始加载结束后,进入安装向导界面,点击Next进入下一步 4. 选择安装类型,典型安装(Typical),点击Next进入下一步 5 .设定程序安装,点击change按钮,可以选择更改默认的安装路径,然后设置自己需要安装的程序路径,在选定安装路径后,点击Next按
9、钮进入下一步6. 提示安装程序时需要创建的快捷图标(桌面图标、开始菜单中的程序文件夹及快速启动工具图标等3项),默认的设置即可,不需要改动,直接点击Next按钮进入下一步。7.确认前面各个步骤中设置的项目是否正确,并准备进入正式的安装过程。在这一步点击Coutinue按钮进入正式安装过程。 8. 安装完毕后,填写注册信息,这里需要注册码,按要求将对应各项填写完以后,直接点击Enter按钮进行信息注册,并进入下一步 9. 如果安装了保护卡的电脑不要选择“Restart Now”;反之,选择“Restart Now”,重新启动系统。重新启动系统后,点击开始-所有程序-VMware WorkStat
10、ion运行Vmware虚拟机6.2 安装Linux RHEL AS4操作系统环境 1. 在Vmware虚拟机的运行界面中,点击菜单栏中的File项,在弹出的下拉菜单中选New项,再点击弹出菜单的Virtual Machine项。出现新的虚拟机安装向导 2. 在弹出的安装向导中提供两个选项,这里选择自定义安装(Custom),进入下一步 3. 选择Vmware虚拟机平台,不同的Vmware虚拟机平台支持的硬件特性不同。这里选择Workstation6.5-7.0,进入下一步。 4. 选择要安装的Linux操作系统光盘镜像,同时使用Vmware虚拟机的“Easy Install”功能自动安装Lin
11、ux操作系统。选择第一张安装光盘镜像,进入下一步。 5. 设置安装的Linux系统的用户名和密码信息。进入下一步。 6. 设置Linux虚拟机的显示名称及安装路径。根据自己的情况选择安装路径,名称可以选择默认。进入下一步。 7. 配置虚拟机使用的处理器。配置处理器数量、处理器的内核数,这里使用默认的设置:1个单核处理器。进入下一步。 8. 配置虚拟机使用的存储器空间,这里设置为512MB。进入下一步。 9. 设置网络类型。选择Use network address translation(NAT),,进入下一步。 10.设置I/O适配器类型,进入下一步。 11. 创建一个虚拟磁盘,在其上安装L
12、inux操作系统。进入下一步 12. 选择使用的磁盘类型,按默认的设置即可。进入下一步。 13. 设置硬盘的空间大小,30GB,进入下一步。 14. 设定存储磁盘文件的路径。根据自己的情况进行选择,进入下一步。 15. 对话框汇总了前面的设置项目,如果没有错误,不需要修改,直接点击Finsh按钮,进行Linux系统的安装。 16.第1张光盘安装完毕,需要第2张安装光盘的镜像。点击右下方的“Change Disc”按钮,在弹出的对话框中点击“Browse.”按钮在弹出的对话框中双击选择第2个光盘的镜像。第3张和第4张操作相似。 17. 在第4张光盘安装完毕,又需要第1张安装光盘的镜像 18. L
13、inux系统安装完毕后会自动启动,会出现登陆界面。 19. 在界面中输入刚开始设置的用户名和密码,进入Linux系统的桌面环境。6.3 建立Windows操作系统与Linux操作系统的共享功能 1. 点击“Applications”-“SystemSettings”-“Security Level”,弹出“Security Level Configuration”对话框。 2. 在“Security Level Configuration”对话框中,将“Security Level”项设置为“Disable firewall”,即无防火墙。 3. 点击“Applications”-“Syste
14、mSettings”-“Samba”,在弹出的“Samba服务器配置”对话框中进行配置。而显示的配置内容为空,这说明还没有配置Samba服务器。 4. 点击“ADD”图标,添加1个Samba服务共享,在弹出的对话框中选择“Basic”选项卡,在其中进行设置:在“Directory”文本框输入/home/zq;在“Share name”文本框中输入zq;在“Basic Permissions”选项中选择“Read/Write”。 接着切换到“Access”选项卡,其中有两项选择,一项是仅允许特定的用户访问,另一项是允许所有用户访问。在这里选择“Allow access to everyone”选
15、项。 5. 点击“Preferences”-“Server Settings.”,弹出“服务器设置”对话框。 在“Basic”选项卡内,按默认内容设置“Workgoup”与“Description”;在“Security”选项卡内“Authentication Mode”项选择“Share”,“Encrypt Passwords”项选择“NO”,“Guest Account”项选择“No Guest Account” 6. 设置/home/zq文件夹的属性 7. 在windows操作系统环境下,右键点击“网络邻居”图标,在弹出的“网络连接”对话框中,可以看见有一个“VMware Network
16、 Adapter VMnet8”连接项,右键点击该项,在弹出的菜单中点击选择“属性”选项,接着会弹出“VMware Network Adapter VMnet8”属性对话框,其中,在“常规”选项卡里面有一个“此连接使用下列项目(O)”文本框,点选其中的“Internet 协议(TCP/IP)”项,然后点击下方的“属性”按钮,会弹出“Internet 协议(TCP/IP)属性”对话框,其中显示的“IP地址(I)”为:202.196.174.28,在下面将相关的IP地址都配置在同一网段中。 8.设置Samba服务器IP地址 点击“Applications”-“System Tools”-“Netw
17、ork Device Control”项,弹出“网络设备控制”对话框。点击选定“eth0”设备,确认“Status”栏的内容为“Active”(如果“Status”栏的内容为“Inactive”,需要先点击右侧的“Activate”按钮,将其激活),再点击右边的“Configure.”按钮,弹出“网络配置”对话框,其中显示了已有的网络设备,将其中的IP地址配置为和上一步中在同一网段的IP地址 9. 点击VMware虚拟机的“VM”菜单,选择“Settings.”项。在“Hardware”选项卡中左侧选择“Network Adapter”项,相应的,在右侧的Network connection中
18、选择“NAT:Use to share the hosts IP address”项,也可以选择“Bridged:Connected directly to the physical network项”。同时,在“Devices status”框中选择“Connected”与“Connect at power on”项 10. 启动Smaba服务器,启动终端,在终端输入命令service smb start,启动samba服务。 11. 在windows下访问共享文件夹。在windows系统中点击“开始”-“运行”,输入samba服务器的IP地址,点击“确定”按钮,就可以看到Linux系统下的
19、共享文件夹/home/zq 6.4 建立交叉编译环境;安装SKYEYE仿真软件 Gcc交叉编译环境的安装在终端运行如下命令:设置环境变量,将交叉开发工具的设置更新到系统环境中,这样就可有直接在命令行使用,设置环境变量的方法如下:(1)在终端运行命令:vi /root/.bashrc(2)编辑/root/.bashrc文件,在最后一行添加export PATH=$PATH:/home/usr/local/bin.如图所示(3)注销Redhant系统,重新登录,使以上设置生效。启动终端,在命令行输入arm-linux-gcc v,出现如下图示的信息,说明交叉编译环境已经成功安装。SKYEYE的安装
20、:6.5 配置并编译U-Boot-1.3.2软件 6.5.1 交叉编译U-Boot-1.3.2软件 把U-Boot-1.3.2压缩文件放到/home文件夹下 在终端中输入:cd /home 进入到home文件夹下 在终端中输入:tar xjvf u-boot-1.3.2.tar.bz2 C ./ 把u-boot-1.3.2解压到home文件夹下 在终端中输入:cd u-boot-1.3.2 进入到cd u-boot-1.3.2文件夹下 make smdk2410_config CROSS_ROMPILE=arm-linux- 配置编译环境 make CROSS_ROMPILE=arm-linu
21、x- 选择嵌入式交叉编译工具进行编译 编译完成后,可以得到U-boot各种格式的映像文件和符号表。6.5.2使用SKYEYE仿真软件测试编译得到的U-Boot文件 新建一个文件,命名为skyeye_s3c4210.conf,并把内容配置为 # skyeye config file for S3C2410Xarch:armcpu: arm920tmach: s3c2410x# physical memorymem_bank: map=M, type=RW, addr=0x, size=0xmem_bank: map=M, type=RW, addr=0x, size=0x#mem_bank: m
22、ap=M, type=RW, addr=0xc, size=0x00a00000# all peripherals I/O mapping areamem_bank: map=I, type=RW, addr=0x, size=0xmem_bank: map=I, type=RW, addr=0x, size=0x#net: type=cs8900a, base=0x, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap,hostip=10.0.0.1lcd: type=s3c2410x, mod=gtk#load_addr:base=0x, mas
23、k=0xFFFFFF#dbct:state=on在/home 文件夹下的U-Boot-1.3.2里找到u-boot,和u-boot.bin文件,把这两个文件和skyeye_s3c2410.conf一同复制到home/ilovechina/skyeye-1.2.4/binary文件夹里在终端中输入命令:cd /home/ilovechina在终端中输入命令:cd skyeye-1.2.4在终端中输入命令:cd binary 在终端中输入命令:./skyeye c skyeye_s3c2410.conf e u-boot在u-boot可以在“SMDK2410#”后输入u-boot命令6.6 配置并
24、编译Linux-2.6.14内核源代码 6.6.1交叉编译Linux内核源代码软件 把Linux 2.6.14压缩文件放到/home文件夹下 在终端中输入cd /home 进入到home文件夹下 在终端中输入tar -xjvf linux-2.6.14.tar.bz2 把Linux 2.6.14压缩文件解压到home文件夹下 在终端中输入cd /home/linux-2.6.14使用vi编辑器打开该目录下的Makefile文件,修改第192行与第193行,改为:ARCH ?=arm CROSS_COMPILE ?=/home/usr/local/bin/arm-linux- 分别指定编译的内核
25、架构与使用的交叉编译工具。在终端中输入:cp arch/arm/configs/smdk2410_defconfig .config make ARCH=arm menuconfig 启动内核配置菜单,参考书中各个选项的配置,特别要注意系统类型、启动选项、设备驱动程序和内核调试的配置更改程序运行的物理地址修改include/asm-arm/arch-s3c2410/memory.h文件,在终端中输入命令 vi include/asm-arm/arch-s3c2410/memory.h将其中第33行指定SDRAM其实地址的如下内容修改include/asm-arm/arch-s3c2410/ma
26、p.h文件,在终端中输入命令:vi include/asm-arm/arch-s3c2410/map.h修改后的内容为:Linux内核的编译:cd /home/linux-2.6.14 make ARCH=arm CROSS_COMPILE=arm-linux-内核编译完毕后,将得到三个重要的文件,分别位于根目录下的vmlinux、位于Linux-2.6.14安装目录中arch/arm/boot/路径下的Image与zImage。6.6.2 使用SKYEYE仿真软件测试编译得到的Linux内核文件vmLinux 复制vmlinux到/home/ilovechina/skyeye-1.2.4/b
27、inary cp vmlinux /home/zcnet/skyeye-1.2.4/binary/ 建立skyeye.conf配置文件到/home/ilovechina/skyeye-1.2.4/binary cd /home/zcnet/skyeye-1.2.4/binary/ vi skyeye.conf skyeye.conf配置文件的内容为: #skyeye config file for s3c2410cpu:arm920tmach:s3c2410x#physical memorymem_bank:map=M,type=RW,addr=0xc,size=0xmem_bank:map=
28、M,type=RW,addr=0xc,size=0x,file=./initrd.imgmem_bank:map=M,type=RW,addr=0xc,size=0x#all peripherals I/O mapping areamem_bank:map=I,type=RW,addr=0x,size=0xmem_bank:map=I,type=RW,addr=0x,size=0xnet:type=cs8900a,base=0x,size=0x20,int=9,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=10.0.0.1lcd:type=s3c2410x,mod=
29、gtk#dbct: state=on 复制文件系统initrd.img到/home/ilovechina/skyeye-1.2.4/binary把SKYEYE的测试工具包压缩文件放到/home文件夹下。在终端中输入命令:cd /home在终端中输入命令:tar xjvf skyeye-testsuite-2.3.tar.bz2在终端中输入命令:cd skyeye-testsuite-2.3/linux/s3c2410/s3c2410x-2.6.14在终端中输入命令:cp initrd.img /home/zcnet/skyeye-1.2.4/binary使用SKYEYE仿真Linux系统在终端
30、中输入命令:cd /home/zcnet/skyeye-1.2.4/binary在终端中输入命令:./skyeye -e vmlinux 6.7 制作Linux根文件系统 6.7.1编译安装BusyBox1. 在home文件夹中新建一个文件夹命名为ilovechina2. 把BusyBo x压缩文件放到/home/ilovechina下3. 在终端中输入命令:cd /home/ilovechina 进入BusyBox-1.2.0的存放位置4. 在终端中输入命令:tar -xjvf busybox-1.2.0.tar.bz2 进行解压5. 在终端中输入命令:cd busybox-1.2.0 6.
31、 在终端中输入命令:make menuconfig 进入BusyBox的主配置菜单7. 参考书中提供的资料进行设置各个选项8. 配置完成各个选项后,保存设置9. 在终端中输入命令:make 对BusyBox进行编译,进行编译后得到两个主要的文件:BusyBox与BusyBox_unstripped。10. 在终端中输入命令:make install 安装BusyBox以后会在BusyBox-1.2.0目录中产生_install目录,这是BusyBox默认的安装目录。在安装目录_install中还得到了bin、sbin、usr等三个目录以及Linuxrc文件BusyBox经过设置、编译与安装在默
32、认的安装目录_install下得到了bin、sbin、usr等三个目录以及Linuxrc文件。在 BusyBox安装目录_install的基础上进行扩展以后可以得到根文件系统。根文件系统中包括了bin、dev、etc、home、initrd、lib、lost+found、proc、root sbin 、tmp 、usr 、var等13个目录以及linuxrc文件,其中home、initrd、lib、lost+found、proc、root、tmp、var 等目录为空目录,暂时没有内容,另外,用户自己还需要创建dev目录与etc目录,dev目录用以存放设备文件,etc目录用来存放启动文件。6.7
33、.2创建根文件系统的dev目录:1. 在终端中输入命令:mkdir _install/dev2. 在终端中输入命令:cp /dev/ttyS0/dev/console/dev/ram0 _install/dev/ -a这样就在dev目录中添加了串口终端设备、系统控制台设备、RAM磁盘设备等三个常用的硬件设备文件6.7.3创建根文件系统的etc等目录及配置文件 这一部分的配置内容较多,也比较繁琐,为了使相应的目录与配置文件的建立过程相对简单,编写make_rootfs.sh来实现该部分的操作。 1.创建make_rootfs.sh脚本文件,内容如下:echo setp of make_rootf
34、secho 1:create foldersmkdir -pv etc etc/init.d home initrd lib proc root tmp var lost+foundecho 2:etc/inittabcat etc/inittab etc/init.d/rcS etc/mtab etc/motd EOFWelcome to ARMLinuxARMLinux for SkyeyeFor further information please check:http:/www.skyeye.org/EOF 2. 将编写的make_rootfs.sh脚本文件放在BusyBox的安装目录
35、_install中,然后进入安装目录运行该脚本在终端中输入命令:cd _install在终端中输入命令:./make_rootfs.sh在终端中输入命令:cd /home/ilovechina/BusyBox-1.2.0 这样,根文件系统的完整结构就在安装目录_install中建立出来了,下一步,将使用安装目录_install中的内容创建文件系统映像 在终端中输入命令:dd if=/dev/zero of=./initrd.img count=2048 bs=1024 在终端中输入命令:mke2fs -F -m0 initrd.img其中,dd是Linux/UNIX系统中一个非常有用的命令,使
36、用dd命令可以复制一个文件到指定大小块空间,并在复制该文件的同时进行指定文件转换。上面具体的带参数的dd命令指定了每个存储块的大小是1024字节,一共2048个块,因此,指定的块空间为2M字节。然后,使用/dev/zero文件来创建一个占用2M字节块空间的初始化空文件,同时将其转换为initrd.img文件输出。mke2fs命令用来将文件映像initrd.img格式化为EXT2格式。 创建的EXT2格式的文件系统映像initrd.img目前还是一个空文件,下一步,应该将安装目录下的所有内容复制到EXT2格式的文件系统映像initrd.img中 6.7.4 添加initrd.img文件系统映像的
37、内容 1. 在终端中输入命令:mkdir /mnt/rootfs 先在./mnt目录中建立一个rootfs目录,用来挂载initrd.img文件系统映像。 2. 在终端中输入命令:mount initrd.img /mnt/rootfs/ -o loop 挂载映像文件initrd.img 3. 在终端中输入命令:cp _install/* /mnt/rootfs/ -a 将安装目录的所有内容复制到/mnt/rootfs目录 4. 在终端中输入命令: umount /mnt/rootfs/ 卸载映像文件initrd.img这样,就得到了运行嵌入式系统所需要的根文件系统映像initrd.img文件
38、了,下一步,需要将根文件系统映像initrd.img文件放在SKYEYE环境中测试进行。6.7.5基于SKYEYE的根文件系统仿真调试 1. 将BusyBox-1.2.0目录中的根文件系统映像文件initrd.img与SKYEYE的配置文件skyeye.conf、Linux2.6.14内核文件vmlinux放在一起,复制到skyeye-1.2.4目录中的binary目录里面。 2. 在终端中输入命令:cd /home/zcnet/skyeye-1.2.4/binary 3. 在终端中输入命令:./skyeye -e vmlinux运行上述命令后,在Redhat Linux的终端窗口中应该可以看
39、到内核的启动信息了,随后会输出在etc/motd文件中设置的“ARMLINUX”ASCII图形的标志,最后,窗口中会输出BusyBox的启动信息 已经出现了BusyBox-1.2.0的信息,光标停留在BusyBox工具提供的命令提示符“#”后,等待用户输入命令。在其中输入命令“ls”,按下回车键执行后,在屏幕上会输出制作的根文件系统中的所有目录。这说明SKYEYE可以正常地模拟仿真Linux-2.6.14系统在ARM9平台上的运行过程6.8 使用SKYEYE仿真嵌入式系统的运行在SKYEYE的仿真文件夹中应该已经同时具有了vmlinux内核映像、initrd.img文件系统以及skyeye.conf配置文件等三个基础文件。 现在就可以使用如下命令来启动SKYEYE模拟Linux-2.6.14内核的运行。运行结果如下图所示七、总结 嵌入式系统的学习,不只在课本上的那些内容,这次课程设计不仅考察了我们对课堂上所学专业知识的理解程度,也锻炼了我们的动手能力。提高了我们独立思考文理,解决问题的能力。总体上看,我觉得这次课程设计是我自身的知识丰富了不少,但同时也发现了自己的不足之处。例如在动手方面,和知识融合方面,不能与实践相结合。软件操作不够熟练,不能灵活运用。是我了解要先学好理论知识才能很好地与实践相结合,才能熟练地运用活中。八、参考文献 【1】赵成.嵌入式系统应用基础
限制150内