嵌入系统linux基本实验.docx
- 文档编号:28855010
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:18
- 大小:368.18KB
嵌入系统linux基本实验.docx
《嵌入系统linux基本实验.docx》由会员分享,可在线阅读,更多相关《嵌入系统linux基本实验.docx(18页珍藏版)》请在冰豆网上搜索。
嵌入系统linux基本实验
嵌入系统实验报告
第2章嵌入式系统开发实验
一、实验目的
了解嵌入式系统的开发环境、内核的下载和启动过程
2、实验内容与要求
1、下载相应的内核,并与主机进行挂载
2、编写一段独立的程序并编译
3、将编译生成的可执行程序拷到NFS共享目录下,在目标板上运行该程序
三、串口设置minicom
A-串行设备多数人用/dev/tty1或/dev/ttfS1。
B-Lock文件位置
多数系统上,这应该是/usr/spool/uucp。
Linux系统则使用var/lock。
若此目录不存在,minicom将不会试图使用lock文件。
C-Callinprogram
若你的串口上有uugetty设备或别的什么,可能你就需要运行某个程序以把modem的cq端口切换到dialin/dialout模式。
这就是进入dialin模式所需的程序。
D-Calloutprogram
这是进入dialout模式所用的程序。
E-Bps/Par/Bits
启动时的缺省参数。
4、tftp和NFS服务器架设
Tftp是基于UDP协议的简单文件传输协议,目标板作为客户机。
主机安装tftp-server,作为服务器。
主目录为/tftpboot,这个目录下的文件才能被客户机下载。
NFS用于在不同机器、不同操作系统之间通过网络共享文件的服务系统。
五、实验操作
1、打开终端界面,输入minicom,按enter运行,按Ctrl-A、O,进入setup菜单
在Serialportsetup项上修改下述设置:
A——“SerialDevice”,口参数的设置。
设置通信位波特率、数据位、奇偶校验位和停止位。
F——“HardwareFlowControl”、G——“SoftwareFlowControl”,数据流的控制选择。
按“F”“G”键完成硬件软件流控制切换。
本实验系统都设置为“NO”。
配置完成后,选择“Savesetupasdfl”保存配置。
以上配置只需一次配置即可,下次不用再配置,因此,实验中只要再查看下配置是否正确,基本不需要修改。
1.在配置完minicom之后,返回minicom界面,打开嵌入式开发平台的电源,如果在键盘上无任何操作,那么在设定的等待时间之后,系统直接从FLASH加载启动,如果在设定的时间内任意按键如空格键,那么将进入bootloader界面,看到命令提示符及菜单。
如下即为开机之后的内容:
Welcometouse51BoardBootloaderforXSBase270board
Copyright(C)2002-200651BoardCo,.Ltd.
Support:
http:
//www.51B
Version:
01.00.03
flash:
base=0x00000000,size=0x02000000
Ethportcanaccess,thebaseaddressis0x0c000300
EthchipisLAN91C111
autobootinprogress,pressanykeytostop.
Bootdelay2seconds.
autobootaborted.
============================OperationMenu==========================
[0]ComanndLinemode
[1]Viewcurrentconfiguration
[2]Bootp
[3]DownloaddefaultKernel(zImage)
[4]FlashKernel
[5]DownloaddefaultFilesystem(rootfs270.img)
[6]FlashFilesystem
[7]Bootsystem
[8]Rebootsystem
[9]Resettofactorydefaultconfiguration
[a]SetdefaultKernelfilenameandFilesystemfilename
[b]Setbootdelaytime
[c]Help(togetalistofcommands)
======================================================================
Pleaseenteryourselection:
刚开始就列出了处理器的型号以及bootloader型号以及版本,以及下载的网站和端口的状态地址等。
功能“1”表示查看当前的状态,如本机和主机的地址,下载的内核名,文件系统的名等等。
功能“0”表示命令行方式,出现提示符“51Board>”进入命令设置菜单,用set可以改变设置,如“setmyipaddr”、“setdestipaddr”分别设置本机和主机的IP地址,“setfilesname”可以改变下载的文件系统的名称等。
“set”的其他功能完成将tftp目录里的文件下载到目录机的内存中。
设置完毕之后,输入“quit”退出命令行方式。
功能“3”下载内核
功能“4”用于将下载的内核烧写进FLASH
功能“5”下载文件系统
功能“6”用于将下载的文件系统烧写进FLASH
功能“7”用于启动系统
功能“8”用于重启系统
功能“9”恢复出厂设置值
功能“a”改变下载的内核和文件系统的名称
功能“b”设定延迟时间
功能“c”帮助
3、在确定IP地址正确而且在确定tftpboot中内核映像名与设置的一致后,选择功能“3”,下载内核,如下
tftpstart...
myipaddress:
192.168.208.143
serveripaddress:
192.168.208.43
filename:
zImage
storeat:
0xA0008000
loadingstart...
1116336(0x001108B0)bytesreceived.done.
表示下载完成
4、选择功能“7”,系统启动,在启动之后,用root来登录
5、在登录之后,输入命令ifconfigeth0192.168.208.143,设置IP地址,然后再输入命令mount192.168.208.43:
/exp/mnt,这是进行挂载,用mount命令将主机的/exp的目录挂在/mnt目录下,这样,当访问开发板的/mnt目录时,访问的就是服务器上的/exp目录的内容。
6、编写一个小程序,在开发板上运行。
如下hello.c
#include
Intmain()
{
Printf(Hello,word!
\n");
Return0;
}
在两个机子上运行,它们的编译方式是不一样的
在主机上如gcc-ohellohello.c
在开发板上arm-linux-gcc-ohellohello.c
还可以用Makefile来编译,先编好Makefile,然后直接makehello.c就行了。
在/exp目录下编译完之后,就可以在开发板上的/mnt目录下输入./hello就可以运行了。
六、嵌入式系统下软件开发的一般流程
配置编译文件系统
配置编译内核
设置minicom
进行挂载
进入bootloarder界面下载映像
编译程序运行
第3章Linux内核配置和编译
1、实验目的
1、了解linux内核源代码的目录结构及各目录的相关内容
2、理解linux内核各配置选项内容和作用
3、把握linux内核的编译过程
2、实验内容
配置一个完整的内核(其中图片改成自己的),编译并通过bootloarder加载引导
3、内核配置选项
Loadablemodulesupport--->
[*]Enableloadablemodulesupport
可加载模块支持,其中“Enableloadablemodulesupport”选项可让内核支持模块;“Moduleunloading”选项可以让用户卸载不再使用的模块,如果不选的话用户将不能卸载任何模块。
SystemType--->
(PXA270/250/210-based)ARMsystemtype
[*]WorkaroundforXScalecacheerrata(seehelp)
---ProcessorFeatures
系统选型,根据开发对象选择
Generalsetup--->
[*]SupportCPUclockchange(EXPERIMENTAL)
[*]SupportDVM/DFM(EXPERIMENTAL)
[*]Supportforhot-pluggabledevices
PCMCIA/CardBussupport--->
MMC/SDdevicedrivers--->
[*]Networkingsupport
[*]SystemVIPC
[*]Sysctlsupport
<*>NWFPEmathemulation
<*>KernelsupportforELFbinaries
[*]PowerManagementsupport(experimental)
"console=ttyS0,115200mem=64Mroot=1F02rw"
[*]TimerandCPUusageLEDs
[*]TimerLED
[*]CPUusageLED
[*]Kernel-modealignmenttraphandler
Generalsetup表示通用配置。
这里可设置内核对虚拟内存的支持和为SystemV的进程提供通信机制;通过“Sysctlsupport”选项可以动态地更改一些核心参数与变量,而不需要重新启动系统。
MemoryTechnologyDevices(MTD)--->
<*>MemoryTechnologyDevice(MTD)support
<*>MTDpartitioningsupport
<*>DirectchardeviceaccesstoMTDdevices
<*>CachingblockdeviceaccesstoMTDdevices
存储器技术设备
Blockdevices--->
<*>RAMdisksupport
(8192)DefaultRAMdisksize
[*]Perpartitionstatisticsin/proc/partitions
块存储设备
Networkingoptions--->
<*>Packetsocket
<*>Unixdomainsockets
[*]TCP/IPnetworking
[*]IP:
kernellevelautoconfiguration
[*]IP:
DHCPsupport
[*]IP:
BOOTPsupport
[*]IP:
RARPsupport
网络配置
Networkdevicesupport--->
[*]Networkdevicesupport
网络设备驱动
Characterdevices--->
[*]Virtualterminal
[*]Supportforconsoleonvirtualterminal
<*>Standard/generic(8250/16550andcompatibleUARTs)serialsupport
[*]Supportforconsoleonserialport
Serialdrivers--->
[*]Unix98PTYsupport
字符设备驱动
Filesystems--->
<*>Ext3journallingfilesystemsupport
<*>DOSFATfssupport
<*>VFAT(Windows-95)fssupport
(EXPERIMENTAL)
[*]/procfilesystemsupport
[*]/dev/ptsfilesystemforUnix98PTYs
<*>Secondextendedfssupport
文件系统,一般需要DOSFAT(FAT16、FAT32)、VFAT,EXT3、NTFS和ISO9660(标准光盘使用的文件系统)支持。
Consoledrivers--->Frame-buffersupport--->[*]Supportforframebufferdevices(EXPERIMENTAL)
<*>PXALCDsupport
终端设备驱动配置
Sound--->
<*>Soundsupport
<*>IntelPXA27xAC97audio
声音支持和声卡驱动
4、内核配置的基本结构
1、Makefile
2、配置文件config.in
3、配置工具
4、规则文件
五、实验操作
1、先在计算机中找出源码目录/usr/src/linux-2.4.21-51Board_EDR,把linux内核文件拷到自己的目录下
2、打开终端,到自己的目录下开始配置内核。
配置内核有好几个命令,如:
makeconfig基于字符界面,makemenuconfig基于ncurses界面,makexconfig基于X-Windows图形界面。
在本实验中可以只配置基本的选项,使内核只要能够达到我们使用的要求就行了。
如SystemType,Generalsetup,Networkingoptions,Characterdevices,Filesystems等等。
本实验中用makemenuconfig命令。
如果“makemenuconfig”命令失败,很可能是ncurses库没有安装。
3、输入makeclean命令,这是为了将以前构核产生的所有目标文件、模块文件、核心以及一些临时文件清除,不产生任何新的文件。
这样可以减小内核的容量,节省一定的存储空间。
而且下载更快。
配置后的信息保存在执行时产生的文件.config中,原来的配置信息在.config.old中。
4、用displayarch/arm/linux_logo.ppm命令就可以查看图片,然后只要用自己的图片替换原来的图片就可以了,但是格式和名字要和原来一样,改变图片的格式可以用convert命令。
自己的图片容量不要太大,否则使生成的内核映像会很大,不利于实验。
5、输入命令makedep,这是建立依赖关系,产生两个文件“.depend”和“.hdepend”。
其中“.hdepend”表示每个.h文件都包含其他哪些嵌入文件,“.depend”文件在每个会产生目标文件.o文件的目录下均存在。
6、命令make,编译内核,通过各目录的Makefile文件进行,产生一大堆目录文件,其中产生的vmlinux文件就是所构的核心,并有映像文件system.map产生。
实验时可能会出现一些错误,如Makefile文件中的路径出错,一些文件的权限问题,改变一个文件的权限用chmod755文件名命令。
7、输入makezImage,在make的基础上产生压缩的核心映像文件。
之后,只要把产生的映像文件zImage拷到tftp服务器目录下。
8、像第二章一样,下载内核,启动系统,那么在实验板将看到自己的图片。
第4章嵌入式文件系统的构建
1、实验目的
1、了解嵌入式操作系统中文件系统的类型和作用
2、了解JFFS2文件系统的优点及其在嵌入式系统中的作用
3、掌握利用BusyBox软件制作嵌入式文件系统的方法
4、掌握嵌入式Linux文件系统的挂载过程
2、实验内容
1、根据系统提供的BusyBox源代码,编译BusyBox,写出具体编译过程。
2、利用配置文件系统实例,配置一个适合开发板的文件系统,写出需要配置文件的功能。
3、利用mkfs.jffs2制作文件系统映像,并将文件系统映像下载到开发板,写出系统启动后的结果。
3、linux文件系统的类型
1、Romfs文件系统
优点:
Romfs是一种相对简单、占用空间较少的文件系统。
Romfs是只读的文件系统,使用顺序存储方式,所有数据,包括目录,链接等都按目录树的顺序存放。
通常用在嵌入式设备中作为根文件系统,或者用于保存bootloader以便引导系统启动。
缺点:
禁止写操作,因此系统同时需要虚拟盘(RAMDISK)支持临时文件和数据文件的存储。
2、Ext2fs文件系统
优点:
Ext2fs支持达4TB的内存。
Ext2fs文件名称最长可以到1012个字符。
当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择1024、2048和4096字节)。
Ext2fs实现快速符号链接:
不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点(inode)表中。
这使性能有所提高,特别是在速度上
然而,当在嵌入式设备中使用Ext2fs时,它有一些缺点:
Ext2fs是为像IDE设备那样的块设备设计的,这些设备的逻辑块大小是512字节,1K字节等这样的倍数。
这不太适合于扇区大小因设备不同而不同的闪存设备;
Ext2fs文件系统并没有提供对基于扇区的擦除/写操作的良好管理。
在Ext2fs中,为了在一个扇区中擦除单个字节,必须将整个扇区复制到RAM,然后擦除,然后重写入。
考虑到闪存设备具有有限的擦除寿命(大约能进行100,000次擦除),在此之后就不能使用它们,所以这不是一个特别好的方法;
在出现电源故障时,Ext2fs不是防崩溃的;
Ext2fs文件系统不支持损耗平衡,因此缩短了扇区/闪存的寿命(损耗平衡确保将地址范围的不同区域轮流用于写和/或擦除操作以延长闪存设备的寿命);
Ext2fs没有特别完美的扇区管理,这使设计块驱动程序十分困难。
3、NFS文件系统
优点:
集中存储数据,节省空间
缺点:
安全性较差
4、JFFS2文件系统
优点:
支持数据压缩;提供“损耗平衡”支持;支持多种节点类型;提高了对闪存的利用率,降低了内存的消耗。
缺点:
用在嵌入式linux根文件系统时存在安装时间较长、容错机制有待开发以及对NandFlash支持不太理想等问题。
四、实验操作
1、把busybox源码/exp/busybox-1.00-pre5.tar.gz拷到自己的目录下,用命令tarjxfbusybox-1.00-pre5.tar.bz2在自己的目录下对busybox进行解压,解压成功后,在目录下有未编译安装的busybox文件。
2、进入解压的目录下,输入makemenuconfig,进行配置,配置的选项如下
GeneralConfiguration--->[*]Supportfordevfs
这是支持devfs文件系统
BuildOptions--->
[*]BuildBusyBoxasastaticbinary(nosharedlibs)
[*]DoyouwanttobuildBusyBoxwithaCrossCompiler?
(/usr/local/arm-linux/bin/arm-linux-)CrossCompilerprefix
这是选择静态库编译方式,并设定交叉编译器
Coreutils--->
[*]cat
[*]cp
[*]ls
[*]Enablefiletypingoptions(-pand-F)
[*]Enablesymlinksdereferencing(-L)
[*]Enablerecursion(-R)
[*]Sortthefilenames
[*]Showfiletimestamps
[*]Showusername/groupnames
[*]Usecolortoidentifyfiletypes
[*]mkdir
[*]rm
[*]rmdir
[*]stty
[*]Calculateterminal&columnwidths---Commonoptionsfordf,du,ls
这是系统核心工具包,里面是一些基本命令
DebianUtilities--->[*]start-stop-daemon
Editors--->
[*]vi
[*]Enable":
"coloncommands(no"ex"mode)
[*]Enableyank/putcommandsandmarkcmds
[*]Enablesearchandreplacecmds
[*]Catchsignals
[*]Rememberpreviouscmdand"."cmd
[*]Enable-Roptionand"view"mode
[*]Enableset-ableoptions,aiicshowmatch
[*]Supportfor:
set
[*]Handlewindowresize
[*]Optimizecursormovement
这是编译程序等用的命令
InitUtilities--->
[*]init
[*]Supportreadinganinittabfile?
[*]halt
[*]poweroff
[*]reboot
[*]mesg
启动设置
Login/PasswordManagementUtilities--->[*]getty
LinuxModuleUtilities--->
[*]insmod
[*]Supportversion2.1.xto2.4.xLinuxkernels
[*]rmmod
[*]Supporttaintedmodulecheckingwithnewkernels
模块设置
NetworkingUtilities--->
[*]hostname
[*]ifconfig
[*]Enablestatu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入 系统 linux 基本 实验