嵌入式课程设计.docx
- 文档编号:10452351
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:26
- 大小:751.81KB
嵌入式课程设计.docx
《嵌入式课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计
嵌入式系统课程设计报告
题目:
基于SKYEYE的嵌入式Linux系统设计
2013–2014第2学期
2014年5月24
目录
一、引言
二、设计目的
三、设计要求
四、总体设计
(1)建立VMWARE虚拟机。
(2)安装LinuxRHELAS4操作系统环境。
(3)建立Windows操作系统与Linux操作系统的共享功能。
(4)建立交叉编译环境;安装SKYEYE仿真软件。
(5)配置并编译U-Boot-1.3.2软件。
(6)配置并编译Linux-2.6.14内核源代码。
(7)制作Linux根文件系统。
(8)使用SKYEYE仿真嵌入式系统的运行。
五、总结
六、参考文献
一、引言
以手机和信息家电为代表的嵌入式系统的应用开发已经成为现代工业最热门的领域之一,其灵魂就是嵌入在其中的计算机系统——嵌入式系统。
嵌入式系统仿真环境是支持嵌入式系统软件开发的一种快速、高效和低成本的工具,对于提高嵌入式系统的开发效率和开发质量具有重要意义。
SkyEye是一个支持多架构、多核并且具有高度可扩展性的硬件仿真平台,是国内最优秀的开源软件(opensourcesoftware)项目之一,中文名字是“天目”。
SkyEye的目标是在通用的Linux和Windows平台实现一个仿真集成开发环境,模拟常见的嵌入式计算机系统.使“Clinux以及uC/OS—II等多种嵌入式操作系统和各种系统软件(如TCP/IP、图形子系统、文件子系统等)能够良好运行,并可对它们进行源码级的分析和测试。
如果要学习Linux操作系统或者进行嵌入式系统开发,但缺少硬件支持,嵌入式系统仿真环境软件SkyEy是一个非常有效的学习工具和开发手段。
如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等),采用SkyEye可以有效地提高工作效率。
使用的Linux操作系统是LinuxRHELAS4。
采用Linux2.6内核,功能更加强大,更加健全。
Linux与其它操作系统相比是个后来者,但Linux具有二个其它操作系统无法比拟的优势。
其一,Linux具有开放的源代码,能够大大降低成本。
其二,既满足了手机制造商根据实际情况有针对性地开发自己的Linux手机操作系统的要求,又吸引了众多软件开发商对内容应用软件的开发,丰富了第三方应用。
二、设计目的
通过对嵌入式系统的基本知识及相关概念的了解,在熟悉Linux操作系统的基础上,利用SKYEYE仿真软件,对嵌入式系统的开发过程进行软件仿真,从而掌握嵌入式Linux系统开发中的主要方法。
具体地,在设计过程中,达到以下目标:
掌握嵌入式Linux系统基础部分的U-Boot软件、Linux内核的配置、编译与应用;掌握BusyBox软件及根文件系统的制作方法;掌握SKYEYE软件的使用方法,通过SKYEYE仿真软件运行U-Boot文件、vmLinux文件映像及根文件系统root.cramfs映像。
最终,能在掌握嵌入式系统开发过程及SKYEYE软件使用方法的基础上,建立更有效的嵌入式系统开发方法,提高嵌入式系统的开发与应用的效率。
三、设计要求
1.任务要求
要求能独立地分析题目意义、设计实现步骤、制作相关软件、调试嵌入式系统“三大基础部分”。
该设计的具体要求如下:
(1)建立VMWARE虚拟机。
(2)安装LinuxRHELAS4操作系统环境。
(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)软件环境配置
操作系统:
MicrosoftWindowsXPProfessionalServicePack2
虚拟机:
VMwareWorkStation7
Linux系统:
RedHatEnterpriseLinuxAS4(2.6.9-5.EL)
嵌入式交叉编译器:
arm-linux-gcc3.4.4版本
Linux内核版本:
Linux-2.6.14
SKYEYE版本:
skyeye-1.2.4
U-Boot版本:
U-Boot-1.3.2
BusyBox版本:
BusyBox-1.2.0
四、总体设计
1.建立VMWARE虚拟机
使用Vmware虚拟机是安装linux最容易的方式之一,在Windows系统中安装VMWARE虚拟机从而建立Linux系统便于操作和资源查找。
VMWARE虚拟机采用VMWAREWorkstaion7,安装版本如下
(1)VMWAREWorkstaion的安装和其他软件安装基本相同,下面简单图示安装过程。
双击
进行安装。
(2)安装完毕后,填写注册信息,这里需要注册码,按要求将对应各项填写完以后,直接点击‘Enter’按钮进行信息注册,并进入下一步
(3)如果安装了保护卡的电脑不要选择“RestartNow”;反之,选择“RestartNow”,重新启动系统。
重新启动系统后,点击‘开始’->‘所有程序’->‘VMwareWorkStation’运行Vmware虚拟机
2.安装LinuxRHELAS4操作系统环境。
1在Vmware虚拟机的运行界面中,点击菜单栏中的‘File’项,在弹出的下拉菜单中选‘New’项,再点击弹出菜单的‘VirtualMachine…’项。
出现新的虚拟机安装向导
2在弹出的安装向导中提供两个选项,这里选择自定义安装(Custom),进入下一步
3选择Vmware虚拟机平台,不同的Vmware虚拟机平台支持的硬件特性不同。
这里选择Workstation6.5-7.0,进入下一步。
4选择要安装的Linux操作系统光盘镜像,同时使用Vmware虚拟机的“EasyInstall”功能自动安装Linux操作系统。
选择第一张安装光盘镜像,进入下一步。
5设置安装的Linux系统的用户名和密码信息。
进入下一步。
6设置Linux虚拟机的显示名称及安装路径。
根据自己的情况选择安装路径,名称可以选择默认。
进入下一步。
7配置虚拟机使用的处理器。
配置处理器数量、处理器的内核数,这里使用默认的设置:
1个单核处理器。
进入下一步。
8配置虚拟机使用的存储器空间,这里设置为512MB。
进入下一步。
9设置网络类型。
选择Usenetworkaddresstranslation(NAT),,进入下一步。
10设置I/O适配器类型,进入下一步。
11创建一个虚拟磁盘,在其上安装Linux操作系统。
进入下一步
12选择使用的磁盘类型,按默认的设置即可。
进入下一步。
13设置硬盘的空间大小,50GB,进入下一步。
14设定存储磁盘文件的路径。
根据自己的情况进行选择,进入下一步。
15对话框汇总了前面的设置项目,如果没有错误,不需要修改,直接点击Finsh按钮,进行Linux系统的安装。
16第1张光盘安装完毕,需要第2张安装光盘的镜像。
点击右下方的“ChangeDisc”按钮,在弹出的对话框中点击“Browse...”按钮在弹出的对话框中双击选择第2个光盘的镜像。
第3张和第4张操作相似。
17Linux系统安装完毕后会自动启动,会出现登陆界面。
18在界面中输入刚开始设置的用户名和密码,进入Linux系统的桌面环境。
3.建立Windows操作系统与Linux操作系统的共享功能。
为了Windows操作系统与Linux操作系统的文件共享。
我们需要设置共享功能。
而Samba服务可以提供Windows操作系统与Linux操作系统之间的文件共享。
如下进行配置。
1点击“Applications”->“SystemSettings”->“SecurityLevel”,弹出“SecurityLevelConfiguration”对话框。
在“SecurityLevelConfiguration”对话框中,将“SecurityLevel”项设置为“Disablefirewall”,即无防火墙
3点击“Applications”->“SystemSettings”->“Samba”,在弹出的“Samba服务器配置”对话框中进行配置。
而显示的配置内容为空,这说明还没有配置Samba服务器
4点击“ADD”图标,添加1个Samba服务共享,在弹出的对话框中选择“Basic”选项卡,在其中进行设置:
在“Directory”文本框输入/home/zcnet;在“Sharename”文本框中输入zcnet;在“BasicPermissions”选项中选择“Read/Write”。
接着切换到“Access”选项卡,其中有两项选择,一项是仅允许特定的用户访问,另一项是允许所有用户访问。
在这里选择“Allowaccesstoeveryone”选项。
5点击“Preferences”->“ServerSettings...”,弹出“服务器设置”对话框。
在“Basic”选项卡内,按默认内容设置“Workgoup”与“Description”;在“Security”选项卡内“AuthenticationMode”项选择“Share”,“EncryptPasswords”项选择“NO”,“GuestAccount”项选择“NoGuestAccount”
6设置/home/zcnet文件夹的属性
7在windows操作系统环境下,右键点击“网络邻居”图标,在弹出的“网络连接”对话框中,可以看见有一个“VMwareNetworkAdapterVMnet8”连接项,右键点击该项,在弹出的菜单中点击选择“属性”选项,接着会弹出“VMwareNetworkAdapterVMnet8”属性对话框,其中,在“常规”选项卡里面有一个“此连接使用下列项目(O)”文本框,点选其中的“Internet协议(TCP/IP)”项,然后点击下方的“属性”按钮,会弹出“Internet协议(TCP/IP)属性”对话框,其中显示的“IP地址(I)”为:
192.168.0.6,在下面将相关的IP地址都配置在同一网段中。
8设置Samba服务器IP地址
点击“Applications”->“SystemTools”->“NetworkDeviceControl”项,弹出“网络设备控制”对话框。
点击选定“eth0”设备,确认“Status”栏的内容为“Active”(如果“Status”栏的内容为“Inactive”,需要先点击右侧的“Activate”按钮,将其激活),再点击右边的“Configure....”按钮,弹出“网络配置”对话框,其中显示了已有的网络设备,将其中的IP地址配置为和上一步中在同一网段的IP地址
9点击VMware虚拟机的“VM”菜单,选择“Settings...”项。
在“Hardware”选项卡中左侧选择“NetworkAdapter”项,相应的,在右侧的Networkconnection中选择“NAT:
Usetosharethehost'sIPaddress”项,directlytothe同时,在“Devicesstatus”框中选择“Connected”与“Connectatpoweron”项
10启动Smaba服务器,启动终端,在终端输入命令servicesmbstart,启动samba服务。
11在windows下访问共享文件夹。
在windows系统中点击“开始”->“运行”,输入samba服务器的IP地址,点击“确定”按钮,就可以看到Linux系统下的共享文件夹/home/zcnet
4.建立交叉编译环境;安装SKYEYE仿真软件
Gcc交叉编译环境的安装
在网上下载Gcc交叉编译包。
放在目录home中
在终端运行如下命令:
设置环境变量,将交叉开发工具的设置更新到系统环境中,这样就可有直接在命令行使用,设置环境变量的方法如下:
(1)在终端运行命令:
vi/root/.bashrc
(2)编辑/root/.bashrc文件,在最后一行添加exportPATH=$PATH:
/home/usr/local/bin.
(3)注销Redhant系统,重新登录,使以上设置生效。
启动终端,在命令行输入arm-linux-gcc–v,出现如下图示的信息,说明交叉编译环境已经成功安装。
SKYEYE的安装:
将下载好的skyeye-1.2.4压缩包放在目录home里
在终端运行
5.配置并编译U-Boot-1.3.2软件
5.1交叉编译U-Boot-1.3.2软件
把U-Boot-1.3.2压缩文件放到/home文件夹下在终端中输入:
cd/home进入到home文件夹下,在终端中输入:
tar–xjvfu-boot-1.3.2.tar.bz2–C./把u-boot-1.3.2解压到home文件夹下,在终端中输入:
cdu-boot-1.3.2进入到cdu-boot-1.3.2文件夹下,makesmdk2410_configCROSS_ROMPILE=arm-linux-配置编译环境makeCROSS_ROMPILE=arm-linux-选择嵌入式交叉编译工具进行编译,编译完成后,可以得到U-boot各种格式的映像文件和符号表。
5.2使用SKYEYE仿真软件测试编译得到的U-Boot文件
新建一个文件,命名为skyeye_s3c4210.conf,并把内容配置为
skyeyeconfigfileforS3C2410X
在/home文件夹下的U-Boot-1.3.2里找到u-boot,和u-boot.bin文件,把这两个文件和skyeye_s3c2410.conf一同复制到home/skyeye-1.2.4/binary文件夹里
在终端中输入命令:
cd/home/skyeye-1.2.4、binary
在终端中输入命令:
./skyeye–cskyeye_s3c2410.conf–eu-boot
在u-boot可以在“SMDK2410#”后输入命令echolijian,测试U-boot。
6.配置并编译Linux-2.6.14内核源代码
6.1交叉编译Linux内核源代码软件
把Linux2.6.14压缩文件放到/home文件夹下
在终端中输入cd/home进入到home文件夹下
在终端中输入tar-xjvflinux-2.6.14.tar.bz2把Linux2.6.14压缩文件解压到home文件夹下
在终端中输入cd/home/linux-2.6.14使用vi编辑器打开该目录下的Makefile文件,修改第192行与第193行,改为:
ARCH?
=armCROSS_COMPILE?
=/home/usr/local/bin/arm-linux-分别指定编译的内核架构与使用的交叉编译工具。
在终端中输入:
cparch/arm/configs/smdk2410_defconfig.config
makeARCH=armmenuconfig启动内核配置菜单,参考书中各个选项的配置,特别要注意系统类型、启动选项、设备驱动程序和内核调试的配置。
课本中对于各个选项的配置以及作用叙述的很详细,这里就不再累述。
但特别要注意系统类型、启动选项、设备驱动程序和内核调试的配置。
这几项改动地方较多,需要认真配置。
配置完成保存后,需要更改程序运行的物理地址
修改include/asm-arm/arch-s3c2410/memory.h文件
Linux内核的编译:
cd/home/linux-2.6.14
makeARCH=armCROSS_COMPILE=arm-linux-
内核编译完毕后,将得到三个重要的文件,分别位于根目录下的vmlinux、位于Linux-2.6.14安装目录中arch/arm/boot/路径下的Image与zImage。
6.2使用SKYEYE仿真软件测试编译得到的Linux内核文件vmLinux
复制vmlinux到/home/ilovechina/skyeye-1.2.4/binary
cpvmlinux/home/zcnet/skyeye-1.2.4/binary/
建立skyeye.conf配置文件到/home/ilovechina/skyeye-1.2.4/binary
cd/home/zcnet/skyeye-1.2.4/binary/
viskyeye.conf
skyeye.conf配置文件的内容为:
#skyeyeconfigfilefors3c2410
cpu:
arm920t
mach:
s3c2410x
#physicalmemory
mem_bank:
map=M,type=RW,addr=0xc0000000,size=0x00800000
mem_bank:
map=M,type=RW,addr=0xc0800000,size=0x00800000,file=./initrd.img
mem_bank:
map=M,type=RW,addr=0xc1000000,size=0x01000000
#allperipheralsI/Omappingarea
mem_bank:
map=I,type=RW,addr=0x48000000,size=0x20000000
mem_bank:
map=I,type=RW,addr=0x19000300,size=0x00000020
net:
type=cs8900a,base=0x19000300,size=0x20,int=9,mac=0:
4:
3:
2:
1:
f,ethmod=tuntap,hostip=10.0.0.1
lcd:
type=s3c2410x,mod=gtk
#dbct:
state=on
复制文件系统initrd.img到/home/ilovechina/skyeye-1.2.4/binary
把SKYEYE的测试工具包压缩文件放到/home文件夹下。
在终端中输入命令:
cd/home
在终端中输入命令:
tar–xjvfskyeye-testsuite-2.3.tar.bz2
在终端中输入命令:
cdskyeye-testsuite-2.3/linux/s3c2410/s3c2410x-2.6.14
在终端中输入命令:
cpinitrd.img/home/zcnet/skyeye-1.2.4/binary
使用SKYEYE仿真Linux系统
在终端中输入命令:
cd/home/zcnet/skyeye-1.2.4/binary
在终端中输入命令:
./skyeye-evmlinux
7.制作Linux根文件系统
7.1编译安装BusyBox
1在home文件夹中新建一个文件夹命名为ilovechina
2把BusyBox压缩文件放到/home/ilovechina下
3在终端中输入命令:
cd/home/ilovechina进入BusyBox-1.2.0的存放位置
4在终端中输入命令:
tar-xjvfbusybox-1.2.0.tar.bz2进行解压
5在终端中输入命令:
cdbusybox-1.2.0
6在终端中输入命令:
makemenuconfig进入BusyBox的主配置菜单
7参考书中提供的资料进行设置各个选项
8配置完成各个选项后,保存设置
9在终端中输入命令:
make对BusyBox进行编译,进行编译后得到两个主要的文件:
BusyBox与BusyBox_unstripped。
10在终端中输入命令:
makeinstall安装BusyBox以后会在BusyBox-1.2.0目录中产生_install目录,这是BusyBox默认的安装目录。
在安装目录_install中还得到了bin、sbin、usr等三个目录以及Linuxrc文件
BusyBox经过设置、编译与安装在默认的安装目录_install下得到了bin、sbin、usr等三个目录以及Linuxrc文件。
在BusyBox安装目录_install的基础上进行扩展以后可以得到根文件系统。
根文件系统中包括了bin、dev、etc、home、initrd、lib、lost+found、proc、rootsbin、tmp、usr、var等13个目录以及linuxrc文件,其中home、initrd、lib、lost+found、proc、root、tmp、var等目录为空目录,暂时没有内容,另外,用户自己还需要创建dev目录与etc目录,dev目录用以存放设备文件,etc目录用来存放启动文件。
7.2创建根文件系统的dev目录:
1在终端中输入命令:
mkdir_install/dev
2在终端中输入命令:
cp/dev/ttyS0/dev/console/dev/ram0_install/dev/-a
这样就在dev目录中添加了串口终端设备、系统控制台设备、RAM磁盘设备等三个常用的硬件设备文件
7.3创建根文件系统的etc等目录及配置文件
这一部分的配置内容较多,也比较繁琐,为了使相应的目录与配置文件的建立过程相对简单,编写make_rootfs.sh来实现该部分的操作。
1创建make_rootfs.sh脚本文件,内容如下:
echo"setpofmake_rootfs"
echo"1:
createfolders"
mkdir-pvetcetc/init.dhomeinitrdlibprocroottmpvarlost+found
echo"2:
etc/inittab"
cat>etc/inittab<<"EOF"
:
:
sysinit:
/etc/init.d/rcS
:
:
askfirst:
-/bin/sh
:
:
restart:
/sbin/init
:
:
ctrlaltdel:
/sbin/reboot
:
:
shutdown:
/bin/umount-a-r
:
:
shutdown:
/sbin/swapoff-a
EOF
echo"3:
createetc/init.d/rcS/"
cat>etc/init.d/rcS<<"EOF"
#!
/bin/sh
/bin/mount-tprocnone/proc
sbin/ifconfiglo127.0.0.1up
sbin/ifconfigeth010.0.0.2up
hostnameskyeye
mkdir/var/tmp
mkdir/var/log
mkdir/var/run
mkdir/var/lock
cat/etc/motd
#sbin/ifconfigeth0172.17.51.171netmask255.255.0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计