嵌入式系统及实际应用第三四次实验.docx
《嵌入式系统及实际应用第三四次实验.docx》由会员分享,可在线阅读,更多相关《嵌入式系统及实际应用第三四次实验.docx(34页珍藏版)》请在冰豆网上搜索。
嵌入式系统及实际应用第三四次实验
《嵌入式系统及应用》实验第三、四次
实验一Linux映像固化与运行
一、实验目的
ARM实验设备和Emlink-W仿真器
掌握使用Emlink-W仿真器固化linux映射程序
二、实验内容
H-JTAG软件配置
固化启动映像Bootloader
固化内核映像zImage
固化根文件系统映像ramdisk
三、实验步骤
1.准备工作
将Mini2410核心板boot跳线帽闭合
连接好Emlink-W仿真器、电源线(打开电源开关,给实验箱上电)。
2.固化完整的linux系统
参见附录一文档《基于EduKit-IV出厂固化说明》中“5使用Emlink-W仿真器固化Linux映像程序”部分矚慫润厲钐瘗睞枥庑赖。
3.启动ramdisk根文件系统
最基本的Linux系统就固化成功了,可以修改vivi的启动参数来设置启动方式(出厂默认是采用yaffs根文件系统启动方式):
聞創沟燴鐺險爱氇谴净。
启动ramdisk根文件系统:
vivi>paramramdisk
vivi>paramsave
启动yaffs根文件系统:
vivi>paramreset
vivi>paramsave
启动nfs根文件系统:
vivi>paramsetlinux_cmd_line"root=/dev/nfsnfsroot=192.192.192.190:
/home/example/nfsip=192.192.192.200:
192.192.192.190:
192.192.192.1:
255.255.255.0:
EDUK4:
eth1:
offconsole=ttySAC1,115200mem=64Minit=/linuxrcnoinitrd"残骛楼諍锩瀨濟溆塹籟。
vivi>paramsave
根据不通的vivi启动参数可以引导不同的根文件系统。
4.根文件系统的更新
进行根文件系统的固化与更新。
步骤如下:
1)在EduKit-IV实验平台中,Mini2410-IV核心子板中运行的Linux采用了“双根文件系统”的技术,MTD2分区存放ramdisk根文件系统,MTD3分区存放yaffs根文件系统。
对于正常使用的用户而言,可见的文件系统是yaffs根文件系统,只有在该文件系统崩溃的时候,才通过修改vivi参数启动ramdisk根文件系统,来恢复更新yaffs根文件系统。
同时在Linux映像固化的时候,yaffs根文件系统也是通过ramdisk文件系统更新的。
下面的步骤将介绍通过ramdisk根文件系统来固化更新yaffs根文件系统。
酽锕极額閉镇桧猪訣锥。
2)运行PC机上WindowsXP系统自带的超级终端软件,“开始->所有程序->附件->通讯->超级终端”,设置每秒位数115200、数据位8、奇偶校验无、停止位1、数据流控制无。
(确认已经关闭其他超级终端工具)彈贸摄尔霁毙攬砖卤庑。
3)将EduKit-IV实验平台的电源的拨动开关拨向向上端的加电状态,重新给实验平台上电,在超级终端的界面将会出现Linux启动映像vivi的启动信息,在vivi启动的同时迅速按下PC机的空格键进入vivi的命令行界面。
(如果没有及时进入vivi的命令行界面请重新启动实验系统,再进入vivi命令行界面)謀荞抟箧飆鐸怼类蒋薔。
4)在超级终端界面的vivi命令行输入命令修改传递给内核的启动参数“paramramdisk”,输入完成后按回车键:
厦礴恳蹒骈時盡继價骚。
5)参数修改成功后,在vivi的命令行输入“boot”,启动Linux内核,在超级终端中可以看到Linux的启动信息,同时也可以在LCD屏上看到Linux的启动画面。
茕桢广鳓鯡选块网羈泪。
6)Linux启动完成后,输入回车即可进入Linux的命令行界面。
7)将拷贝有rootfs-eduk4-tsp-ys.tgz文件(DISK3_S3C2410\02-Images\02-Linux)的U盘插入EduKit-IV实验平台的USB接口的上面U口,在超级终端中可以看到提示U盘插入的信息,如图4-6-15所示:
鹅娅尽損鹌惨歷茏鴛賴。
附:
出厂的yaffs根文件系统映像为rootfs-eduk4-tsp-ys.tgz,其他的映像见光盘内同级目录下的list.txt文件说明,后面章节所介绍的linux实验使用的yaffs根文件系统映像为rootfs-eduk4-base.tgz。
籟丛妈羥为贍偾蛏练淨。
另外此处也可以不必使用U盘作为传送映像的媒介,也可以使用SD卡或者网络等传送。
8)在超级终端的Linux命令行执行命令:
$mount-tvfat/dev/ub/a/part1/media
将U盘映射到/media目录:
9)在超级终端的Linux命令行执行命令:
$tarzxvf/media/rootfs-eduk4-tsp-ys.tgz-C/mnt
解压rootfs-eduk4-tsp-ys.tgz文件到MTD3所映射的目录,如图4-6-38所示:
10)解压完成后,输入命令:
$umount/mnt
$umount/media
卸载U盘及MTD3设备:
11)拔出U盘,给EduKit-IV实验平台重新上电,在超级终端的界面将会出现最终的Linux启动信息,同时LCD屏上也会显示Linux的启动画面。
預頌圣鉉儐歲龈讶骅籴。
附:
Linux操作系统下想更新启动映像、内核映像映像和根文件系统映像可以使用Minicom软件,由于Linux下没有vivi支持的USB驱动,所以不能使用“loadflashviviu”命令,但是可以使用xmodem方式来下载,命令为“loadflashvivix”渗釤呛俨匀谔鱉调硯錦。
5Linux映像的运行
固化好了bootloader、内核、根文件系统后,重启实验平台或者给实验平台重新加电,正确设置好超级终端,将可以看到串口打印的信息铙誅卧泻噦圣骋贶頂廡。
实验二vivi的编译与运行
一、实验目的
熟悉vivi相关知识及应用;
学会使用交叉编译器编译vivi;
掌握vivi命令将文件固化到目标板上。
二、实验内容
在Ubuntu系统下,使用交叉编译器编译vivi;
利用vivi命令固化Linux文件到目标板上。
三、实验原理
bootloader(引导加载程序)是系统加电后运行的第一段代码,一般运行的时间非常短,但是对于嵌入式系统来说,这段代码非常重要。
在我们的台式电脑当中,引导加载程序由BIOS(固件程序)和位于硬盘MBR中的操作系统引导加载程序(比如NTLOADER,GRUB和LILO)一起组成。
擁締凤袜备訊顎轮烂蔷。
在嵌入式系统当中没有像BIOS这样的固件程序,不过也有一些嵌入式CPU会在芯片内部嵌入一小段程序,一般用来将bootloader装进RAM中,有点类似BIOS,但是功能比BIOS弱很多。
在一般的典型系统中,整个系统的加载启动任务全由bootloader来完成。
在ARM中,系统上电或复位时通常从地址0x00000000处开始执行,而在这个位置,通常安排的就是系统的BOOTLOADER。
通过这小段程序可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境设置到一个合适的状态,从而最终为调用操作系统内核准备好正确的环境。
贓熱俣阃歲匱阊邺镓騷。
vivi是由mizi公司为ARM处理器系列设计的一个bootloader,因为vivi目前只支持使用串口和主机通信,所以您必须使用一条串口电缆来连接目标板和主机。
主要功能为:
复制并启动内核,初始化硬件,下载目标板到flash等。
坛摶乡囂忏蒌鍥铃氈淚。
vivi有两种工作模式:
启动加载模式和下载模式。
启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。
在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,见下表:
蜡變黲癟報伥铉锚鈰赘。
表1-1vivi使用命令表
四、实验步骤
1.编译vivi
1)在Ubuntu中单击菜单应用程序->附件->终端打开终端,在终端中输入命令设置环境变量:
2)进入vivi实验工作目录:
3)清除早前可能存在的配置信息:
4)执行配置命令:
图1-1vivi配置界面
选择LoadanAlternateConfigurationFile选项,回车。
在弹出的对话框中输入配置文件,这里我们提供了vivi的配置文件:
config-eduk4。
買鲷鴯譖昙膚遙闫撷凄。
图1-2选择配置文件
选择,回车退出。
接下来在选择退出配置,然后再在如图1-3中选择,保存并退出。
綾镝鯛駕櫬鹕踪韦辚糴。
图1-3vivi配置退出保存界面
5)执行make命令生成可执行文件,文件存放在当前目录下:
6)拷贝文件:
执行完命令后,将自动拷贝vivi到/home/example/目录下。
2.固化vivi
在Ubuntu下采用minicom终端更新,下面的步骤将具体介绍:
1)正确连接交叉串口于实验平台的COM2和PC端的串口。
2)运行ubuntu终端,在终端中输入命令打开minicom:
图1-4启动minicom终端
3)给实验平台上电,启动内置viv并按空格键进入到vivi的命令行界面:
图1-5进入vivi命令行
4)输入命令使用xmodem协议来传送新编译好的vivi(/home/example/vivi):
图1-6进入vivi命令行
输入完命令后,回车,终端提示等待xmodem协议传送文件,此时按下“Ctrl+a”键,然后再输入“z”键进入到minicom的功能菜单:
驅踬髏彦浃绥譎饴憂锦。
图1-7minicom功能菜单
从键盘输入“s”,选择发送文件选项,出现协议选择菜单:
图1-8minicom传送协议选择
通过键盘的上下方向键选中xmodem协议,回车进入所需传送文件的默认路径界面:
图1-9minicom传送默认文件夹
此时通过键盘的左右方向键,选中“[转到]”选项,回车,在弹出的界面输入新的vivi映像所在目录路径/home/example:
猫虿驢绘燈鮒诛髅貺庑。
图1-10输入目标传送文件所在目录
输入完成后回车,将进入到新vivi所在目录:
图1-11进入到目标传送文件所在目录
通过键盘方向键选择“[OK]”项,弹出目标传送文件界面,输入目标文件名vivi:
图1-12进入到目标传送文件名
输入正确的目标传送文件名后,回车,将开始传送新的vivi映像,并显示传送进度:
图1-13传送中
传送完毕将提示传送成功,按任意键退出:
图1-14传送完成
在minicom终端将打印出新vivi的固化信息,并提示成功:
图1-15完成vivi的传送
注意:
等待传送的时间不宜太久,否则就超时,如果出现选中了所需传输的文件,但是传送进度无反应的,即时超时,可按“Ctrl+c”退出,重新传送。
锹籁饗迳琐筆襖鸥娅薔。
5)可以重启实验系统验证新固化进去的vivi,minicom终端打印如下:
实验三内核编译与运行
一、实验目的
学习和掌握Linux编译的基本步骤;
通过实验掌握Linux配置、编译过程。
二、实验内容
对Linux的内核及用户程序进行配置;
编译生成内核映象文件;
把编译的映象文件烧写到FALSH中,查看运行结果。
三、实验原理
内核是Linux操作系统的核心,它管理所有的系统线程、进程、资源和资源分配。
与其它操作系统不同的是,Linux操作系统允许用户对内核进行重新设置。
用户可以对内核进行“瘦身”,增加或消除对某些特定设备或子系统的支持。
在开发嵌入式系统时,开发人员经常会减少系统对一些无用设备的支持,将节省下来的内存分配给各种应用软件。
構氽頑黉碩饨荠龈话骛。
Linux内核对各种硬件和端口的支持要靠各种硬件驱动程序来实现。
这些驱动程序可以被直接写入内核,也可以针对某些特定硬件在需要时自动加载。
通常情况下,可以被自动加载进内核的内核编码称为自动加载内核模块。
輒峄陽檉簖疖網儂號泶。
Linux内核的设置是通过内核设置编辑器完成的。
内核设置编辑器可对每个内核设置变量进行描述,帮助用户决定哪些变量需要被清除,哪些需要写入内核,或者编成一个可加载内核模块在需要时进行加载。
尧侧閆繭絳闕绚勵蜆贅。
内核是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。
硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
识饒鎂錕缢灩筧嚌俨淒。
用户可以根据自己的需要编译内核。
四、实验步骤
1.编译内核
1)单击菜单应用程序->附件->终端打开终端,设置环境变量:
2)执行命令切换到linux内核目录下:
3)清除早前可能存在的配置信息:
4)执行配置命令:
图2-1kernel配置界面
选择LoadanAlternateConfigurationFile选项,添加配置文件,回车。
凍鈹鋨劳臘锴痫婦胫籴。
图6-2-2选择LoadanAlternateConfigurationFile
将弹出的窗体中的.config替换成./config-eduk4。
图6-2-3选择kernel配置文件
选择,回车退出。
在弹出的主配置界面中,选择,回车。
图6-2-4kernel配置退出保存界面
选择,回车。
5)编译内核:
编译完成后将在arch/arm/boot目录下生成zImage文件,并自动拷贝到/home/example目录下。
恥諤銪灭萦欢煬鞏鹜錦。
6)生成驱动模块:
2.固化内核映像
使用minicom固化内核映像的方法跟前节固化vivi映像的步骤相似,启动vivi后,输入命令使用xmodem协议来传送新编译好的内核映像zImage(/home/example/zImage):
鯊腎鑰诎褳鉀沩懼統庫。
后面的步骤参考前节vivi的传送,仅需要把需要传送的文件名替换为zImage即可,传送完毕minicom串口终端打印信息如下:
硕癘鄴颃诌攆檸攜驤蔹。
图6-2-5内核映像传送完毕
重启实验系统将可以看到新的内核引导信息。
实验四busybox编译实验
一、实验目的
熟悉busybox相关知识及应用;
学会使用交叉编译器定制一个busybox;
利用该busybox制作一个文件系统。
二、实验内容
利用交叉编译器编译busybox;
利用已经配置好的busybox制作一个文件系统。
三、实验原理
busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小。
我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用。
另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候按ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接。
busybox的小身材大作用的特性,给制作一张软盘的linux带来了及大方便。
阌擻輳嬪諫迁择楨秘騖。
busybox是标准Linux工具的一个单个可执行实现。
busybox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。
有些人将busybox称为Linux工具里的瑞士军刀。
简单的说busybox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,用户可以根据自己的需要定制一个busybox。
氬嚕躑竄贸恳彈瀘颔澩。
四、实验步骤
1.编译busybox
1)单击菜单应用程序->附件->终端打开终端,设置环境变量:
2)执行命令切换到busybox实验目录下:
3)解压busybox-1.1.2.tar.bz2:
4)进入目录,并打上补丁:
5)清除早前可能存在的配置信息:
6)执行配置命令:
图6-3-1busybox配置界面
选择LoadanAlternateConfigurationFile选项,添加配置文件,回车。
釷鹆資贏車贖孙滅獅赘。
图6-3-2选择LoadanAlternateConfigurationFile界面
将弹出的窗体中的.config替换成eduk4。
图6-3-3选择busybox配置文件
选择,回车退出。
在弹出的主配置界面中,选择,回车。
图6-3-4busybox配置退出保存界面
7)编译busybox:
执行完命令后,将在busybox-1.1.2下面生成一个_install文件夹。
2.基于busybox生成文件系统包
1)建立root-mini文件系统目录,并拷贝busybox生成的文件到该目录内:
2)创建文件系统目录树结构,并拷贝必要的文件到文件系统目录内:
3)拷贝inittab文件到etc目录下:
4)在etc/init.d目录下建立rcS文件,内容如下:
5)修改新建的文件系统文件夹属性:
这样基于busybox所建立的文件系统就做好了。
实验五ramdisk根文件系统的制作
一、实验目的
熟悉根文件系统组织结构;
定制、编译ramdisk根文件系统。
二、实验内容
利用实验三中的已经完成的文件系统,生成一个根文件系统镜像。
三、实验原理
ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录:
bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。
还需要有一些基本的工具:
sh,ls,cp,mv……(位于/bin目录中);必要的配置文件:
inittab,rc,fstab……位于(/etc目录种);必要的设备文件:
/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:
glibc。
怂阐譜鯪迳導嘯畫長凉。
四、实验步骤
1.制作ramdisk根文件系统映像
1)单击菜单应用程序->附件->终端打开终端,设置环境变量:
2)执行命令切换到ramdisk实验目录下:
3)运行脚本文件:
shell脚本命令说明:
创建一个空的ramdisk镜像:
用dd命令建立了一个名为ramdisk的ramdisk基本文件;ramdiskimage文件名为ramdisk,大小为2M。
谚辞調担鈧谄动禪泻類。
格式化文件系统:
把它格式化为你需要的文件系统,比如ext2,ext3等。
在rootfs上面建立ext2文件系统。
这里的-N3500表示最大的node数为3500。
因为linux的设备也是基于文件系统的,需要占用文件系统的node,如果数目建立的太少,以后可能会不够用。
嘰觐詿缧铴嗫偽純铪锩。
挂载文件系统:
把ramdisk文件系统挂载到temp目录下面。
拷贝实验中已经创建好的文件结构到temp文件夹:
卸载;
生成压缩文件;
修改root-mini.gz的执行权限;
删除临时文件夹ramdisk,拷贝生成的ramdisk根文件系统映像到/home/example目录。
熒绐譏钲鏌觶鷹緇機库。
这样生成的ramdisk.gz即为ramdisk根文件系统映像,同时拷贝到/home/example目录下。
鶼渍螻偉阅劍鲰腎邏蘞。
2.固化引导ramdisk文件系统
在Ubuntu下采用minicom终端更新。
使用minicom固化ramdisk文件系统映像的方法跟前节固化vivi映像的步骤相似,启动vivi后,输入命令使用xmodem协议来传送新制作好的ramdisk文件系统映像ramdisk.gz(/home/example/ramdisk.gz):
纣忧蔣氳頑莶驅藥悯骛。
后面的步骤参考前节vivi的传送,仅需要把需要传送的文件名替换为ramdisk.gz即可,传送完毕minicom串口终端打印信息如下:
颖刍莖蛺饽亿顿裊赔泷。
图6-4-1ramdisk映像传送完毕
重启实验系统,并按空格进入到vivi的命令行界面,输入命令修改vivi启动参数为引导ramdisk根文件系统启动:
濫驂膽閉驟羥闈詔寢賻。
重新启动实验系统,将可以在minicom终端看到ramdisk文件系统的完成信息:
收获及建议:
总体来说第三四次的实验与第二次的难度差不多,经常因为一些细节的问题出现运行与烧制错误。
后来通过一步一步的校验,修改才做完实验,感觉的这些程序的调整上注意细节非常重要。
并且通过多次重复实验记住了很多命令,发现掌握这些东西还是需要多练多操作的。
銚銻縵哜鳗鸿锓謎諏涼。