- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开发自己嵌入式系统的BSP
嵌入式系统BSP基础知识 成都研究所操作系统团队 BSP简介 BSP开发 Linux和VxWorks的BSP开发比较分析 BSP的定义 BSP(Board Support Packet——板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,它主要功能为屏蔽硬件,提供操作系统的驱动及硬件驱动。 是嵌入式操作系统的一个特有概念。相当PC机中的BIOS+驱动。 BSP的功能 BSP主要功能 上电时的硬件初始化 CPU的初始寄存器设置 内存的配置 为操作系统访问硬件驱动程序提供支持 串口 网络接口 块设备驱动程序 为应用程序提供访问底层硬件的程序接口 定义硬件无关软件和硬件相关软件的接口绑定 BSP在嵌入式系统中的位置 BSP简介 BSP开发 Linux和VxWorks的BSP开发比较分析 BSP开发内容 BSP的系统初始化 配置内存 根据系统的设计,将每一块内存芯片配置到正确的地址空间中去 屏蔽掉所有中断,避免外部中断干扰实时操作系统的启动。 向操作系统传递系统的硬件配置参数。 其他 与处理器和操作系统相关的硬件配置,对于不同的处理器,这部代码都差异很大,但同时也有很多现成的资源可以用,一般,在BSP开发时都可以有一个现成的模板。 BSP开发内容 BSP的驱动开发 字符型设备驱动: 字符型设备主要指一种非结构化的设备,只能够顺序输入和顺序输出。我们在开发中常用的串口,HDLC的通信口等等这种串行通信的接口,都可以归结为字符型设备,而不仅仅限于是单字符发送的设备。 块设备驱动 块存储设备主要是指结构化管理的,数据以块的形式存储和访问的设备。如硬盘,FLASH设备等在嵌入式系统,块设备驱动的开发不是很多。 网络设备驱动: 网络设备主要是指挂接在网络协议栈下的设备,如以太网的网络驱动设备等。网络设备从物理上来说也是串行的通信设备,和普通的字符设备不同的是,它的上层是网络协议栈,而不是直接的应用。网络设备也不能直接调用,一般通过SOCKET接口来间接调用。 BSP的开发方式 使用仿真器开发 在开发系统的最小系统时,通常使用仿真器来开发。常用的仿真器是ICD型的仿真器。 使用点灯的方法 一般在已经有了成熟模板的情况下,可以使用点灯的方法来调试程序,通过在不同的程序段加入点灯程序,可以观察程序的运行情况。 使用网口或串口交叉调试 在目标系统的最小系统完成后,各种驱动的开发就可以使用网口和串口用交叉调试工具调试了。 BSP的开发流程 一般来说,在硬件系统设计好之后,找到一个与自己系统相近的评估板BSP作为模板,开发自己嵌入式系统的BSP。 对于一个BSP,开发主要分为两个步骤 最小系统的开发 其他设备驱动程序的开发 BSP开发流程—最小系统开发 最小系统开发 BSP的最小系统开发,包含了处理器初始化程序,网口驱动程序开发,串口驱动开发,最小系统是操作系统得以运行,调试工具可以正常使用的前提条件。 BSP开发流程—设备驱动程序开发 其他设备驱动程序开发 因为最小系统的完成,嵌入式系统上的其他设备驱动程序可以使用主机+目标机的交叉开发工具开发。 驱动程序的结构 硬件的配置,这和具体驱动相关。 中断的挂接和处理,一般驱动都使用中断方式来发送和接收数据,因此中断处理函数的效率对整个系统的正确运行尤其重要,因此驱动的中断处理函数应该尽可能的简洁和高效。 与操作系统的接口和注册,对于驱动来说,它和应用之间的数据交互是通过操作系统来间接进行的,所以驱动必须提供和操作系统一致的接口,并在操作系统注册。对于不同的驱动,不同的操作系统都有不同的标准接口要求。因此,这也是开发一种跨操作系统平台的驱动的难点所在。 BSP开发流程—其他功能开发 其他功能的开发 对于一个嵌入式系统的BSP来说,应用或者操作系统所有访问硬件的功能都应该由BSP来提供,所以,BSP还需要向上层提供一些既不属于系统的初始化,也不属于驱动的访问硬件的功能。如主备倒换控制,看门狗的开关等等。如主备倒换控制,看门狗的开关 BSP开发步骤分析 获取基本的BSP模板 针对不同的CPU类型,确定基本BSP中所有的寄存器配置是否适合当前的硬件(包括SDRAM)。如果不适合则做相应的改动。这主要是指rominit.s, config.h中的修改。 其次如果有网络设备,则需要配置confignet.h。 如果有串口,则需要修改sysSerial.c。 修改sysLib.c中的硬件相关的部分。 BSP简介 BSP开发 Linux和VxWorks的BSP开发比较分析 Linux和VxWorks的BSP开发比较 VxWorks有标准的BSP开发规范,提供很多代码模板,层次结构非常清晰 Linux的BSP,驱动程序的开发接口,模板都是很标准的,各种资源也很多 KLinux
文档评论(0)