专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »嵌入式开发 » 嵌入式linux:基于PC/104平台嵌入式Linux的核心定制方法 »正文

嵌入式linux:基于PC/104平台嵌入式Linux的核心定制方法

来源: 发布时间:星期五, 2008年12月12日 浏览:2次 评论:0

作者:刘志勇吴健

本文就如何对Linux系统核心实现定制进行论述主要内容包括Linux内核部分和文件系统系统定制硬件平台是PC/104单片机之所以将Linux内核定制、文件系统定制单独讨论在基于任何平台Linux系统定制过程中其内核和文件系统定制工作都具有相似特征和相似过程

在基于PC/104平台嵌入式Linux研制过程中进行核心定制主要目是从需求出发使系统最大程度地满足应用需要、最大程度地适应系统硬件平台、最优化地支持系统外围设备和应用并且尽量减少对系统资源占用、减少系统功耗增强系统安全性、稳定性、可靠性另外使系统真正地实现产权自主化

内核定制

般操作系统内核从体系结构角度可以划分为两种:微内核体系结构、单内核体系结构微内核体系结构只在内核中包括了些基本内核功能其它部分在用户内存空间运行这种结构需要在各层之间进行因此会有消耗使执行效率不如单内核体系结构Linux采用单内核体系结构内核所有部分都集中在这样能使系统各部分直接沟通有效地缩短任务之间切换时间提高了系统响应速度实时性好并提高了CPU利用率但在系统比较大时候体积也比较大与嵌入式系统容量小、资源有限特点不符合因此需要进行非常精细定制以适应嵌入式系统需要

内核版本

Linux是完全公开任何人只要遵循GPL就可以对内核加以修改并发布给他人使用Linux开发采用是双树系统个树是稳定树(stable tree)个树是非稳定树(unstable tree)或称开发树(development tree)些新特性、实验性改进等都将首先在开发树中进行如果在开发树中所做改进也可以应用于稳定树那么在开发树中经过测试以后在稳定树中将进行相同改进旦开发树经过了足够发展开发树就会成为新稳定树开发树就体现在源版本号中;源版本号形式为x.y.z对于稳定树来说y是偶数;对于开发树来说y比相应稳定树大(是奇数)到目前为止稳定树最高版本是2.4.21开发树最新版本是2.5.73本项目采用内核版本是2.2.20选择2.2.20版本内核主要原因有:
a.版本为2.0及以前内核中设备驱动不如2.2版本全面;
b.版本为2.2内核增加了很多新特性;
c.新版本为2.4内核对PC/104CPU块支持不好;
d.由于不明原因版本为214内核对PC/104 ;
e.版本为2.4内核相对庞大编译后内核文件也相对较大;
f.版本为2.2内核已完全能够满足本项目需要

目前大多数面向数据采集嵌入式Linux研制工作都是基于版本2.0/2.2内核进行实际上内核版本提升其复杂度也随之升高也会给嵌入式系统定制工作带来很多困难

内核设置

内核设置工作可以通过直接修改内核源代码中Make file文件、Config.in文件和内核源代码根目录下.config文件来完成内核源代码中每个目录都有各自用途每个子目录下也都有相应Make file文件例如在目录drivers/block/ Config.in文件中有如下语句:
[“$CONFIG_BLK_DEV_HD_DE”=
“y”-o“$CONFIG_BLK_DEV_HD_ONLY”=
“y”];then
_boolCONFIG_BLK_DEV_HDy

_boolCONFIG_BLK_DEV_HDn
fi
这段语句作用是定义在块设备中DE块设备驱动可以被编译在内核中也可以被编译成内核模块采用修改配置文件方式设置内核比较复杂而且容易出现但是对深入剖析和理解内核帮助很大比较有效方式还是直接利用Linux内核提供工具进行内核设置在Linux源代码目录下Linux内核设置命令是:
# make menu config
命令执行后会显示型菜单配置环境在该环境中有以下选项通过这些选项设置可以定制Linux内核各项功能并对内核实现裁减下面对主要设置选项进行介绍:

(1) Code maturity level options代码成熟等级此处只有项:prompt for development and/or incomplete code/drivers如果要试验现在仍处于实验阶段功能就必须把该项选择为Y了;否则可以把它选择为N在这部分设定是否允许内核些试验选项被使用

(2)Load able module support对可加载模块支持可加载模块码不是内核部分但是当需要它时候可以被同内核起加载并使用如果将内核代码编译成可加载模块可以使内核更小而且更稳定但是需要注意如果将文件系统代码编译为可加载模块将使内核无法读取文件系统因此在启动时候内核无法加载配置文件
这里面有3项:
Enable loadable module support:提供内核支持;
Set version information _disibledevent='A6afbaiducukBMH'>

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: