基于linux的嵌入式软件开发.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Linux的嵌入式软件开发 内容提要: 3.1 嵌入式软件结构 3.2 嵌入式软件开发流程 3.3 嵌入式linux开发环境 3.4 嵌入式系统引导代码 3.5 linux内核结构及移植 3.6 嵌入式文件系统及移植 3.7 linux设备驱动概述 3.8 设备驱动程序接口 3.9 linux设备驱动开发流程 3.1嵌入式软件结构 3.1.1嵌入式软件体系结构 3.1.2基于Linux的嵌入式软件 3.1.1嵌入式软件体系结构 1.设备驱动层 设备驱动层是嵌入式系统中必不可少的重要部分,使用任何外部设备都需要有相应驱动程序的支持,它为上层软件提供了设备的操作接口。上层软件不用理会设备的具体内部操作,只需调用驱动层程序提供的接口即可。驱动层一般包括硬件抽象层HAL、板级支持包BSP和设备驱动程序。 2.实时操作系统RTOS 对于使用操作系统的嵌入式系统而言,操作系统一般以内核映像的形式下载到目标系统中。以Linux为例,在系统开发完成之后,将整个操作系统部分做成内核映像文件,与文件系统一起传送到目标系统中;然后通过BootLoader指定地址运行Linux内核,启动已经下载好的嵌入式Linux系统;再通过操作系统解开文件系统,运行应用程序。整个嵌入式系统与通用操作系统类似,功能比不带有操作系统的嵌入式系统强大了很多。 3.中间件层 中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 4.应用程序 实际的嵌入式系统应用软件建立在系统的主任务(Main Task)基础之上。用户应用程序主要通过调用系统的API函数对系统进行操作,完成用户应用功能开发。在用户的应用程序中,也可创建用户自己的任务。任务之间的协调主要依赖于系统的消息队。 3.1.2基于Linux的嵌入式软件 基于嵌入式Linux的软件结构如图所示,在硬件之上的是引导程序BootLoader,然后是Linux内核,最上层是应用程序。 1.BootLoader 引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(Master Boot Record,(MBR))中,或者装入 Linux 驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS 将控制移交给引导装载程序。而在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。常见的BootLoader有uboot、vivi等。引导程序的开发主要是做一些移植工作。 2.内核 Linux 内核的开发主要包括Linux内核的定制、裁剪等工作。在嵌入式开发中经常要面对设备驱动程序的开发,嵌入式系统通常有许多设备用于与用户交互,象触摸屏、小键盘、滚动轮、传感器、RS232 接口、LCD 等等。除了这些设备外,还有许多其它专用设备,包括闪存、USB、GSM 等。内核通过所有这些设备各自的设备驱动程序来控制它们,包括 GUI 用户应用程序也通过访问这些驱动程序来访问设备。 3.应用程序 对于嵌入式Linux的应用,大多数的应用并不需要图形界面,比如交换机、路由器、嵌入式网关以及服务器等等。但是,随着消费类电子的普及,越来越多的嵌入式产品如多媒体播放、手机等手持设备需要图形用户界面(或称 GUI)的支持。因此基于GUI的应用程序的开发越来越重要。目前比较流行的GUI平台有Qt/Embedded、紧缩的X Windows系统、MicroWindows以及MiniGUI系统。 3.2嵌入式软件开发流程 3.2.1 嵌入式Linux设计概述 3.2.2 基于开发板的二次开发 3.2.3 基于linux的嵌入式软件开发流程 3.2.1 嵌入式Linux设计概述 嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发平台叫做目标板。运行 Linux 的 PC(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。)然后把可执行文件下载到目标机上运行。 宿主机(host)是编辑和编译程序的平台,一般是基于 X86 的 PC 机,通常也称为主机。而目标机(target)是用户开发的系统,通常都是非 X8

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档