OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2641|回复: 4

请教下原子哥,以及其他高手,什么叫读一修改一写的原子操作?

[复制链接]

6

主题

8

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-9-7
在线时间
2 小时
发表于 2018-9-13 10:26:48 来自手机 | 显示全部楼层 |阅读模式
什么叫原子操作,什么叫非原子操作?还有什么叫读一修改一写?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17784
金钱
17784
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-9-13 11:02:49 | 显示全部楼层
本帖最后由 Psheng 于 2018-9-13 11:06 编辑

原子操作就是 在操作的过程中是不会被打断的 。非原子就是可能会被打断的操作。
一般在多线程的时候需要原子操作。
回复 支持 反对

使用道具 举报

6

主题

8

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-9-7
在线时间
2 小时
 楼主| 发表于 2018-9-13 22:08:07 来自手机 | 显示全部楼层
Psheng 发表于 2018-9-13 11:02
原子操作就是 在操作的过程中是不会被打断的 。非原子就是可能会被打断的操作。
一般在多线程的时候需要原 ...

非常非感谢你的回答
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
发表于 2018-9-14 08:59:50 | 显示全部楼层
举个栗子:读 i = GPIO_ReadInputData(GPIOA);       读取GPIOA的值
                 改 i = i & 0x0001;                                     保留最低为不变,将其余位清零
                 写 GPIO_Write(GPIOA,i);                           写入新的值
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-14 15:06:04 | 显示全部楼层
A|=B, A&=3, A++。。。。。
都是“读一修改一写”
就按字面理解可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 17:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表