• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32标准库和HAL库底层是相似的吗

drepa 2017-08-27 浏览量:1385
如题,STM32标准库和HAL库底层都是操作寄存器,那么他们的内容是相似的吗?既然如此为什么HAL库比标准库编译慢这么多?
-2 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 标准库和HAL库底层都是操作寄存器,所以在执行命令方面大同小异,但是HAL库需要做到全系列MCU兼容,因此肯定会有一些涉及到多#define切换MCU型号,assert语句之类的提高兼容性的代码,因此执行效率远远不如标准库、LL库、寄存器。

    • 发布于 2017-08-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 底层操作寄存器是相同的;HAL库编译速度慢,是因为HAL库中的接口,为了达到通用的目的,封装层次比较多,所以编译速度较慢,基本上各家厂商的HAL都存在编译慢的问题;同时,相对来说执行效率没有标准库的高。
    • 发布于2017-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 有相似的问题,可以参考

    //www.icxbk.com/ask/detail/4785.html​

    • 发布于2017-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • HAL庫比較多和複雜,函數互相呼叫,封裝層數多,所以比起舊版標準庫會再大一些

    編譯速度因為分成更多檔案(包含ex)

    所以會慢很多很正常

    但是是趨勢,CuebMX也使用HAL


    • 发布于2017-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • HAL库里面包含更多的函数,支持更多的功能,所以自然更复杂

    你试一下用最新版的MDK和最新版的HAL库,比老版的快50%,ST公司也在不断改进HAL库的

    • 发布于2017-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • HAL库是硬件中间层,封装层数比较多,所以编译起来比较慢,效率比较低。

    标准库是对寄存器操作,相比起来速度快些。

    由于官方原因,还是建议使用HAL库。

    • 发布于2017-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 对寄存器的操作是相同的
    • 发布于2017-09-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32标准库和HAL库底层是相似的吗