应用程序是根据实际应用去编写.
比如说你有一个应用是控制每天早上六点钟开灯.应用程序只负责在适当的时间做适当的事(到六点了,我要开灯了,按下按键)具体它不知道为什么按下键就能开灯,因为按下键后开灯的事情就是驱动程序完成了.
希望我没有理解错你想问的。不是。驱动程序就是一个比较抽象的概念,说明一段或一组程序的功能,主要为某个模块提供针对性的服务的,通常是硬件模块。你要是真的写过程序,你就懂了,应该不至于把这问题问出来。
打个比方:
如果你的单片机有LED显示,那么,负责LED显示的那段程序就是驱动程序。
而比如你的主要程序是个计算器,那么负责主要逻辑处理和计算的程序就不是驱动程序,一般就叫主程序或者主逻辑,除了显示的LED驱动,你还需要键盘驱动等等。。
如果这样一个计算器程序,你能把主逻辑和相应的驱动分开来,那么这个程序从框架上就合格了,如果分不开,那么也就没有继续学下去的必要了。
是bsp驱动。板级支持包(BSP)(Board Support Package)是介于主板硬件和 *** 作系统中驱动层程序之间的一层,一般认为它属于 *** 作系统一部分,主要是实现对 *** 作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。
硬件抽象层是位于 *** 作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为 *** 作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
就我跟人理解而言BSP就是硬件驱动程序,它包含了 *** 控硬件的必要函数,单片机系统使用BSP可以直接进行应用开发,这时候应用开发的hierarchy如下图所示:
但是由于日益增长的芯片种类和芯片复杂度,直接使用BSP进行应用开发将会受到巨大的挑战,因此为了程序的可阅读性以及可移植性提出了硬件抽象层HAL这一个概念。引入HAl之后的系统hierarchy如下图所示:
引入HAL之后 *** 作系统将会使用相对更为统一的HAL接口来实现对硬件的 *** 作,而不是直接使用BSP库。当然,HAL库的实现是基于BSP库的,只是将其进一步封装,形成统一的标准。因此一个完整、强健的嵌入式系统的系统hierarchy应该为:
hardware –>board support package –>hardware abstract layer –>driver –>operating system –>application
当然嵌入式系统中 *** 作系统并不是必须的,并且在 *** 作系统和应用程序之间可以在有一层中间件Middleware层,用于提供更多的系统功能,这个中间件Middleware层也被称作SDK。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)