linux嵌入式系统与硬件平台_第1页
linux嵌入式系统与硬件平台_第2页
linux嵌入式系统与硬件平台_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、linux 嵌入式系统与硬件平台王铮、刘渝萍完好的电器设备一般要包括软件和硬件两大部分。本文试图从linux 软件系统、硬件平台以及开发流程来讨论linux嵌入式系统与硬件平台的关系。一、linux 嵌入式系统统由于硬件的先天限制,经常只具有极稀少的硬件资源,如频率较低的 cpu、较少的内存、常不具有磁盘而用小容diskonchip diskonmodule。在使用电池的系统中,它还要实现节省电池消耗、延长电池使用时间的功能。linux 作为嵌入式操作系统是完全可行的,因为 linux 提供了完全嵌入功能的根本内核及所有用户界面。linux linux 的新成员。它对许多cpu 和硬件平台都是

2、易移植的、稳定的和易于开发的。嵌入式linux 系统需要三个根本元素:引导工具;linux 微内核、内存管理、 程序管理;初始化进程。假设要它成为完好的操作系统且继续保持小型化,还得加上硬件驱动程序、硬件接口程序、应用程序组。linux 是基于gnu 的c 编译器,作为gnu 工具链的一部分,与gdb 调试器一起工作。它提供了开发嵌入式linux 系统的所有软件工具。以下是一个典型开发工具的使用流程:写入或植入引导程序;向串口打印字符串的编码;gdb 目的码移植工作串口,这可与另一台运行gdb 程序的linux 4.利用gdb 让硬件和软件初始化码在linux 内核启动时工作;linux内核启

3、动,串口成为linux 控制口并可用于后续开发;假设在你的目的硬件上运行了完好的linux内核,你可以调试你的应用进程。二、硬件平台常是关键的议题。当考虑本钱时,我们需要考虑产品的整个本钱,而不仅是cpu 的本钱。因为好的cpu 一旦加上总式软件系统,那么应首先确定硬件平台,即确定微处理器cpu 的型号。如今比较流行的硬件平台有intel 公司的strong arm motorola 公司的dragonball nec 公司的vr hitachi 公司 sh4 系列等等,它们都可选为硬件平台。在选定前先要确定所做系统的应用功能和所需速度,并且制定好外接设备和接口标准。这样可准确地定位所需要的硬

4、件方案,得到性价比最高的系统。图 1 是以intel 公司的strongarm 为例来说明硬件平台。图 1 intel 公司sa1110 微处理器构造示意图三、linux 嵌入式系统与硬件的关系我们可以将内核与任务分开来讲解linux 嵌入式系统在硬件上的工作流程linux 每一个应用程序都是从磁盘传输到内存上执行。当程序完毕后,它所占用的内存就被释放,程序也就被下载了。在 一个嵌入式系统里,可能没有磁盘。有两种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计。在一 个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统嵌入式系统的工作形式。 它同样可以被lin

5、ux 支持。有了linux,就有了第二种可能性。因为linux 卸载程序。一个嵌入式系统就可以利用它来节省内存。假设我们已构造一个系统,它包括一个大概8mb 16mb flash memory 8mb memory flash memory 驱动程序用来连接flash memory 和文件系统。作为替代,也可使用flash disk,用工具软件可把flash memory 仿真为磁盘。有一个例子就是intel 公司可提供flash memory ipsm -intel persistent storage manager, 详情见flbldr/swb/swb.htm。所有的程序都以文件形式存储

6、在flash 文件中,需要时可以装入内存。这种动态的、“根据需要加载的才能是支持其它一系列功能的重要特征:linux 同样有很多内核外运行的公用程序。这些公用程序在初始化时运linux 可加载模块的功能包括在内核里,驱动程序和应用程序就都可以被加载。它可以检查硬件环境并且为硬件装上相应的软件。这就消除了用一个程序占用许多flash memory 来处理多种硬件的复杂性。软件的晋级更模块化。你可以在系统运行的时候,在flash 上晋级应用程序和可加载驱动程序。配置信息和运行时间参数可以作为数据文件储存在flash 虚拟内存标准 linux 的另一个特征是虚拟内存的才能。正是这种神奇的特征使应用程

7、序员可以狂热地编写代码而不计后果,不管程序有多大。在嵌入式系统里不需要这种强大的功能。实际上,因为它会带来无法控制的时间因素,所以 每人会希望它在实时的系统里存在。这个软件必须设计得更加精悍,以适宜硬件平台上的物理内存,就像其它嵌入 式系统一样。注意:由于cpu 的原因,通常在linux 它支持共享文本,这样就可以使许多程序共享一个软件。虚拟内存的调入功能可以被关掉,只要将交换空间的大小设置为零。假设你写的程序比实际的内存大,系统就 会用尽交换空间来执行你的程序,那么这个程序将不会运行,或者malloc 将会失灵。在许多cpu 上,虚拟内存提供的内存管理可以将不同程序分开,防止它们写到其它地址

8、的空间上。这在嵌入式系统上通常是不可能的,因为它只 支linux 全局数据。这也可以通过 linux 共享内存功 能来支持,但共享的只是指定的内存部分。文件系统linux linux 提供ms-dos-compatible linux 还具有检查和维护的功能,商业性供应商往往不提供这些。这对于flash 系统来说尤其重要,因为它是通过网络更新的。假设系统在晋级过程中失去了才能,那它就没有用了。维护的功能通常可以 解决这类问题。flash memory 或其它这类的介质上。而且,用于暂时保存文件,一个ram flash memories cpu 启动时最初运行的软件的引导模块。这其中也可能包括l

9、inux 引导代码。剩余的flash linux 的内核可以通过引导代码从flash 复制到 ram,或者还有一个选择,内核可以被存储在flash cd-rom flash memory cd-rom 只要从 cd-rom 上引导,类似从硬盘上一样从cd-rom 上获得所有的程序。 支持network file 小的 ram ram 磁盘设置为基于网络web 效劳器通过简单的cgi script 存取状态信息。在其它电脑上运行的其它应用程序包可以很容易地存取数据。引导-lilo 和 bios 在哪里初始化或引导代码。类似于在pc 上的bios。它执行了一些低程度的cpu bios 继续识别哪个

10、磁盘里有操作系统,把操作系统复制到ram 并且转向它。实际上,这非常复杂,但对我们的目的来说也非常重要。在pc上运行的linux依靠pc bios 来提供这些配置和os加载功能。在一个嵌入式系统里经常没有这种 bios。这样你就要提供同等的启动代码。嵌入式系统并不需要像 pc 机上的bios “flash eprom 目的硬件和工具来定。一种流行的方法是把flash eprom 芯片插入eprom flash “另一个方法是通过一个jtag 界面。一些芯片有jtag 稳定性 非常好。移植到新微处理器家族的linux 内核运行起来与原来的微处理器一样稳异上,其中大多数是在内存管理和中断控制领域。一旦成功移植,它们就非常稳定。引导策略广泛依赖于硬件要求,而且你必须有方案地做一些定制的工作。设备驱动程序更加混乱:有些稳定有 pc 可以找到一个与你的需求相近的驱动程序修改一下。许多类似的驱动程序都非常相近,所以把磁盘、网络或一系列 的端口驱动程序从一个设备移植到另一个设备上通常并不难。你可能发现许多驱动程序都写得很好、很容易理解, 但你还是要准备一本关于内核构造的书在手头。总之,这些操作系统和linux linux 的优势在于源代码是公开、注释明晰和文档齐全。这样,你就可以控制和处理所出现的任何问题。四、如何开展嵌入式 linux

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论