新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Xscale的PC/104 Linux系统构建

基于Xscale的PC/104 Linux系统构建

作者: 时间:2012-03-23 来源:网络 收藏

3.3 Boot Loader

引导加载程序Boot loader是在操作系统内核运行前运行的一小段程序。用来完成硬件和软件运行环境的初始化,建立内存空间映射图,以便最终调用操作系统内核。作用与PC机上的BIOS基本相同,是最底层的引导程序。

本文采用了功能最多、最具弹性的被最为积极开发和维护的开放源码的bootloader,即U-BOOT。它除了提供引导功能外,还提供监控程序的功能,该功能在系统开发期间非常有用。

Boot Loader操作如下:

首先确定在cpu./xscale/和board./pxa270下存在xscale.c和pxa270.c两个文件,然后在根目录下输入:make pxa270_config得到U-Boot.bin映像文件,最后用JTAG烧录到FLASH,完成Boot Loader的

3.4内核的配置与裁减

内核已经发展到2.6.20版本,功能非常强大,但是,体积也变的异常庞大。因此,必须针对PC/104目标板的硬件配置进行裁减。

根据目标板PXA270的资源配置,采用make menuconfig配置内核,将有关CPU、内存管理、JFFS2文件系统支持、串口支持、网口支持编译进内核,将音频、触摸屏接口、LVDS接口作为模块编译,需要时动态载入,这样编译下来的内核只有300KB左右,大大减小了内核的体积,减轻了目标板有限的存储空间和内存的压力。

编译并生成镜像命令如下:

1)#tar jxvf my-linux-2.6.10..tar.bz2

2)#ln –s linux-2.6.10 linux

3)#cd linux

4)#make clean

5)#make dep

6)#make bzImage

3.5 文件系统的选择和建立

根据文件系统的特性[5]和PC/104目标板的硬件环境,选择JFFS2作为PC/104目标板的文件系统。JFFS2文件系统具有垃圾回收功能维护空间,并且它的元数据的结构允许文件系统的写入操作,故可提供对使用Flash系统而言非常重要的断电可靠性和损耗平衡特性,能应对工作时的突发事件,避免系统由于突发事件造成崩溃,从而提高系统的安全性。

商用发行版Red Hat的文件系统内容来自GNU,体积庞大,不适合做嵌入式系统的文件系统,而Busybox是小型嵌入式系统常用的一个套件,它可以根据配置执行ash shell的基本功能,以及几十个小应用程序的功能,而大小只有300K左右,是目前嵌入式领域最活跃的系统应用套件。故本文使用Busybox系统套件。

将全部的文件系统移植到目标板之前,需要用mkfs.jffs2工具打包。具体移植操作如下:

1) 解压根文件系统,生成root目录。

#tar jxf up-netpxa270_fs.tar.bz2

2) 解压busybox

#cd up-techpxa270/kernel/02_root

#tar zxf busybox-1.00-pre9.tar.gz

#cd busybox-1.00-pre9

3) 配置安装busybox

#make menucongfig

4) 生成JFFS2文件系统

#/mkfs.jffs2 -r root -o rootfs.img -e 0x20000 --pad=0xd00000

移植好文件系统后,便可以通过U-boot引导,并挂载该文件系统根分区启动

4 系统测试

开发的基于的PC/104 Linux系统硬件如图1所示。室温25℃,通风良好条件下,经测试,系统能够启动并稳定运行(如图2),通过PING命令测试表明,系统能够与外网连通(如图3),且工作稳定,系统构建成功。

图1 PC/104开发板

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭