嵌入式系统开发实验

上传人:工**** 文档编号:498940557 上传时间:2023-12-28 格式:DOCX 页数:9 大小:69.38KB
返回 下载 相关 举报
嵌入式系统开发实验_第1页
第1页 / 共9页
嵌入式系统开发实验_第2页
第2页 / 共9页
嵌入式系统开发实验_第3页
第3页 / 共9页
嵌入式系统开发实验_第4页
第4页 / 共9页
嵌入式系统开发实验_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《嵌入式系统开发实验》由会员分享,可在线阅读,更多相关《嵌入式系统开发实验(9页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统开发实验121180166 赵琛一实验目的了解嵌入式系统的开发环境、内核的下载和启动过程了解Linux内核源代码的目录结构及各目录的相关内容了解Linux内核各配置选项内容和作用掌握Linux内核的编译过程了解嵌入式操作系统中文件系统的类型和作用了解JFFS2文件系统的优点及其在嵌入式系统中的作用掌握利用BusyBox软件制作嵌入式文件系统的方法掌握嵌入式Linux文件系统的的挂载过程二实验内容和要求掌握将linux内核和文件系统下载到开发板的过程学会linux内核的配置与编译了解嵌入式文件系统的构建三实验设计思想3.1硬件部分嵌入式实验系统x210v3是基于45 nm工艺S5PV2

2、10芯片的开发平台。核心处 理器S5PV210为Cortex-A8架构,主频可到1 GHz,支持1GiB DDR2,片内 32KiBI/D缓存及512KiB二级缓存,PowerVRSGX540图形加速引擎,支持 MPEG4、H.263、H.264 1080P30fps编码及MPEG4 1080P30fps解码,HDMI/TV - OUT, 引脚间距0.65mm, 17X17 mm FBGA封装。x210v3由核心板,底板和液晶板三大块 组成,心板采用8层板工艺设计,底板留有丰富的外设接口,几乎具备210所有 功能的调试,液品板采用7 口寸电容触摸屏。3.2软件部分1 bootloaderBoo

3、t Loader的主要运行任务就是将内核映像从硬盘上读到RAM中,然后跳转到 内核的入口点去运行,也即开始启动操作系统。bootloader的主要作用是:1. 初始化硬件设备;2. 建立内存空间的映射图;3. 完成内核的加载,为内核设置启动参数。2 串 口设置(minicom)多数嵌入式系统都通过异步串行接口 (UART)进行初级引导。这种通信方式是将字 符一位一位地传送,一般是先低位、后高位。因此,采用串行方式,双方最少可 以只用一对连线便可实现全双工通信。字符与字符之间的同步靠每个字框的起始 位协调,而不需要双方的时钟频率严格一致,因此实现比较容易。3 tftptftp是基于UDP协议的简

4、单文件传输协议。目标板作为客户机,bootloader默 认采用tftp协议。主机安装tftp-server,作为tftp服务器。4编译规则Makefile利用make menuconfig(或make config、make xconfig)对1 inux 内核进行配置后, 系统将产生配置文件“ .config”。之前的配置文件备份到“.config.old”,以 便用make oldconfig恢复上一次的配置。5文件系统常用的文件系统有ext、NFS、JFFS2、YAFFS2、Ramdisk等。6 busyboxBusybox最终编译成一个叫做busybox独立执行程序,并且可以根据配置

5、,执 行ash shell的功能,包含几十个小应用程序:mini-vi编辑器、系统不可或缺 的/sbin/init程序,以及其他诸如文件操作、目录操作、系统配置等等BusyBox 具有全部这些功能,大小也不过几百K左右。而且用户还可以根据自己的需要对 BusyBox的应用程序功能进行剪裁,使BusyBox的规模进一步缩小。四实验记录与分析本次实验分为三部分:1进行嵌入式系统开发实验流程熟悉2内核编译与配置 3文件系统构建。以下将按照实际实验2 1 3的顺序进行。4.1内核编译与配置4.1.1内核的配置的基本结构Linux内核的配置系统由四个部分组成:1. Makefile:分布在Linux内核

6、源码中的Makefile, 定义Linux内核的编译规 则。顶层Makefile是整个内核配置、编译的总体控制文件;2. 配置文件config.in:给用户提供配置选择的功能。“.config”是内核配置 文件,包括由用户选择的配置选项,用来存放内核配置后的结果;3. 配置工具:包括对配置脚本中使用的配置命令进行解释的配置命令解释器和 配置用户界面(基于字符界面:make config,基于ncurses界面:make menuconfig,基于X-Window 图形界面:makexconfig);4. Rules.make:规则文件,被所有的Makefile使用。4.1.2内核配置与编译步骤

7、:1、解压内核源代码tar xvf命令2、make menuconfig这一步是进行内核配置。但是事实上,由于需要配置的东西太多,我们很难完成, 因此参考了老师给出的.config文件,并将其覆盖了原来内核的.config文件。对 于内核配置,关键的一步在于选择对系统类型。本次实验我们需要选择的是 System Type with S5PV210O在进行内核配置的时候,需要考虑到很多硬件部分, 而内核有些部分是有待改进的,例如usb2.0中使用到关于usb1.0的东西,因此非 常容易配置不成功。在配置时,有不同选项y 表示本编译选项对应的内核代 码被静态编译进Linux内核;m 表示本编译选项

8、对应的内核代码被编译成模 块;n 表示不选择此编译选项;如果根本就没有选择,那么配置变量的值为 空。3 make clean清除以前构核所产生的所有的目标文件、模块文件、核心以及一些临时文件等, 不产生任何新文件。4 make这一步就是在编译内核。由于实验室主机是4核的,因此在编译内核时,我们可 以使用命令make - j4来并行编译从而提高效率。我们可以观察到,使用j4命令 后编译速度明显加快。5 make zImage这一步生成了内核的镜像文件。这时我们就完成了对于内核的配置与编译。4.2文件系统的构建4.2.1关于ramdisk文件系统使用内存的一部份空间来模拟一个硬盘分区,这样构成的文

9、件系统就是 ramdisk。将ramdisk用作根文件系统在嵌入式Linux中是一种常用的方法。因 为在ram上运行,读写速度快;用gzip算法进行压缩,可节省存储空间。但它 也有缺点:由于将内存的一部分用作ramdisk,这部分内存不能再作其他用途; 此外系统运行是更新的内容无法保存,系统关机后内容将丢失。4.2.2配置文件系统步骤1解压缩busybox源代码tar xvf2 make menuconfig这一步也是配置文件系统选项,但是为了能够迅速准确的成功,我借用了老师配 置好的.config文件,并覆盖了原来文件系统的.Config文件。在这个配置文件中, 要注意选择静态编译,并且加上

10、编译器前缀(arm-2009q3-gcc)。3 make - j4编译文件系统4 make install5 进入 _install (cd _install)目录6在这个目录下建立etc文件夹,建立inittab、rc、motd三个文件。/etc/inittab:此文件由系统启动程序init读取并解释执行。以#开头的行是 注释行。# /etc/inittab:sysinit:/etc/init.d/rcS 为 init 提供初始化路径,将/etc/init.d/rcS 设置为系统的初始化文件:askfirst:-/bin/sh /将促使init在控制台上显示:please ress Ente

11、r to /active this console的信息,并在重新启动进程之前 /等待用户按下Enter键,最重要的并且能够顺利进入 /shell:once:/usr/sbin/telnetd -l /bin/login /仅执行相应的进程(即 telnet 登 /陆)一次,而且不会等待它的完 成:ctrlaltdel:/sbin/reboot /当按下 Ctrl+Alt+Del 键时,重启:shutdown:/bin/umount -a - r/当系统关机时,进行卸载。/etc/rc:这是一个脚本文件。此文件要求可执行属性,用命令“chmod+xrc” 修改其属性。rc文件和其他脚本文件(.

12、sh)第一行的#不是注释。#!/bin/shhostname x210mount -t proc proc /proc/bin/cat /etc/motd/etc/motdWelcome toARM-LINUX WORLDx210v3 S5PV210/Cortex-A8proted by 121180166 Zhao Chen此文件内容随意,由/etc/rc调用打印在终端上。7在etc目录下再创建init.d目录,并将/etc/rc向/etc/init.d/rcS做符 号链接。此文件为inittab指定的启动脚本:$ mkdir init.d$ cd init.d$ ln -s ./rc rc

13、S8创建dev目录,并在该目录下建立必要的设备:$ mknod console c 5 1$ mknod null c 1 3$ mknod zero c 1 59建立proc空目录,供proc文件系统使用。10建立lib目录,将交叉编译器链接库路径下的下面几个库复制到lib目录: ld-2.10.1.so, libc-2.10.1.so, libm-2.10.1.so 并做相应的符号链接: ln - s ld-2.10.1.so ld-linux.so.3ln - s libc-2.10.1.so libc.so.6ln - s libm-2.10.1.so libm.so.6至此文件系统目

14、录构造完毕。从根目录看下去,应该至少有下面几个目录:bin dev etc lib lost+found mnt proc sbin它们是下面制作文件系统的基础。接下来我们要进行ramdisk文件映像的制作。11为了生成并修改ramdisk,需要在主机上创建一个空文件并将它格式化ext2fs 文件系统映像。格式化后的文件就可以像普通文件系统一样在主机上进行挂载和 卸载。挂载后可以进行正常的文件和目录操作,卸载后,如果原映像文件仍然在, 则更新到卸载之前的操作内容。$ dd if=/dev/zero of=ramdisk_img bs=1k count=8192$ sbin/mke2fs ram

15、disk_img12下面我们进行挂在与卸载$ mount ramdisk_img将_install目录下除dev外内容拷贝到/mnt/ramdisk下,并且在此时建立dev目录和 相关设备文件$ umount /mnt/ramdisk此时的ramdisk文件已经是一个完整独立的文件系统映像。13最后我们进行压缩,从而生成gzip文件$ gzip ramdisk_img这样我们就完成了一个文件系统的制作。4.3将内核与文件系统写进开发板我们这时候首先需要打开串口通信软件minicom,并且按照要求配置好(事实上 之前已经被配置好)然后写入以下命令setenv ipaddr 192.168.208.141 /开发板地址setenv serverip 192.168.208.41 主机地址 #以上两行配置了初始网络地址tftp 0xc000800 zIMagetftp 0x40000000 ramdisk_img_zc.gz#在目标机中下载编译好的内核和文件系统映像,其中文件系统镜像的名称是为 了声明是我自己的文件系统bootm 0xc0008000#启动内核执行完这个命令之后,我们可以看到显示出如下画面:心RM-LINUX WO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号