许多 CMSIS-RTOS 功能使用的常量和枚举。更多...
内容 | |
标志函数错误代码 | |
线程标志和事件标志使用的常量返回错误代码。 | |
宏定义 | |
#define | osWaitForever 0xFFFFFFFFU |
永远等待超时值。更多... | |
#define | osFlagsWaitAny 0x00000000U |
等待任何标志(默认)。更多... | |
#define | osFlagsWaitAll 0x00000001U |
等待所有的标志。更多... | |
#define | osFlagsNoClear 0x00000002U |
不要清除已经指定等待的标志。更多... | |
枚举定义 | |
enum | osStatus_t { osOK = 0, osError = -1, osErrorTimeout = -2, osErrorResource = -3, osErrorParameter = -4, osErrorNoMemory = -5, osErrorISR = -6, osStatusReserved = 0x7FFFFFFF } |
由 CMSIS-RTOS 功能返回的状态码值。更多... | |
描述
许多 CMSIS-RTOS 函数调用使用以下常量和枚举。
宏定义文档
#define osWaitForever 0xFFFFFFFFU |
一个特殊的超时值,通知 RTOS 等待无限期,直到资源可用。它适用于以下功能:
- osThreadFlagsWait : 等待当前正在运行的线程的一个或多个线程标志发出信号。
- osEventFlagsWait : 等待一个或多个事件标志发出信号。
- osMutexAcquire : 如果它被锁定,则获取互斥锁或超时值。
- osSemaphoreAcquire : 如果没有令牌可用,请获取信号量令牌或超时。
- osMemoryPoolAlloc : 从内存池中分配内存块。
- osMessageQueuePut : 如果队列已满,请将消息放入队列或超时。
- osMessageQueueGet : 如果队列为空,则从队列获取消息或超时。
#define osFlagsWaitAny 0x00000000U |
#define osFlagsWaitAll 0x00000001U |
#define osFlagsNoClear 0x00000002U |
枚举类型文档
enum osStatus_t |
osStatus_t 枚举定义了许多 CMSIS-RTOS 函数返回的事件状态和错误代码。
枚举 | |
---|---|
osOK | 操作成功完成。 |
osError | 未指定的 RTOS 错误:运行时错误,但没有其他错误消息适合。 |
osErrorTimeout | 在超时期限内未完成操作。 |
osErrorResource | 资源不可用。 |
osErrorParameter | 参数错误。 |
osErrorNoMemory | 系统内存不足:无法为操作分配或保留内存。 |
osErrorISR | 在 ISR 环境中不允许:该功能不能从中断服务例程中调用。 |
osStatusReserved | 防止枚举小型编译器优化。 |
标志函数错误代码
宏定义 | |
#define | osFlagsErrorUnknown 0xFFFFFFFFU |
osError (-1)。更多... | |
#define | osFlagsErrorTimeout 0xFFFFFFFEU |
osErrorTimeout (-2)。更多... | |
#define | osFlagsErrorResource 0xFFFFFFFDU |
osErrorResource (-3)。更多... | |
#define | osFlagsErrorParameter 0xFFFFFFFCU |
osErrorParameter (-4)。更多... | |
#define | osFlagsErrorISR 0xFFFFFFFAU |
osErrorISR (-6)。更多... | |
描述
如果出现错误,标志函数(线程标志和事件标志)将返回错误代码。为了表明发生了错误,将设置返回值的最高位。您可以使用下面显示的代码检查确切的错误。
宏定义文档
#define osFlagsErrorUnknown 0xFFFFFFFFU |
一般错误。当没有其他错误可以应用时返回。
参考:
#define osFlagsErrorTimeout 0xFFFFFFFEU |
如果指定了超时并且发生超时时未指定标志,则会返回此错误。
参考:
#define osFlagsErrorResource 0xFFFFFFFDU |
当您尝试获取未设置的标志并指定了超时 0 时,将返回此错误。当指定的对象标识符损坏或无效时也会返回。
参考:
#define osFlagsErrorParameter 0xFFFFFFFCU |
#define osFlagsErrorISR 0xFFFFFFFAU |
从 ISR 调用非 ISR 可调用函数时会返回此错误。
参考: