Z-Stack – HAL Driver API – 简介

注明

  • 本文摘译自TI(德州仪器)公司的《HAL Drivers Application Programming Interface》。
  • 文件号:SWRA193。
  • 所有版权归TI(德州仪器)公司所有。
  • 本文章节序号与原文相同。

1.1 HAL Driver API简介

硬件抽象层应用编程接口(HAL Driver API)为应用程序的开发提供了:定时器(Timer)、通用输入输出(GPIO)、通用异步收发传输(UART)、模数转换(ADC)接口。该接口独立于其他接口,但依赖操作系统抽象层(OSAL)。当要使用HAL Driver API的某一个接口服务(如ADC)时,需要引用其头文件(如#include “hal_adc.h”)。

1.2 常见的术语缩写

  • ADC – 模数转换(Analog to Digital Conversion)
  • API – 应用编程接口(Application Programming Interface)
  • CD – 载波检测(Carrier Detect)
  • CTC – 匹配时清零定时器(Clear Timer on Compare)
  • CTS – 清除待发(Clear To Send)
  • DMA – 直接内存访问(Direct Memory Access)
  • DSR – 数据准备就绪(Data Set Ready)
  • DTR – 数据终端就绪(Data Terminal Ready)
  • GPIO – 通用输入输出(General Purpose Input Output)
  • HAL – 硬件抽象层(Hardware Abstract Layer)
  • HGM – 高增益模式(High Gain Mode)
  • I2C – 内部集成电路总线(Inter-IC Bus)
  • IC – 集成电路(Integrated Circuit)
  • IR – 红外(Infra-red)
  • LSR – 中断服务程序(Interrupt Service Routine)
  • LGM – 低增益模式(Low Gain Mode)
  • LNA – 低噪声放大器(Low Noise Amplifier)
  • MAC – 介质访问控制(Medium Access Control)
  • OSAL – 操作系统抽象层(Operating System Abstraction Layer)
  • PA – 功率放大器(Power Amplifier)
  • RI – 振铃指示器(Ring Indicator)
  • RTS – 准备发送(Ready To Send)

2.1 几类函数及调用

2.1.1 初始化函数(Initialization Function)

初始化函数用于加载服务、设置一些可选参数。初始化函数通常在设备启动时最先被调用。

2.1.2 服务接入函数(Service Access Function)

服务接入函数能够直接访问硬件寄存器获取参考值(比如ADC采样)或者控制硬件状态(比如LED控制)。

2.1.3 回调函数(Callback Function)

回调函数是必须被应用程序执行的一类函数,用于将硬件(中断、计数器、定时器等)或者轮询机制(UART轮询、定时器轮询等)上发生的事件上传给更高层。用于回调函数的参数(比如指向数据的指针)只用于函数的执行,在函数返回(return)的时候无效。当回调函数在中断里执行时,必须确保其时效性,即不能连续占用CPU或者使用到临界区(Critical Section)。