STM32学习笔记(4):原子操作(Atomatic Operations)

本文介绍了MCU中原子操作的概念及其实现方式,包括硬件软件结合的方法和纯软件方法,并重点讲解了基于Cortex-M核的32位MCU中的两种原子操作:位带操作和端口置位复位寄存器GPIOx_BSRR对端口输出寄存器GPIOx_ODR的读写访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

关于原子操作更多知识可以从下列链接的文章中获取:

http://blog.jobbole.com/54345/
http://www.infoq.com/cn/articles/atomic-operation/
http://blog.sina.com.cn/s/blog_6117eeff010110ez.html
http://www.cnblogs.com/kissdodog/archive/2013/04/07/3003822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值