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

STM32在操作控制IO电平的高低输出的时候

一剪梅 2020-03-12 浏览量:720
直接操作寄存器会比库函数操作是不是更快
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 当然是这样的,直接操作寄存器会比库函数更快,因为实际的库函数是通过多层封装,最后还是在操作寄存器实现IO的控制,用寄存器指令就是直接操作寄存器,没有多层的封装和函数跳转,速度要比库函数快很多倍
    • 发布于 2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 因为寄存器操作是最底层的操作,库函数是通过了函数的封装再操作寄存器,所以直接操作寄存器速度更快
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接操作寄存器肯定是最快的,相当于直接对IO进行了操作,如果似乎用库函数的话,有封装,有层级嵌套,要慢一些,但其实影响不大
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果有途径直接操作寄存器,肯定速度是最快的,因为所有的库最后还是会落脚到寄存器的操作上,只是对其不同程度的封装,所以调用库与直接操作寄存器相比肯定有性能损失。
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译的时候,应该是一样的,都是一样的。
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是肯定的,但是这个快好像也没有太大的意义,因为那个差距也就是几条指令的周期,经过编译器优化,就差距更小了
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接操作寄存器,实际是两条机器指令。

    调用库,就会调用函数,要执行传递参数,跳转(包含清洗流水线和指令等待),具体执行,返回(又要清洗流水线和指令等待)。大概要多十来个时钟周期。


    如果函数是static inline的,和直接操作寄存器速度一样,因为他是伪装的函数,实际是将函数体直接插入调用位置的。

    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 寄存器操作更快,或者用位带操作的方法,和寄存器是一样快的
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 操作寄存器肯定更快。  库函数就是封了一层接口方便阅读代码 。最终操作的还是寄存器。
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 是的,寄存器方式 要快很多,不过与LL库差不多,HAL库要慢很多了。
    • 发布于2020-03-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32在操作控制IO电平的高低输出的时候