单片机程序中的底层驱动程序和应用程序

单片机程序中的底层驱动程序和应用程序,第1张

驱动程序硬件相关,编写驱动程序要非常了解硬件,同时给应用层提供API函数接口,应用层可以调用这些接口去访问硬件而不必了解硬件.

应用程序是根据实际应用去编写.

比如说你有一个应用是控制每天早上六点钟开灯.应用程序只负责在适当的时间做适当的事(到六点了,我要开灯了,按下按键)具体它不知道为什么按下键就能开灯,因为按下键后开灯的事情就是驱动程序完成了.

希望我没有理解错你想问的。

不是。驱动程序就是一个比较抽象的概念,说明一段或一组程序的功能,主要为某个模块提供针对性的服务的,通常是硬件模块。你要是真的写过程序,你就懂了,应该不至于把这问题问出来。

打个比方:

如果你的单片机有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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11749594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存