首页 嵌入式系统实验指导书

嵌入式系统实验指导书

举报
开通vip

嵌入式系统实验指导书福建农林大学金山学院 福建农林大学计算机与信息学院 实验指导书 课程名称: 嵌入式系统概论 适用专业: 电子信息工程2008级 2010~2011学年上学期 目录 TOC \o "1-3" \h \z \u 实验一 搭建实验环境 3 一、实验目的 3 二、实验内容 3 三、实验设备 3 四、预备知识 3 五、实验原理及说明 3 六、实验步骤 4 6.1 连接宿主PC机与PXA270-EP目标板 4 6.2配置宿主 PC机端的minicom 6 6.3 配置宿主 PC机端的TFTP服务,并开通此服务 8 6.4 配置...

嵌入式系统实验指导书
福建农林大学金山学院 福建农林大学计算机与信息学院 实验指导书 课程名称: 嵌入式系统概论 适用专业: 电子信息工程2008级 2010~2011学年上学期 目录 TOC \o "1-3" \h \z \u 实验一 搭建实验环境 3 一、实验目的 3 二、实验内容 3 三、实验设备 3 四、预备知识 3 五、实验原理及 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 3 六、实验步骤 4 6.1 连接宿主PC机与PXA270-EP目标板 4 6.2配置宿主 PC机端的minicom 6 6.3 配置宿主 PC机端的TFTP服务,并开通此服务 8 6.4 配置宿主PC机端的NFS 服务,并开通此服务。 11 实验二 HelloWorld 14 一、实验目的 14 二、实验内容 14 三、实验设备 14 四、预备知识 14 五、实验步骤 14 实验三 编译Bootloader 21 一、实验目的 21 二、实验内容 21 三、实验设备 21 四、预备知识 21 五、实验步骤 21 实验四 编译Linux内核 23 一、实验目的 23 二、实验内容 23 三、实验设备 23 四、预备知识 23 五、实验步骤 23 实验五 制作文件系统、烧写各部分到目标板 29 一、实验目的 29 二、实验内容 29 三、实验设备 29 四、预备知识 29 五、实验原理及说明 29 六、实验步骤 31 6.1制作文件系统 31 6.2烧写各部分到目标板 32 实验一 搭建实验环境 一、实验目的 1.​ 正确连接宿主PC机与PXA270-EP目标板。 2.​ 建立宿主 PC机端的开发环境。 3.​ 配置宿主 PC机端的minicom,使宿主PC机与PXA270-EP目标板可以通过串口通讯。 4.​ 配置宿主 PC机端的TFTP服务,并开通此服务。 5.​ 配置宿主P机端的NFS 服务,并开通此服务。 二、实验内容 1.​ 参照本实验指导书所列的步骤,一步一步地完成宿主PC机与PXA270-EP目标板的连接。 2.​ 参照本实验指导书给出的步骤,一步一步地完成宿主机端开发环境的安装与配置。 3.​ 参照本实验指导书给出的步骤,一步一步地完成minicom的配置。 4.​ 参照本实验指导书给出的步骤,一步一步地完成TFTP服务的配置。 5.​ 参照本实验指导书给出的步骤,一步一步地完成NFS服务的配置。 三、实验设备 1.​ 一套PXA270EP嵌入式实验箱。 2.​ 安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。 四、预备知识 1.​ 串口(COM1)、并口(LTP1)、网口(Ethernet)的基本知识。 2.​ Linux 基本命令。 五、实验原理及说明 绝大多数的Linux 软件开发都是以native 方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板上系统)运行开发工具和调试工具。通常嵌入式系统软件的开发采用交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板,如图1-1。 图1-1 开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。)然后把可执行文件下载到目标机上运行。调试时的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持做出选择。宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD 处理器, 而目标板可以为SAMSUNG S3C2410或其它处理器,本系统是PXA270。GNU 编译器提供这样的功能,在编译编译器时,可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,对于嵌入式Linux,宿主机上的操作系统一般要求为Redhat Linux,在此,我们推荐使用Redhat 9.0作为宿主机(开发主机)的操作系统。需要宿主机器在硬件上具有 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 串口,并口,网口;软件上具有目标板的Linux内核、ramdisk文件系统映像以及bootloader。软件的更新通常使用串口或网口,最初的bootloader 烧写是通过并口进行的。 六、实验步骤 6.1 连接宿主PC机与PXA270-EP目标板 1.​ 将电源线分别连接PXA270-EP目标板与电源插座。 2.​ 用一根串口线将宿主PC 机的串口与PX270 目标板的串口0(UART0)相连,如图1-2。 3.​ 用一根交叉对接网线将宿主PC 机的网口与PX270 目标板的网口(NET)相连,如图1-3,图1-4。 4.​ 用JTAG-XSCALE 分别连接并口线和JTAG 下载线,然后将它们分别插到宿主PC机的并口LPT1 口和PXA270-EP目标板的CPU JTAG 插槽中(在音频接口的左侧)。在连接JTAG 下载线时,PXA270-EP目标板必须是断电状态。 图1-2 图1-3 图1-4 实验注意事项: 1.​ 当您不用JTAG 烧写BLOB 即BOOTLOADER 到PXA270-EP 目标板上时,就不需要做第4 步的连接步骤。前面的1、2、3步操作是在每次做实验之前必须连接好的。注意串口不要连错,是(UART 0)。请您看清目标板上的标注信息。 2.​ 请您不要热拔插JTAG 接口。一定在PXA270-EP目标板断电状态进行拔插JTAG。 6.2配置宿主 PC机端的minicom 1.​ 硬件连接: 按照实验一的步骤,连接宿主PC机和一台PXA270-EP目标板。 2.​ minicom很像Windows 下面的超级终端,我们利用minicom作为PXA270 目标板的终端显示窗口,所以在我们开始实验前,先需要正确的配置minicom,打开宿主机端一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,输入下列1 条命令: ① minicom –s 对于 minicom进行设置,如图1-5,图1-6: 图1-5 图1-6 输入上述1条命令后,进入configuration中,通过移动键盘上下键选择Serial port setup选项,回车后,单击键盘A键,输入/dev/ttyS0,回车,单击键盘E 键后,单击键盘I键和Q 键设置传输波特率为:115200 和8-N-1,单击回车后,单击键盘F 键,将硬件控制流设为:NO选项,单击回车后,通过移动键盘上下键选择Save setup as df1 选项,单击回车,完成设置,通过移动键盘上下键选择Exit 退回到minicom界面,如图1-7,而图1-8 则表示已经进入了minicom的终端窗口。 图1-7 图1-8 上图为minicom启动后的状态。注意,如果要退出minicom,可以先按CTRL+A键,再按X 键(注意并不是连续按这三个键),选择Yes 退出minicom。按CTRL+A再按Z为进入帮助。 实验注意事项: 1.​ 请您务必按照本实验指导书提供给您的参数来设置minicom,否则即便您正确连接了宿主PC机和PXA270-EP目标板,并给目标板通电后,在minicom中您也无法看到目标板的启动信息。 2.​ 您可以在宿主PC 机的终端窗口中,进入了minicom之后,再给PXA270-EP 目标板上电,这样您就可以清楚看见PXA270-EP目标板启动Linux系统的过程。 3.​ 每次只能打开一个minicom终端窗口。 6.3 配置宿主 PC机端的TFTP服务,并开通此服务 TFTP的全称是Trivial File Transfer Protocol,即简单文件传输协议。使用此服务传送文件时没有数据校验、密码验证,非常适合小型文件的传输。在通过TFTP 传送文件时,需要服务端和客户端,对于我们嵌入式系统来讲,服务端就是我们的宿主机,下面我们来对它进行配置: 1.​ 在宿主PC 机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,输入下列1 条命令执行,如图1-9: ① setup 图1-9 图1-10 进入设置界面后,通过键盘上下键选择System services,如图1-10,回车后,使用空格键将tftp一项选中(出现[*]表示选中),并使用空格键去掉ipchains 和iptables 两项服务(即去掉它们前面的*号),如图1-11。然后单击键盘Tab键选中Ok退出到设置主界面。 图1-11 然后通过键盘上下键选择Firewall configuration,使用键盘Tab键移到No firewall,并用空格键将其选中,如图1-12。然后单击键盘Tab 键选中Ok 退出到设置主界面。最后,再次单击键盘Tab键选中Quit退出整个设置界面。退出setup。 图1-12 2.​ 在上面同一个终端窗口中输入下列1条命令以启动TFTP 服务: ① service xinetd restart 上述1条命令执行完之后,会出现如下信息,如图1-13: Stopping xinetd : [ OK ] Starting xinetd : [ OK ] 图1-13 配置完成后,建议简单测试一下TFTP 服务器是否可用,即自己tftp 自己,在上面同一个终端窗口中,请您输入下列5 条命令,如图1-14: ① ifconfig eth0 192.168.0.100 up /*设置宿主PC机的IP地址*/ ② cp /pxa270_linux/IMAGE/zImage /tftpboot -arf /*在本地准备一个文件*/ ③ tftp 192.168.0.100 /*用tftp服务登陆本机*/ ④ tftp> get zImage /*使用tftp服务得到文件zImage*/ ⑤ tftp> q /*退出tftp服务*/ 图1-14 实验注意事项: 1.​ 当您每次重新启动宿主PC 机的Linux 操作系统时,务必请您通过ifconfig命令查看该机的IP地址,若其已经复位,请将其重新通过命令ifconfig eth0 192.168.0.100 up重置宿主PC机的IP地址。且请您务必将宿主PC机的IP地址设置为192.168.0.100。 2.​ 当您按照本实验指导书设置完tftp服务后,请您通过实际的传输文件来验证该服务能够正常工作。 3.​ 在用tftp 服务完成宿主PC 机与PXA270-EP 目标机之间的文件的传输时,您必须先将您要下载传输的文件拷贝到宿主PC机的/tftpboot目录中,否则将无法完成文件传输操作。 6.4 配置宿主PC机端的NFS 服务,并开通此服务。 NFS(Network File System)指网络文件系统,是Linux系统中经常使用的一种服务,NFS是一个RPC service,很像windows 中的文件共享服务。它的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 是为了在不同的系统间使用, 所以它的通讯协议设计与主机及作业系统无关。当使用者想用远端 档案 肢体残疾康复训练教师个人成长档案教师师德档案表人事档案装订标准员工三级安全教育档案 时只要用"mount"就可把remote 档案系统挂接在自己的档案系统之下,使得远端的档案在使用上和local 的档案没两样。 1.​ 在NFS服务中,宿主机(Servers)是被挂载(mount)端,为了远端客户机(Clients)(如:PXA270 目标板)可以访问宿主PC 机的文件,我们需要配置宿主机两方面内容:①打开NFS服务,②允许“指定用户”访问宿主PC机。在宿主PC 机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,输入下列1条命令打开宿主机的NFS服务,如图1-13,1-14: ① setup 进入设置界面后,通过键盘上下键选择System services,回车后,使用空格键将nfs 一项选中(出现[*]表示选中),并使用空格键去掉ipchains 和iptables 两项服务(即去掉它们前面的*号),如图1-15。然后单击键盘Tab 键选中Ok 退出, 再次单击键盘Tab 键选中Quit 退出整个设置界面。 图1-15 2.​ 在上面打开的同一个终端窗口(Terminal)中,修改根目录下etc目录中的exports文件,“指定用户”是通过编辑文件“exports”:请您输入下列2条命令允许“指定用户”访问宿主PC机: ① ifconfig eth0 192.168.0.100 up ② vi /etc/exports 这时,您将进入vi编辑器所显示的exports文件中。单击键盘A键,进入vi编辑器的输入状态(Insert), 通常这是一个空文件。通过键盘上下键移动光标到文件顶端,输入下列1 条语句,当然若不是空文件,则另起一行,请您输入下列语句,如图1-16: / 192.168.0.50(rw,insecure,no_root_squash,no_all_squash) 图1-16 上述1条语句输入完成后,单击冒号、Esc键进入vi编辑器的命令状态,然后单击键盘输入:wq,保存已编辑的exports文件并退出vi 编辑器。 3.​ 在上面打开的同一个终端窗口(Terminal)中,重新启动nfs服务,请您输入下列2条相同的命令: ① /etc/rc.d/init.d/nfs restart 若出现下列打印信息,则表示宿主PC机重新启动了nfs 服务,如图1-17。 Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] 图1-17 当我们的设置生效后,即表示:允许IP 地址为192.168.0.50 的机器访问您的IP 地址为192.168.0.100 的宿主PC 机的根目录(/)。当然我们可以更改这个IP 地址,以让不同的计算机访问宿主机的内容。现在NFS就可以使用了。 实验注意事项: 1.​ 当您每次重新启动宿主PC 机的Linux 操作系统时,务必请您通过ifconfig 命令查看该机的IP地址,若其已经复位,请将其重新通过命令ifconfig eth0 192.168.0.100 up重置宿主PC机的IP地址。否则挂载宿主PC机到PXA270-EP目标板的操作会不成功(即命令mount –o nolock 192.168.0.100:/ /mnt 将操作不成功)。 2.​ 在minicom中用命令ifconfig eth0 192.168.0.50 给PXA270 目标板设置IP 地址。宿主机和PXA270目标板的IP地址要设置在同一网段内的。否则他们将无法通信。 实验二 HelloWorld 一、实验目的 第一次正面接触嵌入式Linux 的开发,第一次编写嵌入式系统的应用程序,亲身实践一下开发的步骤。 二、实验内容 参照本实验指导书给出的步骤,一步一步地完成实验,编写、编译并运行HelloWorld程序。 三、实验设备 1、一套PXA270EP 嵌入式实验箱。 2、安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。 四、预备知识 要求有基本的C语言编程经验。 五、实验步骤 1.​ 硬件连接: 按照实验一的步骤,连接宿主PC机和一台PXA270-EP目标板。 2.​ 打开宿主PC机电源,进入Linux 操作系统。 3.​ 启动RedHat 9.0的图形界面,如图2-1,若您是以root 身份登陆在文本模式下,则输入命令startx启动图形界面。进入RedHat 9.0图形界面后,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口。 图2-1 4.​ 打开终端窗口如图2-2: 图2-2 5.​ 输入minicom然后回车,如图2-3,图2-4。minicom程序应该在以前的步骤中已经设置过了,设置应为115200 8N1 无流控。若您当前的minicom并不是我们所要求的参数,请您按照实验一重新设置minicom,否则宿主PC机与PXA270-EP目标板将无法通信。 图2-3 图2-4 6.​ 打开PXA270-EP目标板电源,按目标板上的RESET键,在minicom中应该会出现如下画面,如图2-5: 图 2-5 7.​ 在minicom终端窗口中,如图2-6,输入下列4条命令: ① root /* 输入root用户进入目标板的文件系统中*/ ②ifconfig eth0 192.168.0.50 up /*设置PXA270-EP目标板的IP地址*/ ③mount –o nolock 192.168.0.100: //mnt /*挂载宿主机根目录到目标板的/mnt 目录下*/ ④ cd /mnt /*进入目标板的/mnt目录下*/ 此时,先将该窗口最小化,在后面的第10操作步骤中还将会回到该窗口中进行操作。 图 2-6 8.​ 宿主机上打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,输入下列4条命令: ① cd /home ② mkdir HW ③ cd HW ④ vi HelloWorld.c /*请您输入程序2.1程序清单*/ 此时会显示一个空白的屏幕,这条命令的含义是,使用Vi 编辑器,对一个名叫HelloWorld.c的文件进行编辑,我们看到的空白窗口是对文件进行编辑的窗口,如图2-7。就像在Windows系统下面使用写字板等一样道理。(关于Vi 编辑器的使用方法可以参阅附录或其他资料) 图 2-7 在 vi 里面先单击键盘A 键,然后左下角会变成—INSERT—模式,表示进入了vi 的输入模式。输入程序的时候和其他编辑器是一样的,如图2-8。 图2-8 当输入程序完毕后,单击键盘Esc 键,然后按“:”(冒号)此时左下角会出现冒号然后输入“wq”最后按“Enter”确认存盘退出vi 编辑器,如图2-9。 图 2-9 9.​ 在上面同一个终端窗口中,输入下列2条命令交叉编译HelloWorld.c源程序,并查看生成的.o目标文件,如图2-10,图2-11: ① arm-linux-gcc –o HelloWorld HelloWorld.c ② ls 等到再次出现提示符,代表程序已经正确编译。如果此步出现错误信息,请查看错误信息,并且重新编辑原来的C文件,修改错误。直到正确编译。 图2-10 图2-11 此条命令的含义是,调用交叉编译器arm-linux-gcc编译HelloWorld.c文件。因为我们已经在实验一中加入了该命令的路径,所以在任何路径下,可以直接输入命令arm-linux-gcc编译源程序文件,参数-o 后边为目标文件,编译后生成HelloWorld,如果编译出错,将不产生此文件。此编译器arm-linux-gcc 生成的可执行文件HelloWorld 文件是不能在宿主PC 机上运行的,只能在PXA270-EP 目标板上运行,所以下面我们将转到minicom的终端窗口中运行该目标程序。 10.​ 重新打开第7步最小化的开有minicom的终端窗口,即到PXA270-EP目标板的mnt目录下,请您输入下列3条命令,运行HelloWorld编译成功的HelloWorld目标程序: ① cd home/HW /*回到minicom 中目标板的/mnt/home/HW 目录下*/ ② ls ③./ HelloWorld /*此时会看到如图2-12*/ 图 2-12 好了,我们欣喜地看到了图2-12所显示的HelloWorld!的运行结果。祝贺您,您已经成功开发了第一个嵌入式应用程序。 实验参考程序: 程序清单2.1 *************************************************************************** //HelloWorld.c #include int main() { printf(“HelloWorld!\n”); return 0; } *************************************************************************** 实验注意事项: 由于本实验是要求您在宿主PC 机端编写并编译第一个应用程序,所以请您务必按照实验 指导书的操作步骤操作,使您对Linux应用程序的编写编译过程有个全面的认识。 实验三 编译Bootloader 一、实验目的 掌握编译XSCALE系统Bootloader的过程。 二、实验内容 编译 ARM Linux的Boot loader。 三、实验设备 1.​ 一套PXA270EP 嵌入式实验箱。 2.​ 安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。 四、预备知识 熟悉 Linux基本操作。 五、实验步骤 本次实验是真正动手配置并且编译Bootloader。 1.​ 在宿主PC 机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口。首先我们找到BLOB BOOT, 如图3-1 , 默认是在文件夹 /pxa270_linux/blob_ours/blob_xscale中,如果是第一次编译,请您输入下列2条命令: ① cd /pxa270_linux/blob_ours/blob-xscale ② make –f Makefile.cvs 图3-1 2.​ 如果运行正确,会有如下结果,如图3-2,再输入下列1条命令进行配置Bootloader: ① ./configure --host=arm-linux --with-board=mainstone --with-linux-prefix= /pxa270_ linux/linux/ - -enable-xlli - -enable-network 图3-2 3.​ 通过执行上述命令得到配置结果后,如图3-3,请您输入下列1条命令进行编译: ① make 图3-3 第一次执行时,会用较长的时间,并且打印出很多的相关信息。如果BLOB工程没有问题,会生成的二进制文件blob, 保存在/pxa270_linux/blob_ours/blob-xscale/src/blob 文件夹下。您可以将生成的blob文件拷贝到/pxa270_linux/tools目录下,以供后面烧写。当然在做这一步前,您最好将我们安装光盘时存放在/pxa270_linux/tools目录下的blob文件先做一个备份,以防您在此实验中编译生成的blob 文件存在问题。当源文件进行修改后,可用此命令重新编译工程,与修改无关的文件不会再被编译。当需要清空之前已经编译好的结果,后再进行编译生成新的blob文件,则使用下列2条命令: ① make clean ② make 实验四 编译Linux内核 一、实验目的 掌握编译ARM 系统内核的过程。 二、实验内容 完成编译Linux 内核。 三、实验设备 1.​ 一套PXA270EP 嵌入式实验箱。 2.​ 安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。 四、预备知识 熟悉 Linux基本操作。 五、实验步骤 1.​ 在宿主PC机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,请您输入下列9条命令配置内核并编译内核: ① cd /pxa270_linux/linux /*进入Linux 内核文件所在的目录*/ ② ls /*查看内核文件结构*/ 2.​ 请您输入: ③ make menuconfig /*推荐使用,如图4-1*/ 这条命令是用来调用菜单式的配置内核界面,相应的还有命令行式的配置方法。 图4-1 图4-2 make menuconfig界面是图形化的内核裁减界面。通过此部分,我们可以方便的选择,决定哪些部分被加载并编译入LINUX 内核,哪些部分被编译为模块,哪些部分不用。在此我们可以装载一个我们已经保存好的设置。用上下键选择Load an Alternate Configuration File, 回车进入下边如图所示界面,先用退格键将.config 删除,直接输入config_ours, 回车选择退出,用Tab 键选择并回车,再回车选择保存您刚做的设置。并退出了make menuconfig的配置裁减过程。config_ours 这个文件是我们事先配置完并保存好的一个配置文件。当然用户也可以使用Save Configuration to anAlternate File保存自己的配置文件。但是做本实验时,笔者建议您先选择我们提供给您的配置文件进行操作,如图4-2,图4-3。 图4-3 当配置生效后的结果会保存在/pxa270_linux /linux/include/linux文件夹下的autoconfig.h文件中。 3、请您输入,如图4-4: ④ make dep 图4-4 4、编译内核,如图4-5,请您输入,: ⑤ make clean ⑥ make zImage 图4-5 编译生成Linux的内核文件zImage, 保存在/pxa270_linux /linux/arch/arm/boot 下面,如图4-6。 图4-6 make clean 后第一次使用make zImage 命令,会占用相当长的时间。宿主机会根据autoconfig.h 文件对系统进行编译。首先使用交叉编译器(arm-linux-gcc)把各个文件夹下用过的.c文件编译为二进制的目标文件,其次用链接器(arm-linux-ld)把这些目标文件连接到一起;最后压缩,就得到了内核的镜像文件zImage。这个文件是可以下载并烧写到PXA270-EP目标板上运行的内核。 5、编译模块,请您输入: ⑦ make modules 编译模块驱动程序,凡是在menuconfig 配置中被选为的都会在这条命令运行时被编译。 至此您已经将内核编译完成,现在您就可以把生成的zImage 文件复制到/tftpboot/目录中,为今后的烧写实验做准备。请您输入: ⑧ cd arch/arm/boot ⑨ cp zImage /tftpboot/ -f 6、make menuconfig 选项的说明: 在 Linux 中,工程化的编程都会使用make menuconfig, 它是一个比较成熟的裁减界面。不同工程之间的menuconfig会有差别,但大体相同。下面就把主要的部分做以说明: Code maturity level options 这个选项的作用域是整个编译配置空间,如果这里选中相应的级别,不符合此条件的选项就不会在后面出现。这个选项是代码的成熟程度的选择,意思是如果你需要一个非常成熟稳定的系统,那么有些新功能就不能使用,一个包含有新功能的系统就可能存在相应的风险。可以根据你自己的需求选择。 Loadable module support 这个选项是你的内核对内核模块的支持选项,包括是否支持和支持的一些配置等,选择此项会使内核文件变大。 System Type 选择对系统的支持,如什么样的ARM 内核,什么样的配置平台等,此例提供的内核是给S3C2410准备的,如果使用不同的处理器其系统或是不同的内核时此处的选项可能不同。 General Setup 这里是内核本身的一些属性的配置,包括压缩方式,网络支持等很多属性。 Parallel port support 这个选项顾名思义就是选择内核对并口的支持情况,当选中对并口支持后会出现新的选项来配置支持不同类型不同模式的并口。 Memory Technology Devices (MTD) 对MTD 设备的支持选项,这个选项对嵌入式系统比较重要,内核对各种Flash的支持都在这里配置,包括种类,分区等。 Plug and Play configuration 内核对即插即用的支持选项,这个选项在嵌入式系统中极少使用。 Block devices 内核对块设备的支持选项,各种磁盘系统的支持。 Multi-device support 多设备的支持,主要是RAID 和LVM的支持,这个在嵌入式系统中极少使用。 Networking support 对网络设备的支持选项,通常对网卡的支持在这里选择,也是常用的选项,例如系统配置不同的网卡时就要在这里选中不同的选项。 ATA/IDE/MFM/RLL support IDE口的支持,这里选择支持不同的IDE 设备,包括CDROM HARDDISK TAP等。 SCSI support SCSI设备的支持选项,也比较少使用。 I2O device support 智能IO 结构支持,嵌入式也比较少使用。 ISDN support ISDN 的支持选项 Input device support 输入设备核支持,通常当需要支持USAB的HID 设备时选中。 Character devices 字符型设备的支持,这个选项是嵌入式系统经常使用的选项,嵌入式系统中大量的设备都属于Char型的设备。 Multimedia devices 多媒体设备的支持。 File systems 内核对不同文件系统的支持选项,在这里选择需要支持的文件系统。 Sound 对声音设备的支持选项。 USB support 各种USB设备的支持。 Bluetooth support 蓝牙设备的支持。 Kernel hacking 内核DeBug用的一些选项,用于报告各种信息。 Load and Alternate Configration File Load不同的配置文件。 Save Configration to an Alternate File 保存配置文件。 实验注意事项: 内核的配置选项很多,目标板提供的内核文件已经做好了相应的配置,如果想深入了解内核,还需要很多相关的知识。 实验五 制作文件系统、烧写各部分到目标板 一、实验目的 1.​ 了解制作嵌入式Linux系统中文件系统的过程。 2.​ 学习将嵌入式Linux各部分烧写到目标板上的方法。 二、实验内容 1.​ 介绍嵌入式Linux 中文件系统的概念和作用,动手制作一个文件系统的映像文件。 2.​ 将前面制作出来ARM Linux Bootloader、Linux内核、文件系统等部分烧写到目标板上。 三、实验设备 1.​ 一套PXA270EP 嵌入式实验箱。 2.​ 安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。 四、预备知识 1.​ 了解标准Linux操作系统的文件系统的组成。 2.​ 熟悉 Linux各组成部分的作用,熟悉Linux系统基本操作。 五、实验原理及说明 文件系统是Linux 系统必备的一个部分,主要是一些系统文件和应用文件存储的地方,但是通常使用的PC 上的文件系统包括很多功能,但是体积比较大通常有几百兆之多,但是在嵌入式系统中要使用这样的文件系统是不可能的,所以,嵌入式系统中的文件系统是一个简化版,包括必须的几个目录和文件,完成需要的功能即可。下面我们就来对文件系统中包含的东西和文件进行些简要的说明。 文件系统要求建立的目录有/bin,/sbin,/etc,/dev,/lib,/mnt,/proc,/usr。 /bin 目录下需要包含常用的用户命令,如sh等。 /sbin 目录要包含所有系统命令,如reboot等。 /etc 目录下是系统配置文件。 /boot 目录下是内核映像 /dev 目录含有系统所有的特殊设备文件 /lib 目录包含系统所有的库文件 /mnt 目录只用于挂接,可以是空目录 /proc 目录是/proc文件系统的主目录,包含了系统的启动信息 /usr 目录含有用户选取的命令。 上述目录应该包含适当的文件和子目录。 目录/bin,date,sh,login,mount,umount,cp,ls,ftp,ping。这些命令文件的主要作用如下: date: 查取系统时间值。 sh: 是 bash的符号链接。 login: 登陆进程启动后,若有用户输入,此程序就提供password提示符。 mount: 挂接根文件系统时使用的命令,有些Linux开发商将此文件安排在/sbin下。 umount:卸载文件系统时使用的命令。 cp: 文件拷贝命令。 ls: 列出目录下的文件需使用的命令。 ftp: 根据文件传输协议实现的命令,可以用于FTP登陆。 ping: 基本的网络测试命令,运行在网络层。 目录/sbin需包含mingetty,reboot,halt,sulogin,update,init,fsck,telinit和mkfs。这些命令的主要作用如下: reboot: 系统重新启动的命令。 halt: 系统关机命令,它与reboot共享运行的脚本。 init: 它是最早运行的进程,从Start_kernel()函数中启动。此命令可以实现Linux 运行级别切换。 目录/etc 需包含HOSTNAME,bashrc,fstab,group,inittab,nsswitch,pam.d,passwd, pwdb.conf,rc.d,securetty,shadow,shells以及lilo.conf。这些配置文件的主要作用如下: HOSTNAME:用于保存Linux系统的主机名。 fstab: 用于保存文件系统列表。 group: 用于保存Linux系统的用户组。 inittab: 用于决定运行级别的脚本。 passwd: 保存了所有用户的加密信息。 shadow: 密码屏蔽文件。 shells: 支持的所有Shell版本。 目录/dev需包含console,hda1,hda2,hda3,kmem,mem,null,tty1和ttyS0。这些特殊设备文件的作用是: console:表示控制台设备。 hda1: 表示第一个IDE盘的第1个分区。 hda2: 表示第一个IDE盘的第2个分区。 hda3: 表示第一个IDE盘的第3个分区。 kmem: 描述内核内存的使用信息。 mem: 描述内存的使用信息。 null: 表示Linux系统中的空设备,可用于删除文件。 tty1: 第 1 个虚拟字符终端。 ttyS0: 第 1个串行口终端。 目录/lib 需包含libc.so.6,ld-linux.so.2,libcom_err.so.2 libcrypt.so.2,libpam.so.0,libpam_misc.so.2,libuuid.so.2,libnss_files.so.2,libtermcap.so.2 和security。这些库文件的作用是: libc.so.6: Linux系统中所有命令的基本库文件。 ld-linux.so.2: 基本库文件libc.so.6的装载程序库。 libcom_err.so.2: 对应命令出错处理的程序库。 libcrypt.so.2: 对应加密处理的程序库。 libpam.so.0: 对应可拆卸身份验证模块的程序库。 libpam_misc.so.2: 对应可拆卸身份验证模块解密用的程序库。 libuuid.so.2: 对应于身份识别信息程序库。 libnss_files.so.2: 对应名字服务切换的程序库。 libtermcap.so.2: 用于描述终端和脚本的程序库。 security: 此目录用来提供保证安全性所需的配置,与libpam.so.0配合使用。 目录/mnt和/proc可以为空。 六、实验步骤 6.1制作文件系统 1、目标板在/pxa270_linux/fs/rootfs270 目录中有文件系统的原文件。可以查看目录中的内容。在宿主PC 机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,请您输入下列2条命令查看该文件中的内容,如图5-1: ① cd /pxa270_linux/fs/rootfs270 ② ls 可以查看目录中的内容如下: //******************************************************************** Applications boot dev home media opt root Settings tmp var bin conf etc lib mnt proc sbin srv usr //******************************************************************** 图5-1 它完全就是Linux 的文件系统(与目标板启动后的文件系统完全一样)。该文件中除了包含前面介绍过的必备目录外,还包括了一些为本目标板所设计的几个目录。 2、制作jffs2根文件系统的映像 jffs2是一种可读/写的文件系统。制作它的工具叫做mkfs.jffs2。可以用下面的命令来生成一个jffs2的文件系统。在上面同一个终端窗口中,请您输入下列3条命令,如图5-2: ① cd /pxa270_linux/fs ② ./mkfs.jffs2 -r rootfs270 -o xscale_fs.jffs2 -e 0x40000 - -pad=0x01000000 ③ cp xscale_fs.jffs2 /tftpboot -rf 图5-2 这样,就会在fs 目录下生成一个名字叫做xscale_fs.jffs2 的文件系统,将该文件拷贝到/tftpboot 目录下,为后面的烧写实验做准备,如图5-3。 图5-3 实验注意事项: 您在定制文件系统的时候,笔者建议您暂时先不要重新从零开始建立,您应该在我们提供给您的文件系统的基础上添加您所需要的文件。但是对于您所添加的文件大小是有要求的。作为实验,您可以添加一个相对较小的文件(如几十KB)到已有的文件系统中。 6.2烧写各部分到目标板 1、硬件连接: 按照实验一的步骤,连接宿主PC机和一台PXA270-EP目标板。本实验要通过JTAG烧写blob,所以需要注意,在插拔JTAG 下载线时,PXA270-EP目标板要处于断电状态。 图5-4 2、请您确认宿主PC机的tftp服务,minicom设置及IP 地址都已经正常配置,若没有配置成功,请您参照实验四、实验五、实验六的操作过程重新配置。前面实验装有Linux 的宿主机IP地址在本实验中一定要配置为192.168.0.100,使用如下配置命令: ifconfig eth0 192.168.0.100 up 建议简单测试一下TFTP 服务器是否可用,即自己“tftp”自己,例如在宿主机上执行: cp /pxa270_linux/IMAGE/zImage /tftpboot/(也可以使用/tftpboot目录中已有的文件,此处仅为举例说明) tftp 192.168.0.100 tftp>get zImage 若出现如下信息: Received 608724 bytes in 0.6 seconds 就表示TFTP 服务器配置成功了。若弹出信息说:Timed out,则表明未成功。 3、烧写blob,在硬件的连接都已经准确无误后,给PXA270-EP目标板通电。 在宿主PC 机端,打开一个终端窗口(Terminal),点击【Red Hat Linux System Tools Terminal】启动终端窗口,进入pxa270_linux 目录的工具部分,使用JFLASHMM 工具下载blob,输入下面2 条命令: ① cd /pxa270_linux/tools ② ./Jflashmm-linux PXA270 blob p 这个命令是寻找PXA270.dat文件所指定的CPU,把blob 文件小烧写到这个CPU使用的FLASH中。要求blob, PXA270.dat与Jflashmm-linux应用程序在一个文件夹中,.dat文件不可以加后缀。烧写成功后,Jflashmm会自动校验烧写结果。如果只做校验,比较目标板中的程序与现有程序是否一致,可以使用命令: ./Jflashmm-linux PXA270 blob v 烧写或效验的结果会在程序结束时打印出信息,如图5-5。 图5-5 4、烧写成功后,请您将接下来要下载并烧写的内核、文件系统都拷贝到/tftpboot目录中,分别是zImage 、xscale_fs.jffs2、junk.jffs2 三个文件。您可以将您在前面实验中生成的这几文件拷贝到/tftpboot 目录中。但为了保证本实验的正确进行,建议您使用提供给您的原文件(Image , xscale_fs.jffs , junk.jffs2 三个文件)。请您输入下列6条命令进行拷贝: ① ifconfig eth0 192.168.0.100 up ② cd /pxa270_linux/IMAGE ③ cp zImage /tftpboot -rf ④ cp xscale_fs.jffs2 /tftpboot -rf ⑤ cd /pxa270_linux/fs ⑥ cp junk.jffs2 /tftpboot -rf 5、在上面同一个终端窗口下,请您输入下列1条命令: ① minicom 进入minicom终端模式下,请您按RESET键重新启动目标板,看看是否有信息从串口打印出来。正常情况下,可以看到blob的启动信息,并立刻按空格键,这样会进入blob 命令行模式。使用tftp 与fwrite 命令,可以将宿主PC 机/tftpboot 目录中的内核与文件系统下载并烧写到PXA270 目标板上。 6、下载Linux内核文件zImage,烧写到目标板。 在第5步操作过程中,您已经进入到blob 命令行模式。请您输入下列1条命令下载内核镜像文件到目标板: ①blob> tftp zImage --kernel /*如图5-6*/ 下载后,zImage文件会被保存在目标板的内存中,起始地址为0xa0008000。请您输入下列1条命令将该内核烧写到flash: ②blob> fwrite 0xa0008000 0x00040000 0x00200000 fwrite是blob中烧写flash的专用工具,他把内存中以0xa0008000开始的,长度为0x00200000(2M)的内容烧写到flash地址为0x00040000 的地方。 在硬件系统允许的范围内,fwrite 命令可以把内存中的任意内容烧写入flash的任意地址。 我们烧入0x00040000是因为我们的blob 与Linux内核中指定了这个地址存放Linux内核文件。在blob 启动时,它会自动到这个地址找Linux 内核文件,并且装载它。如果不进入blob 命令模式,就会直接启动内核。 图 5-6 7、下载文件系统文件,烧写到目标板。 下列步骤与下载烧写内核文件基本一样,请您输入下列4条命令完成下载并烧写文件系统的操作: ①blob> tftp xscale_fs.jffs2 /*如图5-7*/ ②blob> fwrite 0xa1000000 0x00240000 0x01000000 ③blob> tftp junk.jffs2 ④blob> fwrite 0xa1000000 0x01240000 0x0dc0000 由于文件系统比较大,所以烧写时间可能会比较长,请您耐心等待。 xscale_fs.jffs2是JFFS2的文件系统镜像文件。使用tftp命令把它下载到目标板内存的0xa1000000位置,再用fwrite烧入flash的0x00240000地址。 junk.jffs2是JFFS2的文件系统镜像文件。使用tftp命令把它下载到目标板内存的0xa1000000 位置,再用fwrite烧入flash的0x01240000地址。 图5-7 若上述过程都操作成功后,那要恭喜您了!请您按RESET键重新启动PXA270-EP目标板。这时您将进入有您亲自构建的Linux系统中。 实验注意事项: 1.​ 您必须在下载烧写文件前,先把这些将要烧写的文件拷贝到宿主PC 机的/tftpboot 目录下。 2.​ 请您务必重新将宿主PC机的IP地址设置成为192.168.0.100。 3.​ 文件系统的烧写时间会较长,请您耐心等待。
本文档为【嵌入式系统实验指导书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_955355
暂无简介~
格式:doc
大小:4MB
软件:Word
页数:36
分类:互联网
上传时间:2011-06-27
浏览量:27