更新时间:2021-07-08 GMT+08:00
分享

开发指导

使用场景

有多个任务对同一个内存数据进行加减或交换操作时,使用原子操作保证结果的可预知性。

功能

Huawei LiteOS的原子数据包含两种类型Atomic(有符号32位数)与 Atomic64(有符号64位数)。原子操作模块为用户提供下面几种功能,接口详细信息可以查看API参考。

表1 Atomic原子操作功能列表

功能分类

接口名

描述

LOS_AtomicRead

读取内存数据

LOS_AtomicSet

写入内存数据

LOS_AtomicAdd

对内存数据做加法

LOS_AtomicSub

对内存数据做减法

LOS_AtomicInc

对内存数据加1

LOS_AtomicIncRet

对内存数据加1并返回运算结果

LOS_AtomicDec

对内存数据减1

LOS_AtomicDecRet

对内存数据减1并返回运算结果

交换

LOS_AtomicXchg32bits

交换内存数据,原内存中的值以返回值的方式返回

LOS_AtomicCmpXchg32bits

比较并交换内存数据,返回比较结果

表2 Atomic64原子操作功能列表

功能分类

接口名

描述

LOS_Atomic64Read

读取64位内存数据

LOS_Atomic64Set

写入64位内存数据

LOS_Atomic64Add

对64位内存数据做加法

LOS_Atomic64Sub

对64位内存数据做减法

LOS_Atomic64Inc

对64位内存数据加1

LOS_Atomic64IncRet

对64位内存数据加1并返回运算结果

LOS_Atomic64Dec

对64位内存数据减1

LOS_Atomic64DecRet

对64位内存数据减1并返回运算结果

交换

LOS_AtomicXchg64bits

交换64位内存数据,原内存中的值以返回值的方式返回

LOS_AtomicCmpXchg64bits

比较并交换64位内存数据,返回比较结果

原子操作中,操作数及其结果不能超过函数所支持位数的最大值。

平台差异性

无。

相关文档