本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
原子操作
Overview
原子操作可确保并发编程中的非阻塞同步。您可以使用原子操作来解决使用共享内存的异步操作所导致的性能问题。FreeRTOS 支持原子操作,在 iot_atomic.h
标头文件中实施。
iot_atomic.h
标头文件包含原子操作的两个实施:
-
全局禁用中断。
此实施可供所有 FreeRTOS 平台使用。
-
ISA 本机原子支持。
此实施仅适用于满足下列条件的平台:使用 GCC 版本 4.7.0 和更高版本编译,并且具有 ISA 原子支持。有关 GCC 内置函数的更多信息,请参阅用于内存模型感知原子操作的内置函数
。
Initialization
使用 FreeRTOS 原子操作之前,您需要选择所要使用的原子操作实施。
-
打开 FreeRTOSConfig.h 配置文件以进行编辑。
-
对于 ISA 本机原子支持实施,请定义
configUSE_ATOMIC_INSTRUCTION
变量并将其设置为1
。对于禁用全局中断实施,请取消定义或者清除
configUSE_ATOMIC_INSTRUCTION
。
API 参考
有关完整 API 参考,请参阅原子操作 C 开发工具包 API 参考。