Linux操作系统在嵌入式设计中分析与实现.docVIP

Linux操作系统在嵌入式设计中分析与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux操作系统在嵌入式设计中分析与实现

Linux操作系统在嵌入式设计中分析与实现   【摘要】本文介绍了在嵌入式系统设计中,如何实现Linux操作系统引导加载程序,系统代码的分析与移植,Linux内核和根文件系统的定制与移植,为系统的软件开发配置合适的环境。   【关键词】Linux;嵌入式设计;移植   1.引言   Linux操作系统由于其源代码公开而且免费,人们可以任意修改,以满足自己的应用,并且查错也很容易。同时遵从GPL,无须为每例应用交纳许可证费,有庞大的开发人员群体。Linux内核精悍,运行所需资源少,利用Linux操作系统做嵌入式程序开发也越来越多。   嵌入式Linux系统从软件的角度可以分为以下4个层次。   (1)引导加载程序:系统运行前的一小段程序,它在上电时开始执行,初始化硬件设备、建立系统参数表、准备好软件环境。   (2)Linux内核:操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。   (3)文件系统:包括根文件系统和建立于Flash内存设备之上的文件系统。里面包含了Linux系统能够运行所必须的应用程序、库等。   (4)用户应用程序:特定于用户的应用程序,它们也存储在文件系统中。   2.系统引导代码的分析与移植   引导代码Bootloader的实现非常依赖具体的硬件,在嵌入式系统中硬件的配置千差万别,即使是相同的CPU,它们的外设也可能不同,所以建立一个通用的Bootloader几乎是不可能的。常见的Bootloader有BLOB、VIVI、U-BOOT、E-BOOT等。主要包括:   初始化最基本的硬件如CPU、FLASH、SDRAM、网卡等。使用CPU的串口0作为终端,与用户进行交互。实现简单的网络协议,大部分情况下是TFTP服务,通过网络下载内核,或下载文件系统。烧写FLASH。   以视频监控系统为例,采用的是BLOB Boot,BLOB的启动分为两个阶段,第一个阶段主要包含依赖CPU的体系结构初始化的代码,通常都用汇编语言来实现。这个阶段主要完成的工作是:   (1)基本的GPIO寄存器及系统时钟、外部RAM等基本硬件的初始化。   (2)拷贝Blob的第二阶段的代码及数据拷贝到RAM空间中并设置好堆栈指针。   (3)跳转到阶段2的C程序入口点。   第二阶???通常用C语言完成,以便实现更复杂的功能以及可读性和可移植性,主要任务有:   (1)初始化一些外围设备,如CF卡接口、USB接口及网卡等。   (2)将内核映像和文件系统映像从flash上读到RAM空间中。   (3)为内核设置启动参数。   (4)等待按键进入监控模式,否则调用内核启动系统。   配置BLOB和配置Linux内核一样,我们需要根据自己的开发板进行适当的配置,保存退出后执行“make”命令开始编译。编译之前,我们需要输入以下命令进行对Bootloader的配置:   ./configure--host=arm-linux--with-board=mainstone--with-linux-prefix=/pxa270_linux/linux/--enable-xlli--enable-network   编译时使用如下命令:   #make clean #make在配置好BLOB boot之后可通过JTAG接口烧写到实验板中。   3.Linux内核定制与移植   Linux内核由5个主要的子系统组成,分别为:进程调度、内存管理、虚拟文件系统、网络接口和进程间通信,它是整个Linux系统的灵魂。   对于内核的编译模式主要有两种,系统要增加对某部分功能的支持,比如摄像头驱动,在编译时可以把相应部分编译到内核中(build-in),也可以把该部分编译为模块(module)动态调用。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能。一般的编译原则是将常用的部分直接编译到内核中,比如网卡。将那些不常用的编译成模块,就会生成“.o”文件,在使用时可以动态加载,比如编译USB摄像头驱动时就是编译成了模块动态加载,在调试时可以动态加载,但调试好之后在做成产品时就需要编译进内核中,以便在系统启动时就支持摄像头的功能。   内核的编译主要有三个步骤:内核配置、建立依存关系、建立内核。具体步骤如下:   首先内核配置主要是对需要的功能进行配置和去除不需要的模块。   其次建立依存关系,执行命令make dep,产生两个文件.depend和.hdepend。其中.hdepend表示每个.h文件都包含哪些嵌入文件,而.depend文件有多个,在每个会产生目标的文件目录下都有,它表示每个目标文件都依赖哪些嵌入文件。   最后执行make zImage命令,开始编译内核,结束后会在/arch/ar

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档