STM32 HAL库与LL库:性能对比及区别

LL库和HAL库简介

LL:Low-Layer,底层库
HAL:Hardware Abstraction Layer,硬件抽象层库

LL库和hal库对比,很精简,这实际上是一个精简的库。

LL库的配置选择如下

在STM32CUBEMX中,点击菜单的“Project Manager”–>“Advanced Settings”,在下面的界面中选择“Advanced Settings”,然后在每个模块后面选择使用的库

总结:

1、如果使用的MCU是小容量的,那么STM32Cube LL将是最佳选择

2、如果结合可移植性和优化,使用STM32Cube HAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和LL可以部分并发使用(对于同一个外设,HAL和LL不可能并发运行),也可以使用混合的HAL和LL实现来获得上述相同的优势。

STM32使用HAL库、标准库、LL库和寄存器操作的性能对比

介绍

stm32开发时,选用不同库的开发难度和速度相差可能很大,相应的,开发出来的代码运行性能也会有很大差别。

下图是官方给出的几个常用功能:GPIO 翻转、TIM PWM 输出、ADC DMA 数据采集和 DMA M2M ,使用不同库开发出来的运行结果,可供大家参考对比,做出符合自己开发项目需要的选择。

总结

代码效率与移植性成反比的规律是明显的。但与 Cube HAL 相比, Cube LL 的效率优势还是很明显的,几乎和直接写寄存器的效率相差无几。而且目前 STM32cubeMX 已经开始支持直接生成使用 Cube LL 的工程,对于以后追求效率的开发应用人员来说,非常值得推荐给大家使用。

物联沃分享整理
物联沃-IOTWORD物联网 » STM32 HAL库与LL库:性能对比及区别

发表评论