精品嵌入式系统软件开发技术.ppt
《精品嵌入式系统软件开发技术.ppt》由会员分享,可在线阅读,更多相关《精品嵌入式系统软件开发技术.ppt(180页珍藏版)》请在启牛文库网上搜索。
1、 嵌入式系统软件开发技术,2006年6月23日,嵌入式系统,主要内容,版级支持包 BSP嵌入式系统初始化以及BSP的设计Linux系统驱动程序开发嵌入式联网,BSP的概念,BSP全称“板级支持包”(Board Support Packages),说的简单一点,就是一段启动代码,和计算机主板的BIOS差不多,但提供的功能区别就相差很大在Windows CE中,BSP是驱动程序、OEM适应层(OEM Adaptation Layers,OAL)、硬件抽象层(HAL)以及启动设备和使外设正常工作所需BIOS文件的集合。,BSP和BIOS区别,BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈
2、指针,中断分配,内存初始化.)、装入操作系统并调度操作系统向硬件发出的指令。BSP是和操作系统绑在一起运行,尽管BSP的开始部分和BIOS所做的工作类似,但是 BSP还包含和系统有关的基本驱动 BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置,但是程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中,不同系统中的BSP,一个嵌入式操作系统针对不同的CPU,会有不同的BSP即使同一种CPU,由于外设的一点差别BSP相应的部分也不一样,BSP的特点与功能,硬件相关性因为嵌入式实时系统的硬件环境具有应用相关性,所以,作为高层软件
3、与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。操作系统相关性不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式,BSP的设计与实现,为实现上述两部分功能,设计一个完整的BSP需要完成两部分工作:设计初始化过程,完成嵌入式系统的初始化;设计硬件相关的设备驱动,完成操作系统及应用程序对具体硬件的操作。,嵌入式系统初始化以及BSP的功能,嵌入式系统的初始化过程是一个同时包括硬件初始化和软件初始化的过程;而操作系统启动以前的初始化操作是BSP的主要功能之一 初始化过程总可以抽象为三个主要环境,按照自底向上、从硬件到软件的次序依次为:片级初始化板级初始
4、化系统级初始化,初始化过程,片级初始化:主要完成CPU的初始化设置CPU的核心寄存器和控制寄存器CPU核心工作模式CPU的局部总线模式等片级初始化把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态这是一个纯硬件的初始化过程,初始化过程(续1),板级初始化:完成CPU以外的其他硬件设备的初始化同时还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境这是一个同时包含软硬件两部分在内的初始化过程,初始化过程(续2),系统级初始化:这是一个以软件初始化为主的过程,主要进行操作系统初始化BSP将控制转交给操作系统,由操作系统进行余下的初始化操作:包括加载和初始
5、化与硬件无关的设备驱动程序建立系统内存区加载并初始化其他系统软件模块(如网络系统、文件系统等)最后,操作系统创建应用程序环境并将控制转交给应用程序的入口,硬件相关的设备驱动程序,BSP另一个主要功能是硬件相关的设备驱动与初始化过程相反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。,BSP开发的前提和步骤,开发的前提:熟悉硬件方面:使用CPU等熟悉工具方面:
6、电表,示波器,逻辑分析仪,硬件仿真器,仿真调试环境等语言方面:汇编语言,C语言BSP开发的一般步骤如下:硬件主板研制,测试操作系统的选定,BSP编程上层应用程序的开发,编写BSP函数,BSP对板卡中每个芯片的操作都通过多个函数来完成 如果应用程序对板卡的操作都直接通过调用BSP中的函数来完成,那将很不利于源程序的调试,并降低了程序的可移植性把能完成某个特定功能的函数封装在一个库文件中,并放在应用程序与BSP之间 对每个芯片来说,都应当有初始化函数和状态读取函数,设计实现BSP的一般方法,BSP的开发需要具备一定的硬件知识 要求掌握操作系统所定义的BSP接口两种快捷方法 以经典BSP为参考 使用
7、操作系统提供的BSP模板 设计实现BSP两部分功能时应采用以下两种不同方法“自底向上”地实现BSP中的初始化操作“自顶向下”地设计硬件相关的驱动程序,BSP设计方法的不足与改进,目前BSP的设计与实现主要是针对某些特定的文件进行修改 直接修改相关文件容易造成代码的不一致性,增加软件设计上的隐形错误,从而增加系统调试和代码维护的难度 解决这个问题的一个可行办法是:设计实现一种具有图形界面的BSP开发设计向导,由该向导指导设计者逐步完成BSP的设计和开发,并最终由向导生成相应的BSP文件,而不再由设计人员直接对源文件进行修改。,Linux设备驱动程序及开发,Linux设备驱动程序概述,Linux设
8、备驱动程序是处理或操作硬件控制器的软件,被集成在内核中,是常驻内存的低级硬件处理程序的共享库,设备驱动程序是系统对设备的抽象管理与控制。Linux允许设备驱动程序作为内核可加载模块实现,即除了可以在系统启动时进行注册外,还可以在启动后进行加载注册。,Linux驱动程序开发,建立嵌入式Linux平台,移植和编写驱动程序往往是最具挑战的工作驱动程序的开发周期一般较长,对产品的面世时间有着重要影响驱动程序质量的好坏,直接关系到系统工作效能和稳定性,对项目的成败起着关键作用,设备驱动程序主要功能,设备驱动程序主要完成如下功能:检测设备和初始化设备使设备投入运行和退出服务从设备接收数据并提交给内核从内核
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 嵌入式 系统软件 开发 技术