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

请问什么是原子置位/复位操作?

奔跑的黑蚂蚁 2018-06-20 浏览量:1098

请问什么是原子置位/复位操作?最好比较通俗的介绍一下,不胜感激!

QQ截图20180620175359.png

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 原子操作指的是:这个操作的过程中不会被中断打断,参考https://blog.csdn.net/Cacti_one/article/details/71453605
    • 发布于 2018-06-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11

  • 所谓的原子操作指一类操作没有中间状态,要么执行成功完成状态改变,要么执行失败什么都不变。
    • 发布于2018-06-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 就相当于一个预处理吧。把要修改的值放进BSRR里面,在确保安全、时序不会被扰乱的前提下把值更新到ODR寄存器
    • 发布于2018-06-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 原子操作就是在这一段程序的执行过程中,不可以有中断打断,必须要一次性执行完了再执行别的程序
    • 发布于2018-06-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 原子教程里置位/复位操作


    不是对寄存器的置1/置0吗??

    • 发布于2018-06-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个一般就是互斥锁,一个进程在使用资源的时候进行上锁,这个进程完了释放资源然后下锁
    • 发布于2018-06-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 在MCU中,原子操作就是对寄存器的单个数据位进行Read-Modify-Write操作,并且整个操作过程不会被其他总线活动中断,从而避免数据冲突或竞争的产生。

    原子操作有两种实现方式:硬件软件结合的方式和软件方式。硬件软件结合的方式指软件实现过程须有硬件的支持。

    单独的软件方式的Read-Modify-Write原子操作有时可靠性不太高,会产生数据冲突。可靠的原子操作必须要有硬件方面的支持。

    基于Cortex-M核的32位MCU中,有两种原子操作:一种是位带操作,另一种是端口置位复位寄存器GPIOx_BSRR对端口输出寄存器GPIOx_ODR的读写访问。汇编语言可以直接体现出对原子的Read-Modify-Write操作,而C语言是直接体现不出来的,但C语言在编译的过程中会被反汇编成相应的汇编指令。有了硬件方面对原子操作的支持,C语言和汇编语言都可以实现可靠的原子操作。

    • 发布于2018-06-28
    • 举报
    • 评论 1
    • 0
    • 0
奔跑的黑蚂蚁 回复了 菜鸟冷虎 :复制粘贴的吧??哈哈 回复

  • 原子置位/复位操作是说这个操作不可以被任何中断打断,也就是要全部一次执行完。

    • 发布于2018-06-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 原子置位操作就是资源访问的使用不能被其他任务所打断或者抢占
    • 发布于2018-07-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个就是我们操作系统所说的内存保护问题,一个内存地址不能同时被两个进程访问
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 中文文档,有时候会翻译的很奇怪。

    我建议你把英文的手册找出来,找到相同的位置,看英语原文怎么说的。

    • 发布于2018-06-20
    • 举报
    • 评论 0
    • -1
    • 0

相关问题

问题达人换一批

请问什么是原子置位/复位操作?