嵌入式LINUX系统的实现
嵌入式linux操作系统原理与应用

嵌入式Linux操作系统是一种针对嵌入式设备设计和优化的Linux操作系统。
它在嵌入式系统中发挥着关键作用,为嵌入式设备提供了丰富的功能和灵活性。
以下是嵌入式Linux操作系统的原理和应用方面的概述:嵌入式Linux操作系统原理:内核:嵌入式Linux操作系统的核心是Linux内核,它提供了操作系统的基本功能,包括处理器管理、内存管理、设备驱动程序、文件系统和网络协议栈等。
裁剪:为了适应嵌入式设备的资源限制,嵌入式Linux操作系统通常经过裁剪和优化,只选择必要的功能和驱动程序,以减小内存占用和存储空间,并提高性能和响应速度。
交叉编译:由于嵌入式设备通常具有不同的硬件架构和处理器,所以嵌入式Linux操作系统需要通过交叉编译来生成适用于目标设备的可执行文件和库。
设备驱动:嵌入式Linux操作系统需要适配各种硬件设备,因此需要编写和集成相应的设备驱动程序,以使操作系统能够正确地与硬件进行通信和交互。
嵌入式Linux操作系统应用:嵌入式设备:嵌入式Linux操作系统广泛应用于各种嵌入式设备,如智能手机、平板电脑、家用电器、工业控制系统、车载设备等。
物联网(IoT):随着物联网的快速发展,嵌入式Linux操作系统被广泛应用于连接的嵌入式设备,用于数据采集、通信、远程控制和智能化管理。
嵌入式开发板:嵌入式Linux操作系统在开发板上提供了丰富的开发环境和工具链,用于嵌入式软件开发和调试。
自定义嵌入式系统:开发者可以基于嵌入式Linux操作系统构建自定义的嵌入式系统,根据特定需求进行定制和开发,实现各种功能和应用。
嵌入式Linux操作系统的原理和应用非常广泛,它为嵌入式设备提供了灵活性、可定制性和强大的功能支持,使得开发者能够构建高度定制化和功能丰富的嵌入式系统。
嵌入式Linux操作系统的技术实现

嵌 入 式 L n x操 作 系 统 的 iu 技 术 实现
’
一 张 俊玲 赵 晖
随 着 微 处 理 器 的 产 生 ,价 格 低廉 、 构 小 巧 的 C 结 PU和 外 设 连 接 提 供 了 稳 定 、 可 靠 的 硬 件 架 构 ,那 么 限 制 嵌 入 式 系 统 发 展 的
系 统 计 算 机 的 R0M 中 。 8 更 好 ()
能 通 过 改 变 优 先 权 来 影 响 内 核 当 前 的 执 行 流 程 。 这 样 ,L n x iu 内核 可 以对 某 些 重 要 的 数 据 结 构进 行 修 改 , 不加 任 何 保 护 措 而
统 。2嵌 人 式 软 件 集 成 开 发 平 台 。 () () 入 式 数 据 库 管 理 软 件 。 3嵌
维普资讯
硬 件 与 嵌 入
∞■
Lnx和 嵌 入 式 系 统 都 是 计 算 机 学 术 领 域 中 的 技 术 热 点 , 两 者 的 结 合 为 它 们 开 辟 了新 i u
的 发 展 空 间 ,也 带 来 了许 多 新 的 技 术 问 题 。8  ̄ L u 运 用 于 嵌 入 式 系 统 所 产 生 的 技 术 问 f ix n 题 及 解 决 方 案 , 本 文 做 了详 细 的 阐 述 。
嵌 入 式 系 统 的 研 究 意 义 有
的 硬 件适 应性 , 就 是 良好 的 移 也
植性。
三 :第 一 ,有 助 于 推 动 我 国 在 嵌
入 式 领 域 的 发 展 。第 二 ,有 助 于
版权费 购买费用 技术支持 网络特性 软件移植 应用产品, 开发周期 实时性能 稳定 性
每生产一件产品需交纳一份版权费 人民币敦十万兀 由开发商独家提供有限阿技术支持 另加人 民币数十万购买 难 ,因 为是封闭 系统 长,因 为可参考 的代码有限 好 好
《基于嵌入式Linux的数据采集系统的设计与实现》

《基于嵌入式Linux的数据采集系统的设计与实现》一、引言随着信息技术的飞速发展,数据采集系统在各个领域的应用越来越广泛。
嵌入式Linux作为一种轻量级、高效率的操作系统,在数据采集系统中得到了广泛应用。
本文将介绍基于嵌入式Linux的数据采集系统的设计与实现,旨在为相关领域的研究和应用提供参考。
二、系统需求分析在系统需求分析阶段,我们首先需要明确数据采集系统的功能需求和性能需求。
功能需求主要包括:能够实时采集各种类型的数据,如温度、湿度、压力等;能够实时传输数据至服务器或本地存储设备;具备数据预处理功能,如滤波、去噪等。
性能需求主要包括:系统应具备高稳定性、低功耗、快速响应等特点。
此外,还需考虑系统的可扩展性和可维护性。
三、系统设计1. 硬件设计硬件设计是数据采集系统的基础。
我们选用一款具有高性能、低功耗特点的嵌入式处理器作为核心部件,同时配备必要的传感器、通信模块等。
传感器负责采集各种类型的数据,通信模块负责将数据传输至服务器或本地存储设备。
此外,还需设计合理的电源模块,以保证系统的稳定性和续航能力。
2. 软件设计软件设计包括操作系统选择、驱动程序开发、应用程序开发等方面。
我们选择嵌入式Linux作为操作系统,具有轻量级、高效率、高稳定性等特点。
驱动程序负责与硬件设备进行通信,实现数据的采集和传输。
应用程序负责实现数据预处理、存储、传输等功能。
四、系统实现1. 驱动程序开发驱动程序是连接硬件和软件的桥梁,我们根据硬件设备的接口和协议,编写相应的驱动程序,实现数据的实时采集和传输。
2. 应用程序开发应用程序负责实现数据预处理、存储、传输等功能。
我们采用C/C++语言进行开发,利用Linux系统的多线程、多进程等特性,实现系统的并发处理能力。
同时,我们利用数据库技术实现数据的存储和管理,方便后续的数据分析和处理。
3. 系统集成与测试在系统集成与测试阶段,我们将硬件和软件进行集成,进行系统测试和性能评估。
嵌入式LINUX系统的实现

人/ 输出, 以及存储系统 。在硬件层之上是一 个嵌入式 L u 操作系统l 图形用户界 面 ix n 4 儿
( 汉化 X Wi o s 运行在操作 系统 之上 , n w) d 最 上层 的是 嵌入式 Lnx系统 的应用部分 , i u 包 括 wwW浏览器 , 电子 邮件 系统 和视频点播 系统 引。
图 1 嵌入式 Ln x系统的硬 件结构 iu
用于系统较为成熟 、 稳定时 , 将软件系统 固化
网络板主要是 C b oe 线 缆调 制 al m dm( e 解调器 ) 是通过 C b v C T ) 网络进行 al T ( A V 、 e
后的场合 。我们构建 的嵌入式系统将 同时支
持该两种工作模式 。系统 的工作模式选择的 实现方法 , 以通过单板拨码开关来设置 , 可 也 可以通过引导时从串 口获取 的系统配置信息
高速访问的通信设备。它的主要作用是利用 现有的有线 电视 的宽带 网络, 传送大量 的高 速数据。网络板 中还有 协议转换功能 , 负责 将 H C数据流转换成以太网的 M C帧并转 F A
要求。 ’
象处理和显示 板能支 持 M E P G数字 解压缩
和电视终端显示 , 输人控制包括遥控键盘、 遥 控器和其他一些输人设备接 口, 存储板主要 用来连锁模式 的切换 , 使模式从酸模式 自动 切换到水模式 , 另一个超低限位报警温度用 来连锁三个喷枪 , 使得三个喷枪 自动从焙烧 炉提升出来 , 从而保护喷枪 。
交给主机板处理。而其 中的 T / 和 1 vA V s 流则直接交 给解 码板处 理。对 于解 码板 来 说, 除了标准的 V A显示 功能 以外 , G 还包 括
的方式来取得 。考虑到系统工作配置信息 的 灵活性 , 我们 采用拨 码开关 与 串 口结合的方
嵌入式Linux系统开发教程实验报告

嵌入式实验报告:学号:学院:日期:实验一熟悉嵌入式系统开发环境一、实验目的熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。
使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。
二、实验容本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。
创建一个新目录,并在其中编写hello.c 和Makefile 文件。
学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。
下载已经编译好的文件到目标开发板上运行。
三、实验设备及工具硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。
软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。
四、实验步骤1、建立工作目录[rootlocalhost root]# mkdir hello[rootlocalhost root]# cd hello2、编写程序源代码我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[rootlocalhost hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq!”保存并退出。
这样我们便在当前目录下建立了一个名为hello.c的文件。
hello.c源程序:#include <stdio.h>int main() {char name[20];scanf(“%s”,name);printf(“hello %s”,name);return 0;}3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。
嵌入式Linux中CramFS根文件系统的移植实现

嵌入式Linux中CramFS根文件系统的移植实现在嵌入式Linux系统开发中,根文件系统是一个重要的组成部分。
而CramFS是一种专门针对嵌入式系统应用的文件系统格式,其最大的优势是占用空间小,是一种压缩方式的文件系统,可大幅度减小系统的存储容量,因此在嵌入式系统开发中经常使用。
本文将介绍嵌入式Linux中CramFS根文件系统的移植实现。
一、CramFS的特点CramFS是Linux下的一种轻量级只读文件系统,以一种特殊的方式进行压缩,并且数据文件被强制以固定大小的块存储。
与其他文件系统不同,CramFS在挂载时不需要解压缩,因为它已经被预先压缩了。
CramFS还具有以下特点:(1)支持文件系统压缩,可大幅度降低系统存储空间占用。
(2)只读的文件系统,可以保证文件系统的完整性和安全性。
(3)支持嵌入式系统的启动和挂载。
二、CramFS根文件系统移植实现在嵌入式系统开发中,CramFS根文件系统的移植实现步骤如下:1、准备文件系统首先需要构建CramFS文件系统。
可以在Linux环境下创建CramFS文件系统,也可以将现有的文件系统转换为CramFS 格式。
构建好CramFS文件系统后,需要将其打包成initramfs 格式。
2、配置内核将打包好的initramfs文件放到内核源码根目录下,并在内核配置文件中进行相关配置:```CONFIG_INITRAMFS_SOURCE="<path>/initramfs.cramfs" CONFIG_RD_GZIP=yCONFIG_RD_XZ=yCONFIG_RD_LZMA=yCONFIG_RD_BZIP2=y```其中,INITRAMFS_SOURCE是initramfs所在的路径。
3、编译内核对内核进行编译,生成内核和相关驱动。
4、烧录将生成的内核和相关驱动烧录到目标设备中,然后重启设备。
三、总结CramFS是一种专门针对嵌入式系统应用的文件系统格式,它具有压缩率高、只读文件系统、支持启动和挂载等优点。
嵌入式Linux系统中图片解码和显示的高效实现方法

嵌入式Linux系统中图片解码和显示的高效实现方法嵌入式Linux系统在各种应用场景中得到了广泛的应用,其中包括图片解码和显示。
在嵌入式设备上高效地实现图片解码和显示是非常重要的,本文将介绍一些高效的实现方法。
一、图像解码方法1. 使用硬件解码器:通常,嵌入式设备中都会搭载硬件图像解码器,如图像编解码处理器(VPU)或者硬件加速器。
这些硬件解码器可以显著提高解码效率,减轻CPU的负担。
2. 使用软件解码器:如果嵌入式设备没有硬件解码器,可以选择一些高效的软件解码器。
例如,FFmpeg是一款广泛使用的优秀开源软件,可以实现多种图像和视频格式的解码。
3. 采用压缩格式:在图片存储和传输过程中,可以选择使用一些压缩格式的图像,如JPEG、PNG等。
这样可以减小图像文件的大小,加快传输速度,并且在解码时可以节省解码时间。
二、图像显示方法1. 使用硬件加速:嵌入式设备上常常会具备硬件加速能力,如GPU、DSP等。
利用硬件加速可以大大提高图像显示的效率和质量。
2. 双缓冲技术:在图像显示过程中,常常会遇到图像闪烁的问题。
为了解决这个问题,可以采用双缓冲技术,即使用两个缓冲区,一个用于解码图像,另一个用于显示图像。
这样可以在显示过程中避免图像闪烁,并提高显示效率。
3. 显示缩放:在嵌入式设备上,常常需要将高分辨率的图像或视频适配到设备屏幕的分辨率上。
为了高效地实现显示缩放,可以使用硬件加速器或者算法优化等方法。
三、优化策略1. 数据存取优化:图像解码和显示中,大量的数据需要被读取和写入。
为了提高效率,可以采用数据预读取、缓存机制等方法,减少数据存储和读写操作的时间。
2. 多线程并行处理:在现代嵌入式处理器中,多核处理器已经变得非常常见。
利用多线程并行处理的优势,可以同时进行图像解码和显示操作,提高整体处理效率。
3. 算法优化:在软件实现的图像解码和显示过程中,可以针对具体的应用场景进行算法优化。
例如,对于嵌入式设备的特殊特性,可以优化解码算法的复杂度,提高解码速度。
Qt嵌入式LinuxGUI研究报告与实现

Qt/E 的嵌入式Linux GUI 研究与实现摘要:嵌入式GUI(Graphical User Interface 〉为嵌入式系统提供了一种应用于特殊场合的人机交互接口(Man-MachineInterface 〉。
由于嵌入式系统本身的硬件资源有限,要求嵌入式不同的硬件条件和使用需求。
本文首先介绍了嵌入式LinuxGUI 目前的发展状况及各自的特点,然后针对目前主流的嵌入式 Qt/Embedded ,阐述其图形引擎的实现。
最后,结合三星公司 具体平台上的实现和应用。
关键字:ARM9 Linux 交叉编译 嵌入式 GUI Qt Qt/Embedded Qtopia FrameBuffer Signals/SlotsResearch and Realization of Embedded Linux GUI based on Qt/EmbeddedTang Wei, Li Qiang(College of Computer Science, HangZhouDianZiUniversity, Hang Zhou, 310018, China>Abstract: The Embedded GUI(Graphical User Interface>provides a Man-Machine Interface used in special occasions for Embedded Systems. Since the embedded system itself limited hardware resources, whose requirements of embedded GUI is highly portable and can be cut of, so as to adapt to the conditions and use different hardware requirements. This article firstly introduces the current development of embedded Linux GUI and their own characteristics, and then for the current mainstream embedded GUI system--Qt/Embedded,described the realization of its graphics engine. What ' more, it Combined with Samsung S3C2410 development board, introduced the achieving and application on a specific platform for embedded GUI system .Keywords: ARM9 Linux Cross-Compiling Embedded GUI Qt Qt/Embedded Qtopia FrameBuffer Signal/Slots1引言由于嵌入式系统的特殊性,它一般不会建立在庞大的操作系统以及GUI 之上,女口 Windows 或XWindows,它对实时性的要求非常高,对GUI 的要求更高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式LI N UX系统的实现检修厂 王小康摘 要嵌入式系统正变得越来越流行。
被广泛地应用在各种网络设备、控制设备以及个人的数字工具如PDA中。
文章论述了作者在嵌入式操作系统领域里所做的研究和实践工作,主要的工作围绕着将L i nux改造成嵌入式操作系统所进行的具体工作展开,包括单板配置代码,系统的引导与修改,核心映象定制与修改和调试工作。
1 引言在当今数字信息技术、网络技术高速发展与发达的后PC时代,嵌入式系统无处不在,并将不断涌现出新的嵌入式应用系统。
传统的操作系统软件[1][2]很难有效地支持嵌入式应用系统的快速开发,因而研究与开发嵌入式操作系统,对有效的支持广大的嵌入式应用系统开发具有重大意义,是十分必要的。
L i n ux正在向嵌入式领域的各个方面进军,在不久的将来,我们可以发现嵌入式L i n ux的广泛的应用:各种车载嵌入式设备(GPS,电子地图)、消费电子设备、手持电脑(H PC,PDA)、蜂窝电话、Internet接入设备、工控设备以及各种网络的基础设施(网管设备,路由,网关,交换器,HUB等)[3]。
本文是围绕着嵌入式L i n ux系统的实现展开的。
首先介绍嵌入式L i n ux系统的硬件结构和软件结构;然后对基于L i n ux的嵌入式实时操作系统的实现过程进行详细的阐述;最后是简短的总结。
2 嵌入式L inux系统的硬件结构嵌入式L i n ux系统硬件系统是个微形化的专用PC,它包括系统主机扳、通讯接口板、图象处理和显示板、输入控制板以及存储板等。
主机板可采用嵌入式X86CPU系列,图象处理和显示板能支持MPEG数字解压缩和电视终端显示,输入控制包括遥控键盘、遥控器和其他一些输入设备接口,存储板主要要求。
7 设计报警和连锁保护系统报警系统的作用在于及时提醒操作人员密切注意监视生产状况,以便采取措施减少事故的发生,连锁保护系统是指当生产出现严重事故时,为保证设备和人身的安全,使各个设备按一定次序紧急停下来。
在焙烧炉的炉顶温度控制中,根据工艺要求,一个高限报警温度为480度;三个连锁保护温度设定,一个超高限报警温度自动连锁烧嘴,引起烧嘴自动熄火,从而立即引起调节阀的自动关闭,防止煤气流入焙烧炉,一个低限位报警温度用来连锁模式的切换,使模式从酸模式自动切换到水模式,另一个超低限位报警温度用来连锁三个喷枪,使得三个喷枪自动从焙烧炉提升出来,从而保护喷枪。
8 控制系统的调试和运行状况控制系统安装完成后,应随生产过程进行试运行,按控制要求检查和调整各控制仪表和设备的工作状况,包括调节器的P、I等参数整定,依次将全部控制系统投入运行,在从投入运行到现在有半年多的时间了,发现焙烧炉的炉顶温度控制效果好,系统运行比较稳定。
20包括FLAS H ROM,RAM 等存储器。
其硬件结构如图1所示。
图1 嵌入式L i nux 系统的硬件结构网络板主要是Cab le m ode m (线缆调制解调器)是通过Cab le TV (C ATV )、网络进行高速访问的通信设备。
它的主要作用是利用现有的有线电视的宽带网络,传送大量的高速数据。
网络板中还有协议转换功能,负责将H FC 数据流转换成以太网的MAC 帧并转交给主机板处理。
而其中的TV A /V 和TS 流则直接交给解码板处理。
对于解码板来说,除了标准的VGA 显示功能以外,还包括M PEG 数据流的解码,系统通过应用软件来切换解码板的两种输出。
3 嵌入式L inux 系统的的软件结构嵌入式L i n ux 系统的层次软件结构如图2所示,它的层次结构,从下到上分别是:在最下层是基本的硬件层,包括网络,视频,输图2 嵌入式L i nux 系统的软件结构入/输出,以及存储系统。
在硬件层之上是一个嵌入式L i n ux 操作系统[4][5]图形用户界面(汉化X W indo w s)运行在操作系统之上,最上层的是嵌入式L i n ux 系统的应用部分,包括WWW 浏览器,电子邮件系统和视频点播系统[6]。
4 嵌入式L inux 系统的实现作为典型的嵌入式系统开发范例,我们采用两种系统工作模式设定:基于网络的工作模式与基于Flash /ROM 的工作模式。
网络工作模式主要用于系统的开发、调试以及升级阶段。
而Flash /ROM 的工作模式主要用于系统较为成熟、稳定时,将软件系统固化后的场合。
我们构建的嵌入式系统将同时支持该两种工作模式。
系统的工作模式选择的实现方法,可以通过单板拨码开关来设置,也可以通过引导时从串口获取的系统配置信息的方式来取得。
考虑到系统工作配置信息的灵活性,我们采用拨码开关与串口结合的方式。
当拨码开关设置成F lash /ROM 工作方式时,一切引导与系统配置按缺省的方式进行;当拨码开关设置成网络工作模式时,系统的配置信息从串口获取。
嵌入式L i n ux 系统的实现包括单板配置代码,系统的引导与修改,核心映象定制与修改,网络驱动程序以及网络程序设计,和调试工作[7]。
以下分别对它们进行详细介绍。
4.1 单板配置代码(B l O S)系统加电启动后,整个单板处于不确定状态,需要对单板进行配置,对其各个控制器编程,从而使单板处于确定的工作状态下。
这对应PC 主板上电后为系统B I O S 所要完成的任务。
为了简化该部分的设计,我们只实现了一些基本配置工作,而并不提供一些可调用的中断处理服务过程。
具体包含如下:a 初始化芯片及各控制器状态,使单板21由上电后的不确定状态转换成确定的工作状态,包括配置内存控制器等等。
b 检测系统各单元,包括内存设备。
c 建立一些系统参数表。
d 进入系统引导代码。
整个系统初始配置代码,利用上电后,CS 为0xFFFF ,I P 为0的特性,此时系统执行的第一条指令从0xFFFF0处取得。
该处为系统的RO M 区,在我们的系统中只使用了其高256KB ,并将其配置到系统空间的0xC0000-0xFFFF 区域。
4.2 系统的引导与修改系统的引导主流程图如下图3图3 系统引导主流程引导代码放置在0xC000 0100开始处。
由于引导过程中我们需要进行段内数据写操作(此时工作在实模式状态),在引导代码中,这些数据与代码是处于同一段内的。
因此,我们首先需要将引导代码进行搬移,将其位置从0xC000 0000搬到0X9000 0000处。
在完成各段地址的正确装配后,才真正开始上图所示的系统引导主流程。
整个引导过程是一个装配性很强的工作,其中涉及一些参数传递的问题。
我们使用256B 的数据空间用于放置引导过程向系统核心传递的参数,该区域是9000 0000~9000 0100这块区域。
通过该区域实现与系统核心的通信。
这些参数包括:内存大小(m e m size)、使用NFS 时的nfsRoo t 、n fsSer ver -Ip 、nfs T argetI p 等。
核心在setup_arch 时分析并获取这些参数。
引导本身也需要相关的参数,主要是网络引导时需要的服务器hostI -p A ddr 、targetl p Addr 、映象目标文件名i m age -F ile N a m e 等,这些参数通过串口来获取。
a F l a sh 引导。
核心映象存储在本地flash 中,该地址区域为0xC80000开始的区域,其第一个D WORD 指示了压缩核心映象的大小。
为了从该区域读取映象,首先需要切换到保护模式状态,然后将该映象拷贝到从0x1000开始的地方,再跳转到0x1000处开始执行正常的核心解压与执行的过程。
核心执行过程中需要根文件系统的支持,在Flash 引导方式中,其核心我们进行了修改,在安装根文件系统时,我们采用ra m-disk 方式,将根文件系统从flash 中载入。
F l a sh 方式引导所需的映象及文件系统,我们通过自己开发的flash 写程序来写入。
不过此时我们需要先以网络引导方式,让系统运行。
b 网络方式引导。
我们以TFTP 方式完成核心映象的网络下载。
在此之前,先通过串口获得ser ver 及自己的I P 信息,以及核心映象的位置,以及系统运行时,我们进行指定的一些参数,包括采用NFS 根文件系统所需的一些参数。
然后根据这些参数,进入tftp 网络下载过程,将核心映象载入到0x1000开始的地方,下载完成后进行一些初始化工作,切入保护模式,再跳转到0x1000处进行正常的核心解压与远行过程[8]。
在核心安装根文件系统时,根据分析从串口获得的配置数据,安装NFS 根文件系统。
224.3 核心映象定制与修改我们对系统的启动部分进行修改,主要在传入系统参数方案上进行了更改,同时为了支持flash的工作方式进行了针对性的修改。
由于我们只是实现了通常B I O S的配置部分代码,而并没有实现B I O S的一些服务接口,因此,我们对L i n ux中依赖B I O S服务的部分进行了删改,主要去掉了PC I的支持服务。
L i n ux本身可进行编译配置,从而取得所需要精简的核心。
L i n ux需要根文件系统的支持,用于提供系统运行的数据环境。
针对具体的嵌入式应用提供相应的精简的根文件系统支持是必要的,尤其对于写入flash中时的根文件系统映象,这是嵌入式系统资源有限的约束要求。
4 4 调试系统的调试是开发中的主要问题,它分为三个阶段:配置引导代码的调试、系统核心的调试、应用模块的调试。
其中对于配置引导代码的调试,我们主要通过数码显示管来进行,确认其运行的状况。
对于系统核心的调试比较好的方法是在系统单板方建立起gdb调试的一个st u b,然后通过串口远程调试系统核心。
然而目前,x86体系的系统核心在这种方式下调试还有困难。
因此实际过程中,我们的调试是通过网络sn iff工具,结合串口输出信息来进行的。
为了能够通过现有的网络sniff工具来调试系统,我们利用arp报文包来输出调试信息。
等系统核心运行起来后,调试的方式就要方便多了,我们可通过te l n et直接连到单板上的系统上,就象在通常的PC上一样对应用模块进行调试。
5 结语本文围绕着嵌入式L i n ux系统的实现展开,在对改造成嵌入式L i n ux操作系统进行的工作中,解决了单板配置代码,系统的F lash引导、网络方式引导,核心映象定制与修改,调试等开发中的主要问题,实现了预期功能,具有一定的借鉴性。
我们结合对L i n ux在嵌入式系统中应用的研究,在基于X86的单板上建立并实现嵌入式系统开发平台与环境,在该平台上可以进一步开发专门的嵌入式应用系统。
今后的工作将集中在,充分利用现有的资源,优化GU I人机接口,提高系统的智能型,并且利用现在网络通信的发展,通过网络接口,进一步开发扩展嵌入式系统的功能。