HAL驱动程序旨在提供一组丰富的api,并方便地与应用程序上层交互。
每个驱动程序由一组功能组成,这些功能涵盖了最常见的外围设备功能。每个驱动程序的开发都是由一个公共API驱动的,这个API规范了驱动程序的结构、函数和参数名。
HAL驱动程序由一组驱动模块组成,每个模块都连接到一个独立的外围设备。然而,在某些情况下,模块与外围功能模式相连接。例如,USAT外围设备存在多个模块:UART驱动模块、USAT驱动模块、智能卡驱动模块和IrDA驱动模块。
HAL的主要特点如下:
跨系列可移植的一组api,包括常见的外围特性以及特定外围特性情况下的扩展api。
三种API编程模型:轮询、中断和DMA。
·API符合RTOS:
-完全可重入的API
-在轮询模式下系统地使用超时。
外设多实例支持,允许对给定外设的多个实例(USART1、USART2…)进行并发API调用
所有HAL api实现用户回调函数机制:
-外设初始化/去初始化HAL API可以调用用户回调函数来执行外设系统级初始化/去初始化(时钟、GPIO、中断、DMA)
-外设中断事件
-错误事件。
对象锁定机制:安全的硬件访问,以防止对共享资源的多个虚假访问。
用于所有阻塞进程的超时:超时可以是简单的计数器或时基。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !