开发指导
使用场景
有多个任务对同一个内存数据进行加减或交换操作时,使用原子操作保证结果的可预知性。
功能
Huawei LiteOS的原子数据包含两种类型Atomic(有符号32位数)与 Atomic64(有符号64位数)。原子操作模块为用户提供下面几种功能,接口详细信息可以查看API参考。
功能分类 |
接口名 |
描述 |
---|---|---|
读 |
LOS_AtomicRead |
读取内存数据 |
写 |
LOS_AtomicSet |
写入内存数据 |
加 |
LOS_AtomicAdd |
对内存数据做加法 |
LOS_AtomicSub |
对内存数据做减法 |
|
LOS_AtomicInc |
对内存数据加1 |
|
LOS_AtomicIncRet |
对内存数据加1并返回运算结果 |
|
减 |
LOS_AtomicDec |
对内存数据减1 |
LOS_AtomicDecRet |
对内存数据减1并返回运算结果 |
|
交换 |
LOS_AtomicXchg32bits |
交换内存数据,原内存中的值以返回值的方式返回 |
LOS_AtomicCmpXchg32bits |
比较并交换内存数据,返回比较结果 |
功能分类 |
接口名 |
描述 |
---|---|---|
读 |
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位内存数据,返回比较结果 |
原子操作中,操作数及其结果不能超过函数所支持位数的最大值。
平台差异性
无。