嵌入式Linux实验大纲.docx
- 文档编号:10213116
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:42
- 大小:3.38MB
嵌入式Linux实验大纲.docx
《嵌入式Linux实验大纲.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux实验大纲.docx(42页珍藏版)》请在冰豆网上搜索。
嵌入式Linux实验大纲
《Linux嵌入式系统开发》实验教学大纲
实验学时:
32
实验个数:
8
实验学分:
1
课程性质:
专业选修课
适用专业:
计算机科学与技术
教材及参考书:
1.《嵌入式Linux系统开发标准教程》,华清远见嵌入式培训中心著,人民邮电出版社,2009-3
2.《ARM嵌入式Linux系统开发技术详解》,杨水清,电子工业出版社,2008-11
大纲执笔人:
张莹
大纲审定人:
郭涛
一、实验课的性质与任务
本课程实验大纲是面向计算机科学与技术专业学生开设的《Linux嵌入式系统开发》(以pc机、xsbase270实验平台为开发环境)实验课计划指导大纲,是依据《Linux嵌入式系统开发》课程教学计划指导大纲编制。
本课程主要讲述了在上位机PC、目标机xsbase270实验平台所共同搭建的交叉编译开发环境中,利用C语言、QT图形库进行简单的Linux嵌入式系统设计与开发,结合该课程教学计划大纲的相应内容,设计了8个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。
使学生在实验过程中掌握Linux嵌入式系统开发的基本原理和流程,培养学生规范设计、熟练实现嵌入式系统的能力,为后续相关课程实训奠定基础。
二、实验课程目的与要求
1.实验目的:
Linux嵌入式系统开发实验课的开设,是为了使学生更好地理解和掌握Linux操作系统,并在此基础上熟悉嵌入式系统开发的基本流程,灵活运用网络、busybox等相关工具顺利完成交叉编译环境搭建、操作系统移植、文件系统定制和qt图形库编程等阶段性任务,强化嵌入式系统设计、开发能力。
2.实验要求:
(1)在实验中,要求学生个人独立思考,严格遵循实验手册进行实验,并给出电子版实验报告存档。
(2)本课程的学习过程是一个综合训练过程,要求学生在完成实验过程中,不仅应牢固记忆每个操作步骤,更应利用网络等多种渠道理解每个步骤在本阶段任务中发挥的重要作用。
(3)在实验中,提倡学生之间、师生之间相互交流,以达到畅所欲言、博采众长的目的。
三、实验项目及内容提要
《Linux嵌入式系统开发》实验课程
序号
实验项目编号
实验名称
学时
必做
选做
学分数
实验类型
内容提要
基本操作
验证
综合
设计
1
一
Linux开发平台的构建与配置
4
√
√
熟悉Linux嵌入式系统工具安装。
2
二
Linux嵌入式系统开发的交叉编译环境配置
4
√
√
熟悉Linux嵌入式系统开发环境配置。
3
三
Bootloader实验
4
√
√
熟悉Linux嵌入式系统bootloader实现原理。
4
四
内核编译实验
4
√
√
熟悉Linux嵌入式系统内核移植过程。
5
五
文件系统制作实验
4
√
√
熟悉Linux嵌入式系统根文件制作。
6
六
GUI应用程序设计实验
4
√
√
熟悉QT环境下应用程序开发。
7
七
驱动程序实验
4
√
√
熟悉Linux嵌入式系统驱动加载过程和编写。
8
八
QT移植实验
4
√
√
熟悉Linux嵌入式系统qt编译过程
四、实验内容安排:
实验一Linux开发平台的构建与配置
(验证型实验4学时)
1.目的要求:
(1)掌握Linux2.4-28嵌入式系统开发环境的搭建过程。
(2)掌握各个软件在安装时候的细节。
(3)掌握各个软件的使用方法。
2.实验内容
(1)VMwareWorkstation5.5.3build-34658安装
●将准备好的VMwareWorkstation5.5.3build-34658软件放入到光驱,打开软件,可以看到如下【图1】所示的界面,双击setup.exe,开始安装VMwareWorkstation5.5.3build-34658。
●双击InstallVisualStudio2005之后,我们可以看到如下界面,在这里我们等待其完毕跳过即可。
●选择IacceptthetermsofthelicenseAgreement选项,单击Next下一步。
●在如下【图4】当中,选择要VisualStudio.Net2005安装的目录。
●选择完成之后,单击Install,弹出如下【图5】所示的安装过程界面。
●安装完成之后,弹出如下【图6】所示的成功界面.
(2)Linux虚拟机的配置
●Linux虚拟机的新建
●Linux虚拟机的串口、并口和光驱配置
(3)Linux2.4-28内核安装
●空间大小分配
●工作站模式
●分区
●不能设置防火墙
(4)VMwareTools安装
●Linux虚拟机的共享文件夹配置
●
开启Linux虚拟机,并安装VMware_tools服务包,见下图。
●解压安装包到/tmp下。
●运行:
vmware-config-tools.pl可执行文件。
●观察在/mnt下是否出现hgfs文件夹,如果有,则表示共享文件夹成功。
(5)SourceInsight3.5安装
(6)BeyondCompare安装
3.主要仪器设备及软件:
(1)PC
(2)XSBase270ARM实验开发平台一套
实验二Linux嵌入式系统开发的交叉编译环境配置
(验证型实验4学时)
1.目的要求:
(1)熟练掌握在Linux系统下,配置minicom串口通信参数的过程,并能利用minicom进行文件传输。
(2)熟练掌握在Linux系统下,配置Bootp、tftp网络服务的过程,并能启动这些服务完成Linux嵌入式系统开发的网络环境搭建。
(3)掌握在Linux系统下,ntfs、ftp协议的文件传输。
(4)掌握在Linux系统下,配置交叉编译环境。
2.实验内容
(1)minicom串口通信实验
●minicom配置
⏹在终端执行minicom-s命令
⏹选择serialportsetup,按照“选择Savesetupasdfl”进行设置。
⏹选择Exit即可启动minicom。
⏹重启目标板——XSBase270,可以看到目标板启动信息。
●minicom的文件传输,见下图。
⏹在与目标正确连接后,进入[root@51board~],按下CTRL+A键后,再按Z键,系统调出minicom的命令选项菜单
⏹当向目标板上传文件时,按S键,系统弹出串口通信协议选项,利用方向键选中zmodem传输协议,按回车键,进入文件选择菜单。
⏹文件选择菜单弹出后,利用空格键选中需要上传的文件,一次可以选择多个文件,选好需要传输的文件后按回车键,便可以进行文件数据传输。
当数据传输完毕,系统会弹出传输完毕提示菜单。
(2)Linux嵌入式系统开发的网络环境搭建实验
●在PC上,配置网络地址
⏹打开“网络配置”
⏹配置静态IP、子网掩码、网关等
●BOOTP配置
⏹安装bootp-2.4.3-7.i386软件包
rpm-ivhbootp-2.4.3-7.i386.rpm
⏹在/etc/xinetd.d/目录下建立bootp文件,文件内容如下:
servicebootps
{
disable=no
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/bootpd
}
⏹在/etc/目录下建立bootptab文件,内容如下
test:
\
ht=1:
\
ha=0x123456789a00:
\
#ha=0x123456789999:
\
ip=192.168.0.50:
\
sm=255.255.255.0
⏹重启xinitd
/etc/rc.d/init.d/xinetdrestart
●TFTP配置
⏹安装tftp-server-0.17-9.i386软件包
rpm-ivhtftp-server-0.17-9.i386.rpm
⏹修改/etc/xinetd.d/tftp文件,内容如下:
servicetftp
{
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/tftpboot
server_args+=-s/odm/tftpboot
disable=no
}
●在根目录下建立/tftpboot文件夹,将要下载的文件放在该目录中即可。
(3)PC与目标机之间通过ftp进行文件传输实验
●在目标板的调试终端输入ftp命令
[root@51Board~]$ftp192.168.0.100
●输入用户名和密码
用户名:
anonymous,无需输入密码。
如果用户需要采用其他的用户名登陆,必须修改(脚本)
●当用户名和密码都正确后,在目标板终端显示登陆成功信息和ftp提示符。
●ftp提示符下利用cd命令转到主机的pub目录下,利用get命令上传需要传输的文件。
假设需要下载到目标板文件为facedect(确保文件保存在主机的/tftp下)
ftp>getfacedect
●文件传输完毕后,ftp输出成功信息和被传输文件的字节数
(4)PC与目标机之间通过ntfs共享文件的实验
●主机(host)的设置
⏹在/mnt/下建立nfs目录
⏹在/etc/exports文件中增加如下内容
/mnt/nfs(rw,no_root_squash)
⏹重启nfs
/etc/rc.d/init.d/nfsrestart
●目标板的设置
⏹在/mnt下建立nfs目录,用来挂载主机上nfs目录
⏹端口映射
portmap
⏹挂载主机上nfs目录
⏹mount-tnfs主机ip地址:
主机文件夹目标板文件夹
即:
mount–tnfs127.0.0.1:
/mnt/nfs/mnt/nfs
(5)配置交叉编译环境实验
●将arm-linux.tar.gz拷贝到/opt下
●解压arm-linux.tar.gz
●修改/root/.bash_profile
●保存、退出.bash_profile
●使其初始化生效
source.bash_profile
●查看是否将交叉编译工具配置成功
3.主要仪器设备及软件:
(1)PC
(2)XSBase270ARM实验开发平台一套
实验三Bootloader实验
(验证型实验4学时)
1.目的要求:
(1)熟练掌握Bootloader的编译。
(2)熟练掌握Bootloader的下载。
(3)熟练掌握Bootloader的使用。
(4)了解BootLoader的基本概念、框架结构和引导操作系统的过程
2.实验内容
(1)Bootloader程序的编译
●为了编译Bootloader程序,需要事先在目标板上安装交叉编译工具Toolchain。
●利用tar命令解压Boot-XSBase270.tar.gz。
[root@localhostBootLoader]$tarzxvfBoot-XSBase270.tar.gz
●利用上述命令解压后,bootloader源代码解压到当前目录中Boot-XSBase270文件夹中。
●在解压的目录Boot-XSBase270里进行make编译。
[root@localhostBootLoader]$cdBoot-XSBase270
[root@localhostBoot-XSBase270]$make
●编译完成后,在当前目录下会生成bootloader映象文件boot。
(2)Bootloader程序的下载(即通过JTAG烧写后,实现目标板断电后可自启动)
●在pc上,安装JTAG驱动。
拷贝giveio.sys到c:
\windows\system32\drivers目录中。
控制面板——添加新硬件。
●利用tar命令解压jflashmm.tar.gz。
[root@localhostBootLoader]$tarzxvfjflashmm.tar.gz
●拷贝映像文件boot到Jflashmm目录
[root@localhostBoot-XSBase270]$cpboot/root/EmdoorARM/Jflash/Jflash-XSBase270/
[root@localhostBoot-XSBase270]$cd/root/EmdoorARM/Jflash/Jflash-XSBase270
●连接JTAG下载器,利用脚本文件进行烧写
[root@localhostBoot-XSBase270]$./jflashmmboot
(3)Bootloader程序的使用
●help:
帮助命令。
●load:
把存放在FLASH中的映像文件拷贝到SDRAM中。
●bootp:
获取HOST主机发送的BOOTP的数据包,解析BOOTP的数据包,获取本机的IP地址。
●tftp:
通过以太网下载主机的数据或文件到目标平台的SDRAM。
tftp文件名{addess/loader/kernel/root/ramdisk}
参数
说明
文件名
主机平台需要传输的文件名
loader
把传输到目标平台的文件放置在SDRAM的loader区域
kernel
把传输到目标平台的文件放置在SDRAM的kernel区域
root
把传输到目标平台的文件放置在SDRAM的root区域
ramdisk
把传输到目标平台的文件放置在SDRAM的ramdisk区域
address
把传输到目标平台的文件放置在SDRAM的指定地址
●flash:
把SDRAM中的数据烧录到FLASH中特定的地址。
flash{loader/kernel/root/ramdisk}
参数
说明
loader
把SDRAM中的数据烧录到FLASH中的loader区域
kernel
把SDRAM中的数据烧录到FALSH中的kernel区域
root
把SDRAM中的数据烧录到FLASH中的root区域
ramdisk
把SDRAM中的数据烧录到FLASH中的ramdisk的区域
●boot:
在SDRAM中运行kernel,通过参数中指定的地址运行kernel。
boot[addr],其中addr表示内核镜像文件的地址。
●erase:
擦除FALSH中的相应区域。
erase{loader/kernel/ramdisk/root}
参数
说明
loader
擦除FALSH中loder区域
kernel
擦除FLASH中的kernel区域
root
擦除FLASH中的root区域
ramdisk
擦除FLASH中的ramdisk区域
●set:
设置IP地址,MAC地址以及autoboot参数。
setName[myipaddr][destipaddr][myhaddr][autoboot]Value[ip][macaddress][loadkernelboot]
●ping:
检查目标平台和主机平台的网络连接。
●reboot:
软件复位。
3.主要仪器设备及软件:
(1)PC
(2)XSBase270ARM实验开发平台一套
实验四内核编译实验
(验证型实验4学时)
1.目的要求:
(1)了解Linux内核源代码的目录结构及各目录的相关内容。
(2)了解Linux内核各配置选项内容和作用。
(3)熟练掌握Linux2.4-26内核的编译过程。
(4)理解Linux2.4-26内核配置文件Makefile、config.in的作用。
2.实验内容
(1)Linux内核源代码的目录介绍
●arch:
所有与体系结构相关的内核代码。
其中包括PXA270芯片的内核代码。
●include:
编译内核所需要的头文件。
与ARM相关的头文件在当前子目录asm-arm中。
●init:
内核的初始化代码,其中所包含main.c和Version.c文件是研究Linux内核的起点。
●mm:
所有独立于CPU体系结构的内存管理代码,如页式存储管理内存的分配和释放等。
与ARM体系结构相关的代码在arch/arm/mm中。
●Kernel:
主要的内核代码,此目录下的文件实现大多数Linux的内核函数,其中最重要的文件是sched.c。
与Xscale体系结构相关的代码在arch/arm-pxa/kernel目录中。
●Drives:
存放系统所有的设备驱动程序,每种驱动程序各占一个子目录。
⏹/block:
块设备驱动程序。
块设备包括IDE和scsi设备。
⏹/char:
字符设备驱动程序。
如串口、鼠标等。
⏹/cdrom:
包含Linux所有的CD-ROM代码。
⏹/pci:
PCI卡驱动程序代码,包含PCI子系统映射和初始化代码等。
⏹/scsi:
包含所有的SCSI代码以及Linux所支持的所有的SCSI设备驱动程序代码。
⏹/net:
网络设备驱动程序。
⏹/sound:
声卡设备驱动程序。
●Lib:
放置内核的库代码;
●net:
存放内核与网络的相关代码;
●ipc:
存放内核进程通信的代码;
●fs:
存放所有文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统,如JFFS2;
●scripts:
存放用于配置内核的脚本文件等。
每个目录下一般都有depend文件和一个Makefile文件,他们是编译时使用的辅助文件,仔细阅读这两个文件对弄清各个文件之间的相互依托关系很有帮助。
(2)Linux2.4-26内核的编译过程
●makemrproper:
删除所有以前在构核过程所产生的所有文件。
●makemenuconfig:
内核配置。
步骤1Codematurityleveloptions--->[*]Promprtfordevelopmentand/orincompleteCode/drivers
步骤2Loadablemodulesupport--->[*]EnableLoadablemoduLeSupport
步骤3SystemType--->(PXA270/210-based)ARMsystemtyp
步骤4Generalsetup
步骤5MemoryTechnologyDevices(MTD)
a)RAM/ROM/Flashchipdrivers
b)Mappingdriversforchipaccess
步骤6Blockdevices
步骤7Networkingoptions
步骤8Networkdevicesupport
步骤9IrDA(infrared)support
步骤10Characterdevices
步骤11Filesystems
步骤12Consoledrivers--->Frame-buffersupport
步骤13Sound
●makedep:
寻找依存关系。
●makezImage:
产生压缩的核心映像文件zImage,并保存在源代码的arch/arm/boot/目录下。
(2)Linux2.4-26内核的配置文件
●Makefile:
分布在Linux内核源码中的Makefile定义了Linux内核的编译规则,其中,顶层Makefile是整个内核配置、编译的总体控制文件。
●config.in:
提供用户配置选择的功能;
●配置工具:
包括对配置脚本中使用的配置命令进行解释的配置命令解释器和配置用户界面(基于字符界面:
makeconfig;基于Ncurses图形界面:
makemenuconfig;基于xWindows图形界面:
makexconfig)。
●Rules.make:
规则文件,被所有的Makefile使用。
3.主要仪器设备及软件:
(1)PC
(2)XSBase270ARM实验开发平台一套
实验五文件系统制作实验
(验证型实验4学时)
1.目的要求:
(1)了解嵌入式操作系统中文件系统的类型和作用。
(2)了解JFFS2文件系统的优点及其在嵌入式系统中的作用。
(3)熟练掌握利用BusyBox软件制作嵌入式文件系统的方法、流程。
(4)熟练掌握嵌入式Linux文件系统的挂载过程。
2.实验内容
(1)busybox文件制作工具的编译
●下载busybox-1.00-pre05.tar.bz2,并把它放在/tmp目录下并进行解压缩。
●进入busybox的配置界面。
●BuildOption菜单下,设置
(1)[*]BuildBusyBoxasastaticbinary(nosharedlibs);
(2)交叉编译器arm-linux-gcc的路径。
●在InstallationOptions配置中输入文件系统的安装路径。
●选择目标板Linux操作系统所需要使用的命令。
●存盘后,退出。
●配置完毕,对busybox进行编译
[root@Filesystem]$makedep
[root@Filesystem]$makeinstall
(2)配置文件系统
●在_install下建立etc目录。
●在etc下分别建立rc,inittab,motd三个文件。
●在rc文件中,添加如下内容。
#!
/bin/sh
mount-tprocproc/proc
cat/etc/motd
●用chmod命令改变rc文件属性
[root@localhostetc]$chmod755rc
●在inittab文件中,添加如下内容。
#/etc/inittabinit(8)configurationforBusyBox
#
#Copyright(C)1999-2003byErikAndersen
#
#
:
:
sysinit:
/etc/rc.d/rcS
:
:
askfirst:
-/bin/sh
:
:
restart:
/sbin/init
:
:
ctrlaltdel:
/sbin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 Linux 实验 大纲