欢迎来到天天文库
浏览记录
ID:50475707
大小:2.22 MB
页数:183页
时间:2020-03-14
《基于linux的嵌入式软件开发ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重点回顾TCP通信过程1重点回顾UDP通信过程2第三章基于Linux的嵌入式软件开发3.1嵌入式软件结构3.2嵌入式软件开发流程3.3嵌入式linux开发环境3.4嵌入式系统引导代码3.5linux内核结构及移植3.6嵌入式文件系统及移植3.7linux设备驱动概述3.8设备驱动程序接口3.9linux设备驱动开发流程33.1嵌入式软件结构3.1.1嵌入式软件体系结构3.1.2基于Linux的嵌入式软件43.1.1嵌入式软件体系结构51.设备驱动层设备驱动层是嵌入式系统中必不可少的重要部分,使用任何外部设备都需要有相应驱动程序的支持,它为上层软件提供了设备的操作接口。上层软件不
2、用理会设备的具体内部操作,只需调用驱动层程序提供的接口即可。驱动层一般包括硬件抽象层HAL、板级支持包BSP和设备驱动程序。62.实时操作系统RTOS对于使用操作系统的嵌入式系统而言,操作系统一般以内核映像的形式下载到目标系统中。以Linux为例,在系统开发完成之后,将整个操作系统部分做成内核映像文件,与文件系统一起传送到目标系统中;然后通过BootLoader指定地址运行Linux内核,启动已经下载好的嵌入式Linux系统;再通过操作系统解开文件系统,运行应用程序。整个嵌入式系统与通用操作系统类似,功能比不带有操作系统的嵌入式系统强大了很多。73.中间件层中间件(middle
3、ware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。84.应用程序实际的嵌入式系统应用软件建立在系统的主任务(MainTask)基础之上。用户应用程序主要通过调用系统的API函数对系统进行操作,完成用户应用功能开发。在用户的应用程序中,也可创建用户自己的任务。任务之间的协调主要依赖于系统的消息队。93.1.2基于Linux的嵌入式软件基于嵌入式Linux的软件结构如图所示
4、,在硬件之上的是引导程序BootLoader,然后是Linux内核,最上层是应用程序。101.BootLoader引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(MasterBootRecord,(MBR))中,或者装入Linux驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS将控制移交给引导装载程序。而在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。111.BootLoader通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图
5、,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。常见的BootLoader有uboot、vivi等。引导程序的开发主要是做一些移植工作。122.内核Linux内核的开发主要包括Linux内核的定制、裁剪等工作。在嵌入式开发中经常要面对设备驱动程序的开发,嵌入式系统通常有许多设备用于与用户交互,象触摸屏、小键盘、滚动轮、传感器、RS232接口、LCD等等。除了这些设备外,还有许多其它专用设备,包括闪存、USB、GSM等。内核通过所有这些设备各自的设备驱动程序来控制它们,包括GUI用户应用程序也通过访问这些驱动程序来访问设备。133.应用程序
6、对于嵌入式Linux的应用,大多数的应用并不需要图形界面,比如交换机、路由器、嵌入式网关以及服务器等等。但是,随着消费类电子的普及,越来越多的嵌入式产品如多媒体播放、手机等手持设备需要图形用户界面(或称GUI)的支持。因此基于GUI的应用程序的开发越来越重要。目前比较流行的GUI平台有Qt/Embedded、紧缩的XWindows系统、MicroWindows以及MiniGUI系统。143.2嵌入式软件开发流程3.2.1嵌入式Linux设计概述3.2.2基于开发板的二次开发3.2.3基于linux的嵌入式软件开发流程153.2.1嵌入式Linux设计概述163.2.1嵌入式Li
7、nux设计概述嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发平台叫做目标板。运行Linux的PC(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。)然后把可执行文件下载到目标机上运行。17宿主机(host)是编辑和编译程序的平台,一般是基于X86的PC机,通常也称为主机。而目标机(target)是用户开发的系统,通常都是非X86平台。Host编译
此文档下载收益归作者所有