嵌入式实验二.docx
- 文档编号:23586428
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:16
- 大小:2.53MB
嵌入式实验二.docx
《嵌入式实验二.docx》由会员分享,可在线阅读,更多相关《嵌入式实验二.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式实验二
实验二编译内核,制作文件系统并烧写到目标板
姓名:
刘巧巧0937004
张巧玲0937036
赵显峰0937041
班级:
09自动化
专业:
自动化
指导老师:
赵悦
实验日期:
2011.11.16
实验二编译内核,制作文件系统并烧写到目标板
一.实验目的
1.掌握编译ARM系统内核的过程.
2.了解制作嵌入式Linux系统中文件系统的过程。
3.学习将嵌入式Linux各部分烧写到目标板上的方法。
二.实验内容
1.完成编译Linux内核。
2.介绍嵌入式Linux中文件系统的概念和作用,动手制作一个文件系统的映像文件。
3.将前面制作出来内核、文件系统等部分烧写到目标板上。
三.实验设备
1、一套PXA270EP嵌入式实验箱。
2、安装Redhat9的宿主PC机,并且配置好ARMLinux的开发环境。
四.预备知识
1.熟悉Linux基本操作。
2.了解标准Linux操作系统的文件系统的组成。
3.熟悉Linux各组成部分的作用,熟悉Linux系统基本操作。
五.实验过程
1、在宿主PC机端,打开一个终端窗口(Terminal),点击【红帽SystemToolsTerminal】
启动终端窗口,请您输入下列9条命令配置内核并编译内核:
①cd/pxa270_linux/linux/*进入Linux内核文件所在的目录*/
②ls/*查看内核文件结构*/
2、请您输入:
③makemenuconfig/*推荐使用*/
这条命令是用来调用菜单式的配制内核界面,相应的还有命令行式的配置方法。
makemenuconfig界面是图形化的内核裁减界面。
通过此部分,我们可以方便的选择,决定
哪些部分被加载并编译入LINUX内核,哪些部分被编译为模块,哪些部分不用。
在此我们可以
装载一个我们已经保存好的设置。
用上下键选择LoadanAlternateConfigurationFile,回车进入
下边如图所示界面,先用退格键将.config删除,直接输入config_ours,回车选择
用Tab键选择
并退出了makemenuconfig
的配置裁减过程。
config_ours这个文件是我们事先配置完并保存好的一个配置文件。
当然用户
也可以使用SaveConfigurationtoanAlternateFile保存自己的配置文件。
但是做本实验时,笔者
建议您先选择我们提供给您的配置文件进行操作,如图9-2,图9-3。
9—2
9-3
当配置生效后的结果会保存在/pxa270_linux/linux/include/linux文件夹下的autoconfig.h文
件中。
3、请您输入,如图9-4:
④makedep
4、编译内核,如图9-5,请您输入,:
⑤makeclean
⑥makezImage
图9-5
编译生成Linux的内核文件zImage,保存在/pxa270_linux/linux/arch/arm/boot下面,如
图9-6。
图9-6
makeclean后第一次使用makezImage命令,会占用相当长的时间。
宿主机会根据
autoconfig.h文件对系统进行编译。
首先使用交叉编译器(arm-linux-gcc)把各个文件夹下
用过的.c文件编译为二进制的目标文件,其次用链接器(arm-linux-ld)把这些目标文件连接到
一起;最后压缩,就得到了内核的镜像文件zImage。
这个文件是可以下载并烧写到
PXA270-EP目标板上运行的内核。
5、编译模块,请您输入:
⑦makemodules
编译模块驱动程序,凡是在menuconfig配置中被选为
编译。
至此您已经将内核编译完成,现在您就可以把生成的zImage文件复制到/tftpboot/目录
中,为今后的烧写实验做准备。
请您输入:
⑧cdarch/arm/boot
⑨cpzImage/tftpboot/-f
2)制作文件系统
1、目标板在/pxa270_linux/fs/rootfs270目录中有文件系统的原文件。
可以查看目录中的内容。
在宿主PC机端,打开一个终端窗口(Terminal),点击【红帽SystemToolsTerminal】启动
终端窗口,请您输入下列2条命令查看该文件中的内容,如图10-1:
①cd/pxa270_linux/fs/rootfs270
②ls
可以查看目录中的内容如下:
//********************************************************************
ApplicationsbootdevhomemediaoptrootSettingstmpvar
binconfetclibmntprocsbinsrvusr
//********************************************************************
图10-1
它完全就是Linux的文件系统(与目标板启动后的文件系统完全一样)。
该文件中除了包
含前面介绍过的必备目录外,还包括了一些为本目标板所设计的几个目录。
2、制作jffs2根文件系统的映像
jffs2是一种可读/写的文件系统。
制作它的工具叫做mkfs.jffs2。
可以用下面的命令来生成一
个jffs2的文件系统。
在上面同一个终端窗口中,请您输入下列3条命令,如图10-2:
①cd/pxa270_linux/fs
②./mkfs.jffs2-rrootfs270-oxscale_fs.jffs2-e0x40000--pad=0x01000000
③cpxscale_fs.jffs2/tftpboot-rf
图10-2
这样,就会在fs目录下生成一个名字叫做xscale_fs.jffs2的文件系统,将该文件拷贝到
/tftpboot目录下,为后面的烧写实验做准备,如图10-3。
图10-3
3)烧写各部分到目标板
1、硬件连接:
按照实验一的步骤,连接宿主PC机和一台PXA270-EP目标板。
本实验要通过JTAG烧写
blob,所以需要注意,在插拔JTAG下载线时,PXA270-EP目标板要处于断电状态。
图11-1
2、请您确认宿主PC机的tftp服务,minicom设置及IP地址都已经正常配置,若没有配置成功,请您参照实验四、实验五、实验六的操作过程重新配置。
前面实验装有Linux的宿主机IP地址在本实验中一定要配置为192.168.0.100,使用如下配置命令:
ifconfigeth0192.168.0.100up
建议简单测试一下TFTP服务器是否可用,即自己“tftp”自己,例如在宿主机上执行:
cp/pxa270_linux/IMAGE/zImage/tftpboot/(也可以使用/tftpboot目录中已有的文件,此处仅为举例说明)
tftp192.168.0.100
tftp>getzImage
若出现如下信息:
Received608724bytesin0.6seconds
就表示TFTP服务器配置成功了。
若弹出信息说:
Timedout,则表明未成功。
3、烧写blob,在硬件的连接都已经准确无误后,给PXA270-EP目标板通电。
在宿主PC机端,打开一个终端窗口(Terminal),点击【红帽SystemToolsTerminal】
启动终端窗口,进入pxa270_linux目录的工具部分,使用JFLASHMM工具下载blob,输入下
面2条命令:
①cd/pxa270_linux/tools
②./Jflashmm-linuxPXA270blobp
这个命令是寻找PXA270.dat文件所指定的CPU,把blob文件小烧写到这个CPU使
用的FLASH中。
要求blob,PXA270.dat与Jflashmm-linux应用程序在一个文件夹中,.dat文件
不可以加后缀。
烧写成功后,Jflashmm会自动校验烧写结果。
如果只做校验,比较目标板中的程序与现有
程序是否一致,可以使用命令:
./Jflashmm-linuxPXA270blobv
烧写或效验的结果会在程序结束时打印出信息,如图11-2。
4、烧写成功后,请您将接下来要下载并烧写的内核、文件系统都拷贝到/tftpboot目录中,分
别是zImage、xscale_fs.jffs2、junk.jffs2三个文件。
您可以将您在前面实验中生成的这几文件
拷贝到/tftpboot目录中。
但为了保证本实验的正确进行,笔者强烈建议您使用本公司光盘中提供给您的原文件(Image,xscale_fs.jffs,junk.jffs2三个文件)。
请您输入下列6条命令进行拷贝:
①ifconfigeth0192.168.0.100up
②cd/pxa270_linux/IMAGE
③cpzImage/tftpboot-rf
④cpxscale_fs.jffs2/tftpboot-rf
⑤cd/pxa270_linux/fs
⑥cpjunk.jffs2/tftpboot-rf
5、在上面同一个终端窗口下,请您输入下列1条命令:
①minicom
进入minicom终端模式下,请您按RESET键重新启动目标板,看看是否有信息从串口打印
出来。
正常情况下,可以看到blob的启动信息,并立刻按空格键,这样会进入blob命令行模式。
使用tftp与fwrite命令,可以将宿主PC机/tftpboot目录中的内核与文件系统下载并烧写到
PXA270目标板上。
6、下载Linux内核文件zImage,烧写到目标板。
在第5步操作过程中,您已经进入到blob命令行模式。
请您输入下列1条命令下载内核镜
像文件到目标板:
1blob>tftpzImage--kernel/*如图11-3*/
下载后,zImage文件会被保存在目标板的内存中,起始地址为0xa0008000。
请您输入下列
1条命令将该内核烧写到flash:
②blob>fwrite0xa00080000x000400000x00200000
fwrite是blob中烧写flash的专用工具,他把内存中以0xa0008000开始的,长度为0x00200000
(2M)的内容烧写到flash地址为0x00040000的地方。
在硬件系统允许的范围内,fwrite命令可以把内存中的任意内容烧写入flash的任意地址。
我们烧入0x00040000是因为我们的blob与Linux内核中指定了这个地址存放Linux内核文件。
在blob启动时,它会自动到这个地址找Linux内核文件,并且装载它。
如果不进入blob命令模式,就会直接启动内核。
图11-3
7、下载文件系统文件,烧写到目标板。
下列步骤与下载烧写内核文件基本一样,请您输入下列4条命令完成下载并烧写文件系统的
操作:
①blob>tftpxscale_fs.jffs2/*如图11-4*/
②blob>fwrite0xa10000000x002400000x01000000
③blob>tftpjunk.jffs2
④blob>fwrite0xa10000000x012400000x0dc0000
由于文件系统比较大,所以烧写时间可能会比较长,请您耐心等待。
xscale_fs.jffs2是JFFS2的文件系统镜像文件。
使用tftp命令把它下载到目标板内存的
0xa1000000位置,再用fwrite烧入flash的0x00240000地址。
junk.jffs2是JFFS2的文件系统镜像文件。
使用tftp命令把它下载到目标板内存的0xa1000000
位置,再用fwrite烧入flash的0x01240000地址。
图11-4
若上述过程都操作成功后,那要恭喜您了!
请您按RESET键重新启动PXA270-EP目标板。
这时您将进入有您亲自构建的Linux系统中。
六.实验结果
进入亲自构建的Linux系统中。
七.实验总结
相对于上次实验,本次实验更加顺利。
由于对PC机和嵌入式实验箱已经比较熟悉,而且前一次还顺利的烧写了blob,所以本次实验没有遇到什么大的麻烦,只是进行本次连接和IP地址修改的时候出现了小差错,实验步骤出来问题,导致后面的烧写无法顺利进行;还有串口的连接也出了问题,总之这次的实验相较于上次顺利了很多,对嵌入式实验箱的操作也熟练了许多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验