嵌入式操作系统文件系统的构建实验报告书文档格式.doc

上传人:wj 文档编号:5089287 上传时间:2023-05-04 格式:DOC 页数:18 大小:458.50KB
下载 相关 举报
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第1页
第1页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第2页
第2页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第3页
第3页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第4页
第4页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第5页
第5页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第6页
第6页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第7页
第7页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第8页
第8页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第9页
第9页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第10页
第10页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第11页
第11页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第12页
第12页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第13页
第13页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第14页
第14页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第15页
第15页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第16页
第16页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第17页
第17页 / 共18页
嵌入式操作系统文件系统的构建实验报告书文档格式.doc_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式操作系统文件系统的构建实验报告书文档格式.doc

《嵌入式操作系统文件系统的构建实验报告书文档格式.doc》由会员分享,可在线阅读,更多相关《嵌入式操作系统文件系统的构建实验报告书文档格式.doc(18页珍藏版)》请在冰点文库上搜索。

嵌入式操作系统文件系统的构建实验报告书文档格式.doc

目录格式

3

1

图表质量

1.5

页眉页脚

文档内容

内容完整性

10

内容逻辑性

8

6

内容正确性

9

程序代码(40分)

程序功能

20

18

编程规范

编程文档

考勤(20分)每天4分,无故迟到、早退扣2分,无故旷课扣4分。

总评成绩

89.5

指导教师评语

签名:

年月日

教研室意见

目录

第一章实验准备 1

1.1实验内容 1

1.2实验目的 1

1.3实验原理 1

1.4实验设备及工具 2

1.5课题分工 2

1.6需求分析 2

第二章实验过程 3

2.1概要设计 3

2.2详细设计 3

2.2.1文件系统的制作 3

2.2.2配置文件系统 4

2.2.3创建设备文件 4

2.2.4使用格式工具制作JFFS2文件映像 5

2.2.5烧写文件系统到目标机 5

第三章设计阶段/编码分析 7

3.1BusyBox启动基本流程分析:

7

3.2构建文件系统流程图:

3.4代码分析 8

第四章程序调试 10

4.1程序运行及调试 10

4.2问题及解决 10

第五章实验总结 11

参考文献 12

附录 13

第一章实验准备

1.1实验内容

1、根据系统提供的busybox源代码,编译busybox,写出具体编译过程

2、利用配置文件系统实例,配置一个适合开发板的文件系统,写出需要配置文件的功能

3、利用mkfs.jffs制作文件系统映像,并将文件系统映像下载到开发板,写出系统启动后的结果。

1.2实验目的

1、了解嵌入式操作系统中文件系统的类型和作用

2、了解JFFS2文件系统的优点及其在嵌入式系统中的作用

3、掌握利用BusyBox软件制作嵌入式文件系统的方法

4、掌握嵌入式Linux文件系统的的挂载过程

1.3实验原理

JFFS文件系统是瑞典Axis通信公司开发的一种基于Flash的日志文件系统,它在设计时充分考虑了Flash的读写特性和电池供电的嵌入式系统的特点,在这类系统中必需确保在读取文件时,如果系统突然掉电,其文件的可靠性不受到影响。

对RedHat的DavieWoodhouse进行改进后,形成了JFFS2。

主要改善了存取策略以提高FLASH的抗疲劳性,同时也优化了碎片整理性能,增加了数据压缩功能。

需要注意的是,当文件系统已满或接近满时,JFFS2会大大放慢运行速度。

这是因为垃圾收集的问题。

相对于EXT2fs而言,JFFS2在嵌入式设备中更受欢迎。

JFFS2文件系统通常用来当作嵌入式系统的文件系统。

JFFS2克服了JFFS的一些缺点:

使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度

l支持数据压缩

l提供了“写平衡”支持

l支持多种节点类型

l提高了对闪存的利用率,降低了内存的消耗

我们需要在自己的嵌入式Linux中加入JFFS2文件系统并做少量的改动,就可以使用JFFS文件系统。

通过JFFS2文件系统,可以用Flash存储器来保存数据,即将Flash存储器作为系统的硬盘来使用。

可以像操作硬盘上的文件一样操作Flash芯片上的文件和数据。

同时系统运行的参数可以实时保存到Flash存储器芯片中,在系统断电后数据不会丢失。

JFFS2文件系统是一种“追加式”的文件系统,新的数据总是被追加到上次写入数据的后面。

这种“追加式”的结构就自然实现了“损耗平衡”。

1.4实验设备及工具

硬件:

XSBase270实验平台,PC机pentium500以上,硬盘10G以上。

软件:

PC机操作系统RedHatLinux9.0+MiniCOM+ARM-Linux开发环境。

1.5课题分工

1、小组人员先在一起讨论实验内容和详细步骤。

2、鲁芳菡、李佳丽负责实验操作,魏星星负责查找整理实验资料,并参与监督讨论问题,最后三个人一起做实验报告,并讨论实验中所遇到的问题。

1.6需求分析

功能需求分析:

能够实现制作mkfs.jffs2文件系统映像,并将文件系统映像下载烧写到开发板。

性能需求分析:

PC机的CPU性能需要pentium500以上,硬盘需要10G以上

虚拟机需要安装RedHatlinux9.0操作系统,操作系统内要安

装minicon,以及ARM-Linux开发环境,符合以上性能才能进行。

课题任务目标:

系统运行环境:

PC机、操作系统RedHatLinux9.0+MiniCOM+ARM-Linux开发环境。

小组成员讨论:

嵌入式文件系统的构建实验,首先需要PC机和实验机各一台,实验代码和程序要提前准备并共享在虚拟机里边。

还需要对Busybox进行解压,然后编译。

在配置文件系统的时候,要对多个程序编译,而且还要配置一些设备文件。

在制作JFF2文件映像并烧写到Linux实验机时,需要检查目标机minicom是否安装完备并设置完成,最后对程序调试和测试,直至正确运行。

整个实验要特别注意的是对Busybox编译正确,在烧写时要保证程序的正确性,而且还要对minicom进行设置并启动。

第二章实验过程

2.1概要设计

【根文件系统构架】

/

bin

sbin

boot

dev

etc

home

lib

mnt

proc

tmp

usr

Lost+found

local

rc.d

init.d

sysconfig

【构建文件系统流程图】

设备文件

Console等

MTD块设备mdblock3等

符号连接文件rcS

2.2详细设计

2.2.1文件系统的制作

1、从网上下载BusyBox软件包,这里下载的是busybox-1.00-pre05.tar.bz2。

首先把它放在/root/Xsbase270_Linux/Filesystem目录下并进行解压缩。

2、通过makemenuconfig进行配置。

3、配置完成后,分别输入makedep、makeinstall命令,便可对BusyBox进行编译。

4、保存好menuconfig的配置后,对BusyBox进行编译make和安装makeinstall,安装完毕后,cd/XSBase270/Filesystem/bus/busybox-1.00-pre5/_install到安装的目录下,可以找的bin、sbin、usr目录和Linuxrc等一系列文件。

实验截图如图5-1所示。

图5-1BusyBox的编译

2.2.2配置文件系统

1、在_install目录下,用mkdir创建etc文件夹,cdetc创建inittab、rc、motd三个文件,其中rc用chmod777rc增加可执行属性。

2、在etc下建立init.d目录,而后在init.d目录下建立rc文件的符号连接文件rcS。

指令如下:

#mkdirinit.d

#cdinit.d

#ln–s../rcrcS

2.2.3创建设备文件

1、在_install下建立dev目录,创建设备文件。

在本实验中一些设备文件是必需的,比如系统控制台console,MTD块设备mdblock3等,可以使用mknod命令来创建。

#mknodconsolec51

#mknodmdblock3b313

2、除了使用mknod命令来手工创建设备文件外,还可以复制主机平台/dev目

录下一些必要的设备文件在:

/root/Xsbase270_Linux/Filesystem/busybox-1.00-pre5/_install/dev

目录下,指令如下:

#cp-dpR/dev/*/root/Xsbase270_Linux/Filesystem/busybox-1.00-pre5/_install/dev

(-dp参数表示复制过程中保证链接文件保持不变,但不会复制链接所指的原文件,而且属性不变,然后删除不必要的设备文件。

)实验截图如图5-2所示。

图5-2创建设备文件

2.2.4使用格式工具制作JFFS2文件映像

1、将光盘的filesystem下的mkfs.jffs2拷贝到buybox下。

2、在busybox的根目录下,运行命令mkfs.jffs2。

2.2.5烧写文件系统到目标机

1、生成映像文件rootfs270.img,拷贝到/tftpboot中。

2、运行minicom,烧写到flash中。

3、对程序进行调试和测试,测试无误后,启动运行结果。

实验截图如图5-3所示。

图5-3烧写映像文件

第三章设计阶段/编码分析

内核启动后的第一个进程为init进程,它根据配置文件决定启动哪些程序,比如要执行哪些脚本、启动shell、执行用户指定进程等。

一般init进程的执行都是通过/sbin/init发起,所以实际上,BusyBox的启动流程可以概括为:

/sbin/init->

/etc/inittab->

/etc/init.d/rcS。

init进程执行过程:

步骤

描述

为init设置信号处理进程

初始化控制台

解析inittab文件(/etc/inittab)

执行系统初始化命令(动作类型:

sysinit)

5

执行所有阻塞的(会导致init暂停的)inittab命令(动作类型:

wait)

执行所有仅执行一次的inittab命令(动作类型:

once)

7

一旦完成以上工作,init进程会循环步骤8,9

执行所有终止时必须重新启动的inittab命令(动作类型:

respawn)

执行所有终止时必须重新启动,但启动前必须询问用户的inittab命令(动作类型:

askfrist)

3.2代码分析

u/root/Xsbase270_Linux/Filesystem/busybox-1.00-pre5/_install/etc文件目录下的rc(代码见附录)

[root@localhostetc]#chmod777rc

功能分析:

1、脚本文件rc的开头部分不是注释,而是脚本文件开头的固定格式,如果缺省,会出现FAQ中的问题。

2、mount:

Linux下的一个命令,它可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下。

3、chmod命令:

改变文件属性。

u在etc下新建一个inittab文件(代码见附录)

inittab:

为linux初始化文件系统时init初始化程序用到的配置文件。

这个文件负责设置init初始化程序初始化脚本在哪里;

每个运行级初始化时运行的命令;

开机、关机、重启对应的命令;

各运行级登陆时所运行的命令。

id字段:

表示该进程使用的控制台,可以省略。

runlevel字段:

对于BusyBoxinit进程没有意义,可以省略。

action字段:

用来指定可应用到process的动作。

process字段:

用来指定所要执行的程序、脚本。

Busyboxinit能够识别的inittab动作及类型描述:

respawn:

监视子程序终止执行时,重新启动。

sysinit:

为init提供初始化命令行的路径。

wait:

告诉init必须等到相应进程完成才能继续执行。

once:

仅执行相应的进程一次,而且init不会等待它完成。

shutdown:

当系统重启关机时执行相应程序。

restart:

当init重新启动时,执行相应的进程。

askfrist:

类似respawn,它的主要用途是减少系统上执行的终端应用程序数量。

他会促使init在控制台上显示“PleasepressEntertoactivatethis

console.”的信息,并在重新启动进程之前等待用户按下Enter键。

uetc下建立motd文件代码:

Welcometo

========================================

ARM-LINUXWORLD

Baseon:

Xsbase270-EDR

Partner:

emdoor()

u符号连接文件rcS:

符号链接又叫软连接,是一类特殊的文件,这个文件包含了另一个文件的路径名(绝对路径或者相对路径)。

路径可以是任意文件或目录,可以链接不同文件系统的文件。

u创建设备文件,可以使用mknod命令来创建:

1、-dp参数表示复制过程中保证链接文件保持不变,但不会复制链接所指的原文件,而且属性不变,然后删除不必要的设备文件。

2、mknod命令:

手工创建设备文件。

第四章程序调试

4.1程序运行及调试

1、先在目标机烧写并试运行,运行不了再调试修改;

2、查看程序的正确性,确认字母大小写是否正确。

标点符号和空格的标注是否正确;

3、查看命令的输入,所属文件名称等是否正确;

4、最后在目标机运行,程序在编译过程中要特别仔细,不能出错。

4.2问题及解决

问题一:

在编译Busybox过程中,编译不成功。

讨论解决:

看在交叉编译选项中需要使用带glibc库的支持的交叉编译器arm-linux-gcc,具体配置是否正确,通过menuconfig对Busybox重新详细设置,然后查看虚拟机命令输入是否正确。

问题二:

程序烧写运行不了.

对程序仔细检查,看是否有写入(标点、字母大小写、是否空格等)、编译错误,查看程序所在的文件夹是否对应正确。

第五章实验总结

通过这次实验,我们对课堂上所学的知识进行了实践操作,有助于我们更好地理解这些理论知识,将其转化为日后学习、工作的技能。

做完这个实验不仅让我们对平台更加熟悉,而且让我们对busybox、mkfs.jffs2有了比较深入的了解。

加深了对嵌入式系统的基础知识了解,提高了开发嵌入式应用系统,解决实际难点的能力。

在实验过程中也遇到一些问题,比如说编译和烧写阶段,都有出现过错误,经过小组讨论,反复修改,最终得出正确的实验结果。

让我们不仅收获了知识,提高实践操作能力,还大大提高了我们的团队合作能力。

这是我们三个人一起努力的成果。

我们有这样的成绩,非常感谢老师!

在平时的学习和实践操作当中,高老师给予了我们热心的帮助和大力的支持,给我们提了诸多的宝贵意见,拓宽了我们的思维。

在此我们向老师诚挚和衷心的感谢!

参考文献

【1】高欣.嵌入式文件系统的构建实验指导书.开封:

黄河水利职业技术学院.2012.

【2】谢荣生.嵌入式系统软件设计.北京:

邮电大学出版社.2011.P123-P138

【3】亿道公司.亿道LINUX版使用手册.深圳:

亿道电子技术有限公司.2006.

【4】电子文献:

EELiodLinux使用手册.pdf

【5】百度百科

附录

1、etc文件目录下的rc代码:

#!

/bin/sh

hostnameemdoor

mount-tprocproc/proc

cat/etc/motd

2、etc文件目录下inittab代码:

:

sysinit:

/etc/init.d/rcS

#Startan"

askfirst"

shellontheconsole(whateverthatmaybe)

askfirst:

#/sbin/gettyinvocationsforselectedttys

tty4:

respawn:

/sbin/getty38400tty5

tty5:

/sbin/getty38400tty6

#Exampleofhowtoputagettyonaserialline(foraterminal)

#:

/sbin/getty-LttyS09600vt100

/sbin/getty-LttyS19600vt100

#

#Examplehowtoputagettyonamodemline.

/sbin/getty57600ttyS2

#Stufftodowhenrestartingtheinitprocess

restart:

/sbin/init

#Stufftodobeforerebooting

ctrlaltdel:

/sbin/reboot

shutdown:

/bin/umount-a-r

/sbin/swapoff-a

3、etc下建立motd文件代码:

Welcometo

11

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2