HAL原理与BSP的实现方法

时间:2013-10-23来源:网络

嵌入式系统HAL原理与BSP的实现方法

2.2 硬件相关的设备驱动程序
BSP另一个主要功能是硬件相关的设备驱动。与初始化过程相反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程。
尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP把它们与操作系统中通用的设备 驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。设计与硬件相关的驱动程序是BSP设计中另一个关键环节。图4显示 了调用设备驱动程序时系统各个层次之间的关系。

嵌入式系统HAL原理与BSP的实现方法

3 设计实现BSP的方法
3.1 设计实现BSP的一般方法
因为BSP同时具有硬件相关性和操作系统相关性,是一个介于硬件与软件之间的中间层次。因此BSP的开发不仅需要具备一定的硬件知识,例如CPU的控 制、中断控制器的设置、内存控制器的设置及有关的总线规范等;同时还要求掌握操作系统所定义的BSP接口。另外,在BSP的初始化部分通常会包含一些汇编 代码,因此还要求对所使用的CPU汇编指令有所了解,例如X86的汇编和PowerPC的汇编指令等;对于某些复杂的BSP还要了解所使用的开发工具,例 如GNU、Diab Data等。
总之,开发BSP要求具备比较全面的软、硬件知识和必要的编程经验。由于设计实现的复杂性,在设计特定BSP时很少从零开始,而是采用以下两种快捷方法。
方法一:以经典BSP为参考
在设计BSP时,首先选择与应用硬件环境最为相似的参考设计,例如Motorola的ADS系列评估板等。针对这些评估板,不同的操作系统都会提供完整 的BSP,这些BSP是学习和开发自己BSP的最佳参考。针对具体应用的特定环境对参考设计的BSP进行必要的修改和增加,就可以完成简单的BSP设计。
下面以设计pSOS操作系统的BSP初始化过程为例。pSOS系统初始化的层次非常清晰,与初始化过程相对应的是以下三个文件:
1)init.s :对应于片级初始化;完成CPU的初始化操作,设置CPU的工作状态;
2)board.c :对应于板级初始化;继续CPU初始化,并设置CPU以外的硬件设备;
3)sysinit.c :对应于系统级初始化;完成操作系统的初始化,并启动应用程序。
以参考BSP为切入点,针对初始化过程的具体环节,在对应的文件中进行某些参数的修改及功能的增加就可以实现BSP的系统初始化功能。
因为BSP具有操作系统相关性,因此,不同的操作系统会使用不同的文件完成类似的初始化操作。
BSP中硬件相关的设备驱动程序随操作系统的不同而具有比较大的差异,设计过程中应参照操作系统相应的接口规范。
方法二:使用操作系统提供的BSP模板
除了提供某些评估板的BSP以外,很多操作系统还提供相应的BSP模板(一组需要编写的文件),根据模板的提示也可以逐步完成特定BSP的设计。
相比较而言,第一种方法最为简单快捷。因此,在实际的设计过程中,通常以第一种方法为主,同时结合使用第二种方法。
在设计实现BSP两部分功能时应采用以下两种不同方法:
(1)“自底向上”地实现BSP中的初始化操作:从片级初始化开始到系统级初始化;
(2)“自顶向下”地设计硬件相关的驱动程序:从API开始,到操作系统内部的通用设备驱动程序,再到BSP内部的硬件相关的设备驱动程序,最后到底层具体的硬件设备。
3.2 BSP设计方法的不足与改进
从以上介绍的两种设计方法可以看出:目前BSP的设计与实现主要是针对某些特定的文件进行修改。这种方法比较原始,它不仅要求设计人员了解BSP的各个 组成部分及所对应的文件和相关参数的具体含义,还要求具备比较全面的软硬件知识。直接修改相关文件容易造成代码的不一致性,增加软件设计上的隐形错误,从 而增加系统调试和代码维护的难度。随着底层硬件功能的日益复杂,开发BSP所涉及的内容也越来越多。这种原始方法的不足之处也越来越突出。进行BSP设计 方法和工具的创新成为一个日益突出的问题。
解决这个问题的一个可行办法是:设计实现一种具有图形界面的BSP开发设计向导,由该向导指 导设计者逐步完成BSP的设计和开发,并最终由向导生成相应的BSP文件,而不再由设计人员直接对源文件进行修改。这样不仅可以大大缩短BSP的开发周 期,减少代码不一致性,而且系统排错、调试以及维护都很简单。因此,这种方法是目前嵌入式领域中BSP设计的一个趋势和研究方向。但是,由于嵌入式系统硬 件环境的多样性,设计向导的实现仍需解决若干关键问题。为此,作者仍将在这一方面作进一步研究。
文中提出的方法在华环公司的宽带网络工程中得到实践和应用,并取得了非常良好的应用成果。

1 2

关键词: 嵌入式系统 HAL原理 BSP

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版