HAL库对于底层进行了封装,封装过程进行了非常严格的检查,其中用到了大量的判断和断言,这在基于寄存器和标准库的编码中很要有这么严格的检查。以F1系列的HAL库的UART驱动为例:
从驱动文件中可以看到,大量的assert断言会导致执行效率显著下降。