1# CMSIS 接口 2 3 4## **汇总** 5 6 7### 文件 8 9 | 文件 Name | 描述 | 10| -------- | -------- | 11| cmsis_os2.h | CMSIS 2.0 标准接口头文件。 | 12 13 14### 结构体 15 16 | 结构体 Name | 描述 | 17| -------- | -------- | 18| [osVersion_t](os_version__t.md) | 系统版本信息。 [更多...](os_version__t.md) | 19| [osThreadAttr_t](os_thread_attr__t.md) | 线程参数类型。 [更多...](os_thread_attr__t.md) | 20| [osTimerAttr_t](os_timer_attr__t.md) | 定时器参数类型,不支持配置。 [更多...](os_timer_attr__t.md) | 21| [osEventFlagsAttr_t](os_event_flags_attr__t.md) | 事件参数类型,不支持配置。 [更多...](os_event_flags_attr__t.md) | 22| [osMutexAttr_t](os_mutex_attr__t.md) | 互斥锁参数类型,不支持配置。 [更多...](os_mutex_attr__t.md) | 23| [osSemaphoreAttr_t](os_semaphore_attr__t.md) | 信号量参数类型,不支持配置。 [更多...](os_semaphore_attr__t.md) | 24| [osMemoryPoolAttr_t](os_memory_pool_attr__t.md) | 内存池参数类型。 [更多...](os_memory_pool_attr__t.md) | 25| [osMessageQueueAttr_t](os_message_queue_attr__t.md) | 消息队列参数类型。 [更多...](os_message_queue_attr__t.md) | 26 27 28### 宏定义 29 30 | 宏定义 Name | 描述 | 31| -------- | -------- | 32| [osWaitForever](#oswaitforever) 0xFFFFFFFFU | 系统永久等待。 [更多...](#oswaitforever) | 33| [osFlagsWaitAny](#osflagswaitany) 0x00000000U | 等待任何标志触发。 [更多...](#osflagswaitany) | 34| [osFlagsWaitAll](#osflagswaitall) 0x00000001U | 等待全部标志触发。 [更多...](#osflagswaitall) | 35| [osFlagsNoClear](#osflagsnoclear) 0x00000002U | 不清除指定等待标志。 [更多...](#osflagsnoclear) | 36| [osFlagsError](#osflagserror) 0x80000000U | 标志相关函数最高位错误,不支持。 [更多...](#osflagserror) | 37| [osFlagsErrorUnknown](#osflagserrorunknown) 0xFFFFFFFFU | 线程标志未知错误。 [更多...](#osflagserrorunknown) | 38| [osFlagsErrorTimeout](#osflagserrortimeout) 0xFFFFFFFEU | 线程标志超时错误。 [更多...](#osflagserrortimeout) | 39| [osFlagsErrorResource](#osflagserrorresource) 0xFFFFFFFDU | 线程标志资源错误。 [更多...](#osflagserrorresource) | 40| [osFlagsErrorParameter](#osflagserrorparameter) 0xFFFFFFFCU | 线程标志参数错误。 [更多...](#osflagserrorparameter) | 41| [osFlagsErrorISR](#osflagserrorisr) 0xFFFFFFFAU | 线程标志中断错误。 [更多...](#osflagserrorisr) | 42| [osThreadDetached](#osthreaddetached) 0x00000000U | 表示线程不可加入状态的宏。 [更多...](#osthreaddetached) | 43| [osThreadJoinable](#osthreadjoinable) 0x00000001U | 表示线程可加入状态的宏。 [更多...](#osthreadjoinable) | 44| [osMutexRecursive](#osmutexrecursive) 0x00000001U | 互斥锁递归属性宏,不支持。 [更多...](#osmutexrecursive) | 45| [osMutexPrioInherit](#osmutexprioinherit) 0x00000002U | 互斥锁优先级继承属性宏,不支持。 [更多...](#osmutexprioinherit) | 46| [osMutexRobust](#osmutexrobust) 0x00000008U | 互斥锁不自动释放属性宏,不支持。 [更多...](#osmutexrobust) | 47 48 49### 类型定义 50 51 | 类型定义 Name | 描述 | 52| -------- | -------- | 53| [osThreadFunc_t](#osthreadfunc_t) | 线程入口类型。 [更多...](#osthreadfunc_t) | 54| [osTimerFunc_t](#ostimerfunc_t) | 定时器入口类型。 [更多...](#ostimerfunc_t) | 55| [osThreadId_t](#osthreadid_t) | 线程ID类型。 [更多...](#osthreadid_t) | 56| [osTimerId_t](#ostimerid_t) | 定时器ID类型。 [更多...](#ostimerid_t) | 57| [osEventFlagsId_t](#oseventflagsid_t) | 事件ID类型。 [更多...](#oseventflagsid_t) | 58| [osMutexId_t](#osmutexid_t) | 互斥锁ID类型。 [更多...](#osmutexid_t) | 59| [osSemaphoreId_t](#ossemaphoreid_t) | 信号量ID类型。 [更多...](#ossemaphoreid_t) | 60| [osMemoryPoolId_t](#osmemorypoolid_t) | 内存池ID类型。 [更多...](#osmemorypoolid_t) | 61| [osMessageQueueId_t](#osmessagequeueid_t) | 消息队列ID类型。 [更多...](#osmessagequeueid_t) | 62| [TZ_ModuleId_t](#tz_moduleid_t) | 线程安全模块ID类型,不支持。 [更多...](#tz_moduleid_t) | 63 64 65### 枚举 66 67 | 枚举 Name | 描述 | 68| -------- | -------- | 69| [osKernelState_t](#oskernelstate_t) | 内核状态枚举。 [更多...](#oskernelstate_t) | 70| [osThreadState_t](#osthreadstate_t) | 线程状态枚举。 [更多...](#osthreadstate_t) | 71| [osPriority_t](#ospriority_t) | 优先级枚举。 [更多...](#ospriority_t) | 72| [osTimerType_t](#ostimertype_t) | 定时器类型枚举。 [更多...](#ostimertype_t) | 73| [osStatus_t](#osstatus_t) | CMSIS 标准返回值枚举。 [更多...](#osstatus_t) | 74 75 76### 函数 77 78 | 函数 Name | 描述 | 79| -------- | -------- | 80| [osKernelInitialize](#oskernelinitialize) (void) | 内核初始化函数。 [更多...](#oskernelinitialize) | 81| [osKernelGetInfo](#oskernelgetinfo) ([osVersion_t](os_version__t.md) \*version, char \*id_buf, uint32_t id_size) | 获取内核信息函数。 [更多...](#oskernelgetinfo) | 82| [osKernelGetState](#oskernelgetstate) (void) | 获取内核状态。 [更多...](#oskernelgetstate) | 83| [osKernelStart](#oskernelstart) (void) | 内核启动函数。 [更多...](#oskernelstart) | 84| [osKernelLock](#oskernellock) (void) | 内核调度锁定函数。 [更多...](#oskernellock) | 85| [osKernelUnlock](#oskernelunlock) (void) | 内核调度解锁函数。 [更多...](#oskernelunlock) | 86| [osKernelRestoreLock](#oskernelrestorelock) (int32_t lock) | 内核调度锁恢复函数。 [更多...](#oskernelrestorelock) | 87| [osKernelSuspend](#oskernelsuspend) (void) | 内核挂起函数,不支持。 [更多...](#oskernelsuspend) | 88| [osKernelResume](#oskernelresume) (uint32_t sleep_ticks) | 内核挂起恢复函数,不支持。 [更多...](#oskernelresume) | 89| [osKernelGetTickCount](#oskernelgettickcount) (void) | 获取内核tick函数。 [更多...](#oskernelgettickcount) | 90| [osKernelGetTickFreq](#oskernelgettickfreq) (void) | 获取内核tick频率函数。 [更多...](#oskernelgettickfreq) | 91| [osKernelGetSysTimerCount](#oskernelgetsystimercount) (void) | 获取系统启动后时间。 [更多...](#oskernelgetsystimercount) | 92| [osKernelGetSysTimerFreq](#oskernelgetsystimerfreq) (void) | 获取内核cpu cycle频率函数。 [更多...](#oskernelgetsystimerfreq) | 93| [osThreadNew](#osthreadnew) ([osThreadFunc_t](#osthreadfunc_t) func, void \*argument, const [osThreadAttr_t](os_thread_attr__t.md) \*attr) | 创建线程函数。 [更多...](#osthreadnew) | 94| [osThreadGetName](#osthreadgetname) ([osThreadId_t](#osthreadid_t) thread_id) | 获取线程名称函数。 [更多...](#osthreadgetname) | 95| [osThreadGetId](#osthreadgetid) (void) | 获取线程ID函数。 [更多...](#osthreadgetid) | 96| [osThreadGetState](#osthreadgetstate) ([osThreadId_t](#osthreadid_t) thread_id) | 获取线程状态函数。 [更多...](#osthreadgetstate) | 97| [osThreadGetStackSize](#osthreadgetstacksize) ([osThreadId_t](#osthreadid_t) thread_id) | 获取线程栈大小函数。 [更多...](#osthreadgetstacksize) | 98| [osThreadGetStackSpace](#osthreadgetstackspace) ([osThreadId_t](#osthreadid_t) thread_id) | 获取线程栈使用水线函数。 [更多...](#osthreadgetstackspace) | 99| [osThreadSetPriority](#osthreadsetpriority) ([osThreadId_t](#osthreadid_t) thread_id, [osPriority_t](#ospriority_t) priority) | 设置线程优先级函数。 [更多...](#osthreadsetpriority) | 100| [osThreadGetPriority](#osthreadgetpriority) ([osThreadId_t](#osthreadid_t) thread_id) | 获取线程优先级函数。 [更多...](#osthreadgetpriority) | 101| [osThreadYield](#osthreadyield) (void) | 线程调度函数。 [更多...](#osthreadyield) | 102| [osThreadSuspend](#osthreadsuspend) ([osThreadId_t](#osthreadid_t) thread_id) | 线程挂起函数。 [更多...](#osthreadsuspend) | 103| [osThreadResume](#osthreadresume) ([osThreadId_t](#osthreadid_t) thread_id) | 线程挂起恢复函数。 [更多...](#osthreadresume) | 104| [osThreadDetach](#osthreaddetach) ([osThreadId_t](#osthreadid_t) thread_id) | 线程分离函数。 [更多...](#osthreaddetach) | 105| [osThreadJoin](#osthreadjoin) ([osThreadId_t](#osthreadid_t) thread_id) | 等待指定线程终止函数。 [更多...](#osthreadjoin) | 106| [osThreadExit](#osthreadexit) (void) | 当前线程退出函数。 [更多...](#osthreadexit) | 107| [osThreadTerminate](#osthreadterminate) ([osThreadId_t](#osthreadid_t) thread_id) | 指定线程终止函数。 [更多...](#osthreadterminate) | 108| [osThreadGetCount](#osthreadgetcount) (void) | 获取使用中的线程数量。 [更多...](#osthreadgetcount) | 109| [osThreadEnumerate](#osthreadenumerate) ([osThreadId_t](#osthreadid_t) \*thread_array, uint32_t array_items) | 获取活动线程枚举,不支持。 [更多...](#osthreadenumerate) | 110| [osThreadFlagsSet](#osthreadflagsset) ([osThreadId_t](#osthreadid_t) thread_id, uint32_t flags) | 设置线程的指定线程标志。 [更多...](#osthreadflagsset) | 111| [osThreadFlagsClear](#osthreadflagsclear) (uint32_t flags) | 清除线程的指定线程标志。 [更多...](#osthreadflagsclear) | 112| [osThreadFlagsGet](#osthreadflagsget) (void) | 获取线程的线程标志。 [更多...](#osthreadflagsget) | 113| [osThreadFlagsWait](#osthreadflagswait) (uint32_t flags, uint32_t options, uint32_t timeout) | 等待指定线程标志。 [更多...](#osthreadflagswait) | 114| [osDelay](#osdelay) (uint32_t ticks) | 延时等待函数。 [更多...](#osdelay) | 115| [osDelayUntil](#osdelayuntil) (uint32_t ticks) | 指定到期时间的延时等待函数。 [更多...](#osdelayuntil) | 116| [osTimerNew](#ostimernew) ([osTimerFunc_t](#ostimerfunc_t) func, [osTimerType_t](#ostimertype_t) type, void \*argument, const [osTimerAttr_t](os_timer_attr__t.md) \*attr) | 定时器创建函数。 [更多...](#ostimernew) | 117| [osTimerGetName](#ostimergetname) ([osTimerId_t](#ostimerid_t) timer_id) | 获取定时器名称函数。 [更多...](#ostimergetname) | 118| [osTimerStart](#ostimerstart) ([osTimerId_t](#ostimerid_t) timer_id, uint32_t ticks) | 定时器开始运行函数。 [更多...](#ostimerstart) | 119| [osTimerStop](#ostimerstop) ([osTimerId_t](#ostimerid_t) timer_id) | 定时器停止运行函数。 [更多...](#ostimerstop) | 120| [osTimerIsRunning](#ostimerisrunning) ([osTimerId_t](#ostimerid_t) timer_id) | 定时器状态查询函数。 [更多...](#ostimerisrunning) | 121| [osTimerDelete](#ostimerdelete) ([osTimerId_t](#ostimerid_t) timer_id) | 定时器删除函数。 [更多...](#ostimerdelete) | 122| [osEventFlagsNew](#oseventflagsnew) (const [osEventFlagsAttr_t](os_event_flags_attr__t.md) \*attr) | 事件初始化函数。 [更多...](#oseventflagsnew) | 123| [osEventFlagsGetName](#oseventflagsgetname) ([osEventFlagsId_t](#oseventflagsid_t) ef_id) | 获取事件名称函数。 [更多...](#oseventflagsgetname) | 124| [osEventFlagsSet](#oseventflagsset) ([osEventFlagsId_t](#oseventflagsid_t) ef_id, uint32_t flags) | 设置事件标志函数。 [更多...](#oseventflagsset) | 125| [osEventFlagsClear](#oseventflagsclear) ([osEventFlagsId_t](#oseventflagsid_t) ef_id, uint32_t flags) | 清除事件标志函数。 [更多...](#oseventflagsclear) | 126| [osEventFlagsGet](#oseventflagsget) ([osEventFlagsId_t](#oseventflagsid_t) ef_id) | 获取事件标志函数。 [更多...](#oseventflagsget) | 127| [osEventFlagsWait](#oseventflagswait) ([osEventFlagsId_t](#oseventflagsid_t) ef_id, uint32_t flags, uint32_t options, uint32_t timeout) | 事件标志等待函数。 [更多...](#oseventflagswait) | 128| [osEventFlagsDelete](#oseventflagsdelete) ([osEventFlagsId_t](#oseventflagsid_t) ef_id) | 事件删除函数。 [更多...](#oseventflagsdelete) | 129| [osMutexNew](#osmutexnew) (const [osMutexAttr_t](os_mutex_attr__t.md) \*attr) | 互斥锁初始化函数。 [更多...](#osmutexnew) | 130| [osMutexGetName](#osmutexgetname) ([osMutexId_t](#osmutexid_t) mutex_id) | 获取互斥锁名称函数,不支持。 [更多...](#osmutexgetname) | 131| [osMutexAcquire](#osmutexacquire) ([osMutexId_t](#osmutexid_t) mutex_id, uint32_t timeout) | 获取互斥锁函数。 [更多...](#osmutexacquire) | 132| [osMutexRelease](#osmutexrelease) ([osMutexId_t](#osmutexid_t) mutex_id) | 释放互斥锁函数。 [更多...](#osmutexrelease) | 133| [osMutexGetOwner](#osmutexgetowner) ([osMutexId_t](#osmutexid_t) mutex_id) | 获取互斥锁所有者函数。 [更多...](#osmutexgetowner) | 134| [osMutexDelete](#osmutexdelete) ([osMutexId_t](#osmutexid_t) mutex_id) | 互斥锁删除函数。 [更多...](#osmutexdelete) | 135| [osSemaphoreNew](#ossemaphorenew) (uint32_t max_count, uint32_t initial_count, const [osSemaphoreAttr_t](os_semaphore_attr__t.md) \*attr) | 信号量初始化函数。 [更多...](#ossemaphorenew) | 136| [osSemaphoreGetName](#ossemaphoregetname) ([osSemaphoreId_t](#ossemaphoreid_t) semaphore_id) | 获取信号量名称函数。 [更多...](#ossemaphoregetname) | 137| [osSemaphoreAcquire](#ossemaphoreacquire) ([osSemaphoreId_t](#ossemaphoreid_t) semaphore_id, uint32_t timeout) | 获取信号量函数。 [更多...](#ossemaphoreacquire) | 138| [osSemaphoreRelease](#ossemaphorerelease) ([osSemaphoreId_t](#ossemaphoreid_t) semaphore_id) | 释放信号量函数。 [更多...](#ossemaphorerelease) | 139| [osSemaphoreGetCount](#ossemaphoregetcount) ([osSemaphoreId_t](#ossemaphoreid_t) semaphore_id) | 获取信号量状态量函数。 [更多...](#ossemaphoregetcount) | 140| [osSemaphoreDelete](#ossemaphoredelete) ([osSemaphoreId_t](#ossemaphoreid_t) semaphore_id) | 信号量删除函数。 [更多...](#ossemaphoredelete) | 141| [osMemoryPoolNew](#osmemorypoolnew) (uint32_t block_count, uint32_t block_size, const [osMemoryPoolAttr_t](os_memory_pool_attr__t.md) \*attr) | 内存池初始化函数。 [更多...](#osmemorypoolnew) | 142| [osMemoryPoolGetName](#osmemorypoolgetname) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 获取内存池名称函数。 [更多...](#osmemorypoolgetname) | 143| [osMemoryPoolAlloc](#osmemorypoolalloc) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id, uint32_t timeout) | 申请内存函数。 [更多...](#osmemorypoolalloc) | 144| [osMemoryPoolFree](#osmemorypoolfree) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id, void \*block) | 释放内存函数。 [更多...](#osmemorypoolfree) | 145| [osMemoryPoolGetCapacity](#osmemorypoolgetcapacity) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 获取内存池拥有块数量函数。 [更多...](#osmemorypoolgetcapacity) | 146| [osMemoryPoolGetBlockSize](#osmemorypoolgetblocksize) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 获取内存池块大小函数。 [更多...](#osmemorypoolgetblocksize) | 147| [osMemoryPoolGetCount](#osmemorypoolgetcount) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 获取内存池块使用块函数。 [更多...](#osmemorypoolgetcount) | 148| [osMemoryPoolGetSpace](#osmemorypoolgetspace) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 获取内存池剩余块函数。 [更多...](#osmemorypoolgetspace) | 149| [osMemoryPoolDelete](#osmemorypooldelete) ([osMemoryPoolId_t](#osmemorypoolid_t) mp_id) | 删除内存池函数。 [更多...](#osmemorypooldelete) | 150| [osMessageQueueNew](#osmessagequeuenew) (uint32_t msg_count, uint32_t msg_size, const [osMessageQueueAttr_t](os_message_queue_attr__t.md) \*attr) | 消息队列初始化函数。 [更多...](#osmessagequeuenew) | 151| [osMessageQueueGetName](#osmessagequeuegetname) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 获取消息队列名称函数。 [更多...](#osmessagequeuegetname) | 152| [osMessageQueuePut](#osmessagequeueput) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id, const void \*msg_ptr, uint8_t msg_prio, uint32_t timeout) | 消息队列发送消息函数。 [更多...](#osmessagequeueput) | 153| [osMessageQueueGet](#osmessagequeueget) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id, void \*msg_ptr, uint8_t \*msg_prio, uint32_t timeout) | 消息队列接收消息函数。 [更多...](#osmessagequeueget) | 154| [osMessageQueueGetCapacity](#osmessagequeuegetcapacity) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 获取消息队列最大节点数函数。 [更多...](#osmessagequeuegetcapacity) | 155| [osMessageQueueGetMsgSize](#osmessagequeuegetmsgsize) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 获取消息队列节点大小函数。 [更多...](#osmessagequeuegetmsgsize) | 156| [osMessageQueueGetCount](#osmessagequeuegetcount) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 获取消息队列待读节点数量函数。 [更多...](#osmessagequeuegetcount) | 157| [osMessageQueueGetSpace](#osmessagequeuegetspace) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 获取消息队列剩余可用节点数量函数。 [更多...](#osmessagequeuegetspace) | 158| [osMessageQueueReset](#osmessagequeuereset) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 消息队列重置函数,不支持。 [更多...](#osmessagequeuereset) | 159| [osMessageQueueDelete](#osmessagequeuedelete) ([osMessageQueueId_t](#osmessagequeueid_t) mq_id) | 删除消息队列函数。 [更多...](#osmessagequeuedelete) | 160 161 162## **详细描述** 163 164 165## **宏定义说明** 166 167 168### osFlagsError 169 170 171``` 172#define osFlagsError 0x80000000U 173``` 174 175**描述:** 176 177标志相关函数最高位错误,不支持。 178 179 180### osFlagsErrorISR 181 182 183``` 184#define osFlagsErrorISR 0xFFFFFFFAU 185``` 186 187**描述:** 188 189线程标志中断错误。 190 191 192### osFlagsErrorParameter 193 194 195``` 196#define osFlagsErrorParameter 0xFFFFFFFCU 197``` 198 199**描述:** 200 201线程标志参数错误。 202 203 204### osFlagsErrorResource 205 206 207``` 208#define osFlagsErrorResource 0xFFFFFFFDU 209``` 210 211**描述:** 212 213线程标志资源错误。 214 215 216### osFlagsErrorTimeout 217 218 219``` 220#define osFlagsErrorTimeout 0xFFFFFFFEU 221``` 222 223**描述:** 224 225线程标志超时错误。 226 227 228### osFlagsErrorUnknown 229 230 231``` 232#define osFlagsErrorUnknown 0xFFFFFFFFU 233``` 234 235**描述:** 236 237线程标志未知错误。 238 239 240### osFlagsNoClear 241 242 243``` 244#define osFlagsNoClear 0x00000002U 245``` 246 247**描述:** 248 249不清除指定等待标志。 250 251该宏用于标志相关函数中设置触发的方式。 252 253 254### osFlagsWaitAll 255 256 257``` 258#define osFlagsWaitAll 0x00000001U 259``` 260 261**描述:** 262 263等待全部标志触发。 264 265该宏用于标志相关函数中设置触发的方式。 266 267 268### osFlagsWaitAny 269 270 271``` 272#define osFlagsWaitAny 0x00000000U 273``` 274 275**描述:** 276 277等待任何标志触发 278 279该宏用于标志相关函数中设置触发的方式。 280 281 282### osMutexPrioInherit 283 284 285``` 286#define osMutexPrioInherit 0x00000002U 287``` 288 289**描述:** 290 291互斥锁优先级继承属性宏,不支持。 292 293 294### osMutexRecursive 295 296 297``` 298#define osMutexRecursive 0x00000001U 299``` 300 301**描述:** 302 303互斥锁递归属性宏,不支持。 304 305 306### osMutexRobust 307 308 309``` 310#define osMutexRobust 0x00000008U 311``` 312 313**描述:** 314 315互斥锁不自动释放属性宏,不支持。 316 317 318### osThreadDetached 319 320 321``` 322#define osThreadDetached 0x00000000U 323``` 324 325**描述:** 326 327表示线程不可加入状态的宏。 328 329该宏表示无法使用[osThreadJoin](#osthreadjoin)加入处于此状态的线程。 330 331 332### osThreadJoinable 333 334 335``` 336#define osThreadJoinable 0x00000001U 337``` 338 339**描述:** 340 341表示线程可加入状态的宏。 342 343该宏表示可以使用[osThreadJoin](#osthreadjoin)加入处于这种状态的线程。 344 345 346### osWaitForever 347 348 349``` 350#define osWaitForever 0xFFFFFFFFU 351``` 352 353**描述:** 354 355该宏表示系统永久等待,直到资源变得可用。 356 357## **类型定义说明** 358 359 360### osEventFlagsId_t 361 362 363``` 364typedef void* osEventFlagsId_t 365``` 366 367**描述:** 368 369事件ID类型。 370 371该类型用于识别不同事件。 372 373 374### osMemoryPoolId_t 375 376 377``` 378typedef void* osMemoryPoolId_t 379``` 380 381**描述:** 382 383内存池ID类型。 384 385该类型用于识别不同内存池。 386 387 388### osMessageQueueId_t 389 390 391``` 392typedef void* osMessageQueueId_t 393``` 394 395**描述:** 396 397消息队列ID类型。 398 399该类型用于识别不同消息队列。 400 401 402### osMutexId_t 403 404 405``` 406typedef void* osMutexId_t 407``` 408 409**描述:** 410 411互斥锁ID类型。 412 413该类型用于识别不同互斥锁。 414 415 416### osSemaphoreId_t 417 418 419``` 420typedef void* osSemaphoreId_t 421``` 422 423**描述:** 424 425信号量ID类型。 426 427该类型用于识别不同信号量。 428 429 430### osThreadFunc_t 431 432 433``` 434typedef void(* osThreadFunc_t) (void *argument) 435``` 436 437**描述:** 438 439线程入口类型。 440 441该类型用于线程调度时回调。 442 443 444### osThreadId_t 445 446 447``` 448typedef void* osThreadId_t 449``` 450 451**描述:** 452 453线程ID类型。 454 455该类型用于识别不同线程。 456 457 458### osTimerFunc_t 459 460 461``` 462typedef void(* osTimerFunc_t) (void *argument) 463``` 464 465**描述:** 466 467定时器入口类型。 468 469该类型用于定时器触发时回调。 470 471 472### osTimerId_t 473 474 475``` 476typedef void* osTimerId_t 477``` 478 479**描述:** 480 481定时器ID类型。 482 483该类型用于识别不同定时器。 484 485 486### TZ_ModuleId_t 487 488 489``` 490typedef uint32_t TZ_ModuleId_t 491``` 492 493**描述:** 494 495线程安全模块ID类型,不支持。 496 497 498## **枚举类型说明** 499 500 501### osKernelState_t 502 503 504``` 505enum osKernelState_t 506``` 507 508**描述:** 509 510内核状态枚举。 511 512该枚举用于描述内核的运行状态。 513 514 | 枚举值 | 描述 | 515| -------- | -------- | 516| osKernelInactive | 内核未启动 | 517| osKernelReady | 内核就绪 | 518| osKernelRunning | 内核运行中 | 519| osKernelLocked | 内核锁定 | 520| osKernelSuspended | 内核挂起 | 521| osKernelError | 内核异常 | 522| osKernelReserved | 保留的状态,用于阻止编译器对枚举进行优化 | 523 524 525### osPriority_t 526 527 528``` 529enum osPriority_t 530``` 531 532**描述:** 533 534优先级枚举。 535 536该枚举用于描述各级别优先级。 537 538 | 枚举值 | 描述 | 539| -------- | -------- | 540| osPriorityNone | 未初始化的优先级 | 541| osPriorityIdle | 为空闲线程保留的最低优先级,非空闲线程不能使用该优先级 | 542| osPriorityLow | 低优先级,这是非空闲线程当前版本可使用的最低优先级 | 543| osPriorityLow1 | 低优先级 + 1 | 544| osPriorityLow2 | 低优先级 + 2 | 545| osPriorityLow3 | 低优先级 + 3 | 546| osPriorityLow4 | 低优先级 + 4 | 547| osPriorityLow5 | 低优先级 + 5 | 548| osPriorityLow6 | 低优先级 + 6 | 549| osPriorityLow7 | 低优先级 + 7 | 550| osPriorityBelowNormal | 比普通等级稍低的优先级 | 551| osPriorityBelowNormal1 | 比普通等级稍低的优先级 + 1 | 552| osPriorityBelowNormal2 | 比普通等级稍低的优先级 + 2 | 553| osPriorityBelowNormal3 | 比普通等级稍低的优先级 + 3 | 554| osPriorityBelowNormal4 | 比普通等级稍低的优先级 + 4 | 555| osPriorityBelowNormal5 | 比普通等级稍低的优先级 + 5 | 556| osPriorityBelowNormal6 | 比普通等级稍低的优先级 + 6 | 557| osPriorityBelowNormal7 | 比普通等级稍低的优先级 + 7 | 558| osPriorityNormal | 普通优先级 | 559| osPriorityNormal1 | 普通优先级 + 1 | 560| osPriorityNormal2 | 普通优先级 + 2 | 561| osPriorityNormal3 | 普通优先级 + 3 | 562| osPriorityNormal4 | 普通优先级 + 4 | 563| osPriorityNormal5 | 普通优先级 + 5 | 564| osPriorityNormal6 | 普通优先级 + 6 | 565| osPriorityNormal7 | 普通优先级 + 7 | 566| osPriorityAboveNormal | 比普通等级稍高的优先级 | 567| osPriorityAboveNormal1 | 比普通等级稍高的优先级 + 1,这是当前版本可用的最高优先级 | 568| osPriorityAboveNormal2 | 比普通等级稍高的优先级 + 2 | 569| osPriorityAboveNormal3 | 比普通等级稍高的优先级 + 3 | 570| osPriorityAboveNormal4 | 比普通等级稍高的优先级 + 4 | 571| osPriorityAboveNormal5 | 比普通等级稍高的优先级 + 5 | 572| osPriorityAboveNormal6 | 比普通等级稍高的优先级 + 6 | 573| osPriorityAboveNormal7 | 比普通等级稍高的优先级 + 7 | 574| osPriorityHigh | 高优先级 | 575| osPriorityHigh1 | 高优先级 + 1 | 576| osPriorityHigh2 | 高优先级 + 2 | 577| osPriorityHigh3 | 高优先级 + 3 | 578| osPriorityHigh4 | 高优先级 + 4 | 579| osPriorityHigh5 | 高优先级 + 5 | 580| osPriorityHigh6 | 高优先级 + 6 | 581| osPriorityHigh7 | 高优先级 + 7 | 582| osPriorityRealtime | 实时优先级 | 583| osPriorityRealtime1 | 实时优先级 + 1 | 584| osPriorityRealtime2 | 实时优先级 + 2 | 585| osPriorityRealtime3 | 实时优先级 + 3 | 586| osPriorityRealtime4 | 实时优先级 + 4 | 587| osPriorityRealtime5 | 实时优先级 + 5 | 588| osPriorityRealtime6 | 实时优先级 + 6 | 589| osPriorityRealtime7 | 实时优先级 + 7 | 590| osPriorityISR | 为ISR(interrupt service routine,中断服务程序)保留的优先级 | 591| osPriorityError | 非法的优先级 | 592| osPriorityReserved | 保留的优先级,用于阻止编译器对枚举进行优化 | 593 594 595### osStatus_t 596 597 598``` 599enum osStatus_t 600``` 601 602**描述:** 603 604CMSIS接口标准返回值枚举。 605 606 | 枚举值 | 描述 | 607| -------- | -------- | 608| osOK | 操作成功 | 609| osError | 未特别说明的错误 | 610| osErrorTimeout | 超时错误 | 611| osErrorResource | 资源错误 | 612| osErrorParameter | 参数错误 | 613| osErrorNoMemory | 内存不足 | 614| osErrorISR | 中断服务错误 | 615| osStatusReserved | 保留的定义,用于阻止编译器对枚举进行优化 | 616 617 618### osThreadState_t 619 620 621``` 622enum osThreadState_t 623``` 624 625**描述:** 626 627线程状态枚举。 628 629该枚举用于描述线程的运行状态。 630 631 | 枚举值 | 描述 | 632| -------- | -------- | 633| osThreadInactive | 线程未运行 | 634| osThreadReady | 线程就绪 | 635| osThreadRunning | 线程运行中 | 636| osThreadBlocked | 线程阻塞 | 637| osThreadTerminated | 线程结束 | 638| osThreadError | 线程异常 | 639| osThreadReserved | 保留的状态,用于阻止编译器对枚举进行优化 | 640 641 642### osTimerType_t 643 644 645``` 646enum osTimerType_t 647``` 648 649**描述:** 650 651定时器类型枚举。 652 653该枚举用于定义定时器的类型。 654 655 | 枚举值 | 描述 | 656| -------- | -------- | 657| osTimerOnce | 单次触发定时器 | 658| osTimerPeriodic | 重复触发定时器 | 659 660 661## **函数说明** 662 663 664### osDelay 665 666 667``` 668osStatus_t osDelay (uint32_t ticks) 669``` 670 671**描述:** 672 673延时等待函数。 674 675用于把本线程置于挂起状态并立即发生上下文切换。开发者可自行提供硬件延时函数VOID HalDelay(UINT32 ticks),即可在系统未运行时执行本函数。 676 677**参数:** 678 679 | Name | 描述 | 680| -------- | -------- | 681| ticks | 任务延时的tick数。 | 682 683**返回:** 684 685osOK,表示执行成功。 686 687osErrorParameter,表示参数错误。 688 689osErrorISR,表示在中断中调用本函数。 690 691osError,表示其他错误。 692 693 694### osDelayUntil 695 696 697``` 698osStatus_t osDelayUntil (uint32_t ticks) 699``` 700 701**描述:** 702 703指定到期时间的延时等待函数。 704 705**参数:** 706 707 | Name | 描述 | 708| -------- | -------- | 709| ticks | 绝对时间,不能小于当前时间。 | 710 711**返回:** 712 713osOK,表示执行成功。 714 715osErrorISR,表示在中断中调用本函数。 716 717osError,表示其他错误。 718 719 720### osEventFlagsClear 721 722 723``` 724uint32_t osEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags) 725``` 726 727**描述:** 728 729清除事件标志函数。 730 731用于清除指定的事件标志,并返回清除前的事件标志。 732 733**参数:** 734 735 | Name | 描述 | 736| -------- | -------- | 737| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 738| flags | 待清除标志。 | 739 740**返回:** 741 742成功,返回清除前的事件标志。 743 744osFlagsErrorParameter,表示参数错误。 745 746osFlagsErrorResource,表示其他错误。 747 748 749### osEventFlagsDelete 750 751 752``` 753osStatus_t osEventFlagsDelete (osEventFlagsId_t ef_id) 754``` 755 756**描述:** 757 758事件删除函数。 759 760**参数:** 761 762 | Name | 描述 | 763| -------- | -------- | 764| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 765 766**返回:** 767 768osOK,表示执行成功。 769 770osErrorParameter,表示参数错误。 771 772osErrorISR,表示在中断中调用本函数。 773 774 775### osEventFlagsGet 776 777 778``` 779uint32_t osEventFlagsGet (osEventFlagsId_t ef_id) 780``` 781 782**描述:** 783 784获取事件标志函数。 785 786**参数:** 787 788 | Name | 描述 | 789| -------- | -------- | 790| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 791 792**返回:** 793 794成功,返回当前事件标志数值。 795 7960,表示执行失败。 797 798 799### osEventFlagsGetName 800 801 802``` 803const char* osEventFlagsGetName (osEventFlagsId_t ef_id) 804``` 805 806**描述:** 807 808获取事件名称函数。 809 810**参数:** 811 812 | Name | 描述 | 813| -------- | -------- | 814| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 815 816**返回:** 817 818当前只能返回NULL。 819 820 821### osEventFlagsNew 822 823 824``` 825osEventFlagsId_t osEventFlagsNew (const osEventFlagsAttr_t * attr) 826``` 827 828**描述:** 829 830事件初始化函数。 831 832**参数:** 833 834 | Name | 描述 | 835| -------- | -------- | 836| attr | 事件参数,当前不支持该参数,参数可为NULL。 | 837 838**返回:** 839 840成功,返回创建的事件ID。 841 842NULL,表示执行失败或在中断中调用该函数。 843 844 845### osEventFlagsSet 846 847 848``` 849uint32_t osEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags) 850``` 851 852**描述:** 853 854设置事件标志函数。 855 856**参数:** 857 858 | Name | 描述 | 859| -------- | -------- | 860| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 861| flags | 待设置标志,第25位不能设置为1。 | 862 863**返回:** 864 865成功,返回设置后的标志。 866 867osFlagsErrorParameter,表示参数错误。 868 869osFlagsErrorResource,表示其他问题。 870 871 872### osEventFlagsWait 873 874 875``` 876uint32_t osEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout) 877``` 878 879**描述:** 880 881事件标志等待函数。 882 883**参数:** 884 885 | Name | 描述 | 886| -------- | -------- | 887| ef_id | 定时器ID(由[osEventFlagsNew](#oseventflagsnew)创建)。 | 888| flags | 等待的标志,第25位不能设置为1。 | 889| options | 等待设置,仅限于osFlagsWaitAny \| osFlagsWaitAll \| osFlagsNoClear。 | 890| timeout | 超时时间,单位:tick。 | 891 892**返回:** 893 894成功,返回等到的标志,内容与参数options设置有关。 895 896osFlagsErrorParameter,表示参数错误或中断中调用该函数。 897 898osFlagsErrorTimeout,表示超时错误。 899 900osFlagsErrorResource,表示其他问题。 901 902 903### osKernelGetInfo 904 905 906``` 907osStatus_t osKernelGetInfo (osVersion_t * version, char * id_buf, uint32_t id_size) 908``` 909 910**描述:** 911 912获取系统版本号和系统名称。 913 914**参数:** 915 916 | Name | 描述 | 917| -------- | -------- | 918| version | 指向获取版本信息缓冲区的指针。 | 919| id_buf | 指向获取内核版本缓冲区的指针。 | 920| id_size | 用于获取内核版本缓冲区的大小,单位字节。 | 921 922**返回:** 923 924osOK,表示执行成功。 925 926osError,表示其他错误。 927 928 929### osKernelGetState 930 931 932``` 933osKernelState_t osKernelGetState (void) 934``` 935 936**描述:** 937 938获取内核状态。 939 940**返回:** 941 942返回系统状态的枚举值。 943 944 945### osKernelGetSysTimerCount 946 947 948``` 949uint32_t osKernelGetSysTimerCount (void) 950``` 951 952**描述:** 953 954获取系统启动后时间。 955 956**返回:** 957 958返回启动后的时间(单位: cycle)。 959 960 961### osKernelGetSysTimerFreq 962 963 964``` 965uint32_t osKernelGetSysTimerFreq (void) 966``` 967 968**描述:** 969 970获取内核cpu cycle频率函数。 971 972**返回:** 973 974返回每秒cycle数(单位: cycle)。 975 976 977### osKernelGetTickCount 978 979 980``` 981uint32_t osKernelGetTickCount (void) 982``` 983 984**描述:** 985 986获取内核tick函数。 987 988**返回:** 989 990返回当前的tick。 991 992 993### osKernelGetTickFreq 994 995 996``` 997uint32_t osKernelGetTickFreq (void) 998``` 999 1000**描述:** 1001 1002获取内核tick频率函数。 1003 1004**返回:** 1005 1006返回每秒的tick数。 1007 1008 1009### osKernelInitialize 1010 1011 1012``` 1013osStatus_t osKernelInitialize (void) 1014``` 1015 1016**描述:** 1017 1018内核初始化函数。 1019 1020初始化实时操作系统内核,大部分接口无法在初始化之前使用。 1021 1022**返回:** 1023 1024osOK,表示执行成功。 1025 1026osErrorISR,表示在中断中调用本函数。 1027 1028osError,表示其他错误。 1029 1030 1031### osKernelLock 1032 1033 1034``` 1035int32_t osKernelLock (void) 1036``` 1037 1038**描述:** 1039 1040内核调度锁定函数。 1041 1042**返回:** 1043 1044成功,返回前一次的锁定状态(1为锁定,0为未锁定)。 1045 1046osErrorISR,表示在中断中调用本函数。 1047 1048osError,表示其他错误。 1049 1050 1051### osKernelRestoreLock 1052 1053 1054``` 1055int32_t osKernelRestoreLock (int32_t lock) 1056``` 1057 1058**描述:** 1059 1060内核调度锁恢复函数。 1061 1062**参数:** 1063 1064 | Name | 描述 | 1065| -------- | -------- | 1066| lock | 待恢复的锁定状态。 | 1067 1068**返回:** 1069 1070成功,返回恢复后的锁定状态(1为锁定,0为未锁定)。 1071 1072osErrorISR,表示在中断中调用本函数。 1073 1074osError,表示其他错误。 1075 1076 1077### osKernelResume 1078 1079 1080``` 1081void osKernelResume (uint32_t sleep_ticks) 1082``` 1083 1084**描述:** 1085 1086内核挂起恢复函数,不支持。 1087 1088 1089### osKernelStart 1090 1091 1092``` 1093osStatus_t osKernelStart (void) 1094``` 1095 1096**描述:** 1097 1098内核启动函数。 1099 1100用于开启内核调度,调度之前需要[osKernelInitialize](#oskernelinitialize)。 1101 1102**返回:** 1103 1104osOK,表示执行成功。 1105 1106osErrorISR,表示在中断中调用本函数。 1107 1108osError,表示其他错误。 1109 1110 1111### osKernelSuspend 1112 1113 1114``` 1115uint32_t osKernelSuspend (void) 1116``` 1117 1118**描述:** 1119 1120内核挂起函数,不支持。 1121 1122 1123### osKernelUnlock 1124 1125 1126``` 1127int32_t osKernelUnlock (void) 1128``` 1129 1130**描述:** 1131 1132内核调度解锁函数。 1133 1134**返回:** 1135 1136成功,返回前一次的锁定状态(1为锁定,0为未锁定)。 1137 1138osErrorISR,表示在中断中调用本函数。 1139 1140osError,表示其他错误。 1141 1142 1143### osMemoryPoolAlloc 1144 1145 1146``` 1147void* osMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout) 1148``` 1149 1150**描述:** 1151 1152申请内存函数。 1153 1154用于从内存池中获取到一块内存,该函数不会阻塞。 1155 1156**参数:** 1157 1158 | Name | 描述 | 1159| -------- | -------- | 1160| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1161| timeout | 超时时间,当前不支持阻塞,参数不生效。 | 1162 1163**返回:** 1164 1165成功,返回分配内存块的地址。 1166 1167NULL,表示参数错误或中断中调用本函数。 1168 1169 1170### osMemoryPoolDelete 1171 1172 1173``` 1174osStatus_t osMemoryPoolDelete (osMemoryPoolId_t mp_id) 1175``` 1176 1177**描述:** 1178 1179删除内存池函数。 1180 1181 1182**参数:** 1183 1184 | Name | 描述 | 1185| -------- | -------- | 1186| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1187 1188**返回:** 1189 1190osOK,表示执行成功。 1191 1192osErrorParameter,表示参数错误。 1193 1194osErrorISR,表示在中断中调用本函数。 1195 1196osErrorResource,表示其他错误。 1197 1198 1199### osMemoryPoolFree 1200 1201 1202``` 1203osStatus_t osMemoryPoolFree (osMemoryPoolId_t mp_id, void * block) 1204``` 1205 1206**描述:** 1207 1208释放内存函数。 1209 1210用于从内存池中释放一块内存。 1211 1212**参数:** 1213 1214 | Name | 描述 | 1215| -------- | -------- | 1216| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1217| block | 要释放的块地址。 | 1218 1219**返回:** 1220 1221osOK,表示执行成功。 1222 1223osErrorParameter,表示参数错误。 1224 1225osErrorResource,表示其他错误。 1226 1227 1228### osMemoryPoolGetBlockSize 1229 1230 1231``` 1232uint32_t osMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id) 1233``` 1234 1235**描述:** 1236 1237获取内存池块大小函数。 1238 1239 1240**参数:** 1241 1242 | Name | 描述 | 1243| -------- | -------- | 1244| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1245 1246**返回:** 1247 1248成功,返回块大小,单位字节。 1249 12500,表示参数错误。 1251 1252 1253### osMemoryPoolGetCapacity 1254 1255 1256``` 1257uint32_t osMemoryPoolGetCapacity (osMemoryPoolId_t mp_id) 1258``` 1259 1260**描述:** 1261 1262获取内存池拥有块数量函数。 1263 1264 1265**参数:** 1266 1267 | Name | 描述 | 1268| -------- | -------- | 1269| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1270 1271**返回:** 1272 1273成功,返回块数量。 1274 12750,表示参数错误。 1276 1277 1278### osMemoryPoolGetCount 1279 1280 1281``` 1282uint32_t osMemoryPoolGetCount (osMemoryPoolId_t mp_id) 1283``` 1284 1285**描述:** 1286 1287获取内存池块使用块函数。 1288 1289 1290**参数:** 1291 1292 | Name | 描述 | 1293| -------- | -------- | 1294| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1295 1296**返回:** 1297 1298成功,返回已使用块数量。 1299 13000,表示参数错误。 1301 1302 1303### osMemoryPoolGetName 1304 1305 1306``` 1307const char* osMemoryPoolGetName (osMemoryPoolId_t mp_id) 1308``` 1309 1310**描述:** 1311 1312获取内存池名称函数。 1313 1314**参数:** 1315 1316 | Name | 描述 | 1317| -------- | -------- | 1318| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1319 1320**返回:** 1321 1322成功,返回内存池名。 1323 1324NULL,表示参数错误或中断中调用本函数。 1325 1326 1327### osMemoryPoolGetSpace 1328 1329 1330``` 1331uint32_t osMemoryPoolGetSpace (osMemoryPoolId_t mp_id) 1332``` 1333 1334**描述:** 1335 1336获取内存池剩余块函数。 1337 1338 1339**参数:** 1340 1341 | Name | 描述 | 1342| -------- | -------- | 1343| mp_id | 内存池ID(由[osMemoryPoolNew](#osmemorypoolnew)创建)。 | 1344 1345**返回:** 1346 1347成功,返回剩余数量。 1348 13490,表示参数错误。 1350 1351 1352### osMemoryPoolNew 1353 1354 1355``` 1356osMemoryPoolId_t osMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t * attr) 1357``` 1358 1359**描述:** 1360 1361内存池初始化函数。 1362 1363**参数:** 1364 1365| Name | 描述 | 1366| -------- | -------- | 1367| block_count | 内存池块数。 | 1368| block_size | 内存池块大小,单位:字节。 | 1369| attr | 内存池参数,若参数为NULL则使用默认配置。<br/>- attr->name 不支持配置。<br/>- attr->attr_bits 不支持配置。<br/>- attr->cb_mem不为NULL且attr->cb_size大于控制块所需大小即可使用外部传入的内存池控制块。 内存池控制块必需大小当前为36字节(sizeof(MemPoolCB),MemPoolCB定义在cmsis_liteos2.c中)。<br/>- attr->mp_mem,用户指定的内存池指针,指向的地址符合4字节对齐时使用用户指定的内存作为内存池。<br/>- attr->mp_size,用户指定的内存大小,使用用户指定内存作为内存池时,需配置为不小于内存池所有节点所需的空间。 | 1370 1371**返回:** 1372 1373成功,返回内存池ID。 1374 1375NULL,表示参数错误或中断中调用本函数。 1376 1377 1378### osMessageQueueDelete 1379 1380 1381``` 1382osStatus_t osMessageQueueDelete (osMessageQueueId_t mq_id) 1383``` 1384 1385**描述:** 1386 1387删除消息队列函数。 1388 1389**参数:** 1390 1391 | Name | 描述 | 1392| -------- | -------- | 1393| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1394 1395**返回:** 1396 1397osOK,表示执行成功。 1398 1399osErrorParameter,表示参数错误。 1400 1401osErrorResource,表示其他错误。 1402 1403osErrorISR,表示在中断中调用本函数。 1404 1405 1406### osMessageQueueGet 1407 1408 1409``` 1410osStatus_t osMessageQueueGet (osMessageQueueId_t mq_id, void * msg_ptr, uint8_t * msg_prio, uint32_t timeout) 1411``` 1412 1413**描述:** 1414 1415消息队列接收消息函数。 1416 1417用于把消息队列中读取一条消息,当前不支持消息优先级。 1418 1419**参数:** 1420 1421 | Name | 描述 | 1422| -------- | -------- | 1423| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1424| msg_ptr | 指向缓冲区的指针,获取到的数据会拷贝到该缓冲区。 | 1425| msg_prio | 消息优先级,当前不支持该参数。 | 1426| timeout | 超时时间,单位:tick。在中断中调用时必须设置为0。 | 1427 1428**返回:** 1429 1430osOK,表示执行成功。 1431 1432osErrorParameter,表示参数错误。 1433 1434osErrorResource,表示其他错误。 1435 1436osErrorTimeout,表示超时错误。 1437 1438 1439### osMessageQueueGetCapacity 1440 1441 1442``` 1443uint32_t osMessageQueueGetCapacity (osMessageQueueId_t mq_id) 1444``` 1445 1446**描述:** 1447 1448获取消息队列最大节点数函数。 1449 1450 1451**参数:** 1452 1453 | Name | 描述 | 1454| -------- | -------- | 1455| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1456 1457**返回:** 1458 1459成功,返回队列最大节点数。 1460 14610,表示参数错误。 1462 1463 1464### osMessageQueueGetCount 1465 1466 1467``` 1468uint32_t osMessageQueueGetCount (osMessageQueueId_t mq_id) 1469``` 1470 1471**描述:** 1472 1473获取消息队列待读节点数量函数。 1474 1475 1476**参数:** 1477 1478 | Name | 描述 | 1479| -------- | -------- | 1480| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1481 1482**返回:** 1483 1484成功,返回待读节点数量。 1485 14860,表示参数错误。 1487 1488 1489### osMessageQueueGetMsgSize 1490 1491 1492``` 1493uint32_t osMessageQueueGetMsgSize (osMessageQueueId_t mq_id) 1494``` 1495 1496**描述:** 1497 1498获取消息队列节点大小函数。 1499 1500**参数:** 1501 1502 | Name | 描述 | 1503| -------- | -------- | 1504| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1505 1506**返回:** 1507 1508成功,返回队列节点大小,单位: 字节。 1509 15100,表示参数错误。 1511 1512 1513### osMessageQueueGetName 1514 1515 1516``` 1517const char* osMessageQueueGetName (osMessageQueueId_t mq_id) 1518``` 1519 1520**描述:** 1521 1522获取消息队列名称函数。 1523 1524**参数:** 1525 1526 | Name | 描述 | 1527| -------- | -------- | 1528| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1529 1530**返回:** 1531 1532成功,返回消息队列名。 1533 1534NULL,表示参数错误或未设置队列名。 1535 1536 1537### osMessageQueueGetSpace 1538 1539 1540``` 1541uint32_t osMessageQueueGetSpace (osMessageQueueId_t mq_id) 1542``` 1543 1544**描述:** 1545 1546获取消息队列剩余可用节点数量函数。 1547 1548**参数:** 1549 1550 | Name | 描述 | 1551| -------- | -------- | 1552| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1553 1554**返回:** 1555 1556成功,返回剩余可用节点数量。 1557 15580,表示参数错误。 1559 1560 1561### osMessageQueueNew 1562 1563 1564``` 1565osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t * attr) 1566``` 1567 1568**描述:** 1569 1570消息队列初始化函数。 1571 1572用于初始化消息队列,使用外部内存做队列空间时,需提前打开内核编译选项 LOSCFG_BASE_IPC_QUEUE_STATIC。 1573 1574**参数:** 1575 1576| Name | 描述 | 1577| -------- | -------- | 1578| msg_count | 队列的节点数量。 | 1579| msg_size | 队列的单个节点空间大小,单位: 字节,使用用户指定内存做队列空间时该参数不生效但不可设置为0。 | 1580| attr | 队列参数,若参数为NULL则使用默认配置。<br/>- attr->name 入参可为NULL,若传递非NULL时需确保传递一个常量。<br/>- attr->attr_bits 不支持配置。<br/>- attr->cb_mem 不支持配置。<br/>- attr->cb_size 不支持配置。<br/>- attr->mq_mem 用户指定内存指针做为队列空间,为NULL则内存由系统自动分配。<br/>- attr->mq_size 用户指定内存大小,由单个节点大小和节点数量相乘获得。 | 1581 1582**返回:** 1583 1584成功,返回消息队列ID。 1585 1586NULL,表示参数错误或中断中调用本函数。 1587 1588 1589### osMessageQueuePut 1590 1591 1592``` 1593osStatus_t osMessageQueuePut (osMessageQueueId_t mq_id, const void * msg_ptr, uint8_t msg_prio, uint32_t timeout) 1594``` 1595 1596**描述:** 1597 1598消息队列发送消息函数。 1599 1600用于把消息插入队列中,当前不支持消息优先级,新消息会在队列尾部。 1601 1602**参数:** 1603 1604 | Name | 描述 | 1605| -------- | -------- | 1606| mq_id | 消息队列ID(由[osMessageQueueNew](#osmessagequeuenew)创建)。 | 1607| msg_ptr | 指向缓冲区的指针,数据会拷贝到消息队列中。 | 1608| msg_prio | 消息优先级,当前不支持该参数。 | 1609| timeout | 超时时间,单位:tick。在中断中调用时必须设置为0。 | 1610 1611**返回:** 1612 1613osOK,表示执行成功。 1614 1615osErrorParameter,表示参数错误。 1616 1617osErrorResource,表示其他错误。 1618 1619osErrorTimeout,表示超时错误。 1620 1621 1622### osMessageQueueReset 1623 1624 1625``` 1626osStatus_t osMessageQueueReset (osMessageQueueId_t mq_id) 1627``` 1628 1629**描述:** 1630 1631消息队列重置函数,不支持。 1632 1633 1634### osMutexAcquire 1635 1636 1637``` 1638osStatus_t osMutexAcquire (osMutexId_t mutex_id, uint32_t timeout) 1639``` 1640 1641**描述:** 1642 1643获取互斥锁函数。 1644 1645会阻塞线程运行直到获取互斥锁成功或超时。 1646 1647**参数:** 1648 1649 | Name | 描述 | 1650| -------- | -------- | 1651| mutex_id | 互斥锁ID(由[osMutexNew](#osmutexnew)创建)。 | 1652| timeout | 互斥锁获取超时时间,单位:tick。 | 1653 1654**返回:** 1655 1656osOK,表示执行成功。 1657 1658osErrorParameter,表示参数错误。 1659 1660osErrorResource,表示其他错误。 1661 1662osErrorISR,表示在中断中调用本函数。 1663 1664osErrorTimeout,表示超时错误。 1665 1666 1667### osMutexDelete 1668 1669 1670``` 1671osStatus_t osMutexDelete (osMutexId_t mutex_id) 1672``` 1673 1674**描述:** 1675 1676互斥锁删除函数。 1677 1678**参数:** 1679 1680 | Name | 描述 | 1681| -------- | -------- | 1682| mutex_id | 互斥锁ID(由[osMutexNew](#osmutexnew)创建)。 | 1683 1684**返回:** 1685 1686osOK,表示执行成功。 1687 1688osErrorParameter,表示参数错误。 1689 1690osErrorResource,表示其他错误。 1691 1692osErrorISR,表示在中断中调用本函数。 1693 1694 1695### osMutexGetName 1696 1697 1698``` 1699const char* osMutexGetName (osMutexId_t mutex_id) 1700``` 1701 1702**描述:** 1703 1704获取互斥锁名称函数,不支持。 1705 1706 1707### osMutexGetOwner 1708 1709 1710``` 1711osThreadId_t osMutexGetOwner (osMutexId_t mutex_id) 1712``` 1713 1714**描述:** 1715 1716获取互斥锁所有者函数。 1717 1718**参数:** 1719 1720 | Name | 描述 | 1721| -------- | -------- | 1722| mutex_id | 互斥锁ID(由[osMutexNew](#osmutexnew)创建)。 | 1723 1724**返回:** 1725 1726成功,返回线程ID。 1727 1728NULL,表示参数错误或中断中调用本函数。 1729 1730 1731### osMutexNew 1732 1733 1734``` 1735osMutexId_t osMutexNew (const osMutexAttr_t * attr) 1736``` 1737 1738**描述:** 1739 1740互斥锁初始化函数。 1741 1742**参数:** 1743 1744 | Name | 描述 | 1745| -------- | -------- | 1746| attr | 互斥锁参数,当前内部未使用该参数,参数可为NULL。 | 1747 1748**返回:** 1749 1750成功,返回互斥锁ID。 1751 1752NULL,执行失败或在中断中调用该函数。 1753 1754 1755### osMutexRelease 1756 1757 1758``` 1759osStatus_t osMutexRelease (osMutexId_t mutex_id) 1760``` 1761 1762**描述:** 1763 1764释放互斥锁函数。 1765 1766等待该互斥锁的线程会从阻塞中恢复。 1767 1768**参数:** 1769 1770 | Name | 描述 | 1771| -------- | -------- | 1772| mutex_id | 互斥锁ID(由[osMutexNew](#osmutexnew)创建)。 | 1773 1774**返回:** 1775 1776osOK,表示执行成功。 1777 1778osErrorParameter,表示参数错误。 1779 1780osErrorResource,表示其他错误。 1781 1782osErrorISR,表示在中断中调用本函数。 1783 1784 1785### osSemaphoreAcquire 1786 1787 1788``` 1789osStatus_t osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout) 1790``` 1791 1792**描述:** 1793 1794获取信号量函数。 1795 1796会阻塞线程运行直到获取信号量成功或超时。 1797 1798**参数:** 1799 1800 | Name | 描述 | 1801| -------- | -------- | 1802| semaphore_id | 信号量ID(由[osSemaphoreNew](#ossemaphorenew)创建)。 | 1803| timeout | 超时时间,单位:tick。在中断中调用时必须设置为0。 | 1804 1805**返回:** 1806 1807osOK,表示执行成功。 1808 1809osErrorParameter,表示参数错误。 1810 1811osErrorResource,表示其他错误。 1812 1813osErrorTimeout,表示超时错误。 1814 1815 1816### osSemaphoreDelete 1817 1818 1819``` 1820osStatus_t osSemaphoreDelete (osSemaphoreId_t semaphore_id) 1821``` 1822 1823**描述:** 1824 1825信号量删除函数。 1826 1827**参数:** 1828 1829 | Name | 描述 | 1830| -------- | -------- | 1831| semaphore_id | 信号量ID(由[osSemaphoreNew](#ossemaphorenew)创建)。 | 1832 1833**返回:** 1834 1835osOK,表示执行成功。 1836 1837osErrorParameter,表示参数错误或中断中调用本函数。 1838 1839osErrorResource,表示其他错误。 1840 1841 1842### osSemaphoreGetCount 1843 1844 1845``` 1846uint32_t osSemaphoreGetCount (osSemaphoreId_t semaphore_id) 1847``` 1848 1849**描述:** 1850 1851获取信号量可用数量。 1852 1853 1854**参数:** 1855 1856 | Name | 描述 | 1857| -------- | -------- | 1858| semaphore_id | 信号量ID(由[osSemaphoreNew](#ossemaphorenew)创建)。 | 1859 1860**返回:** 1861 1862成功,返回当前可用信号量数量。 1863 18640,表示执行失败或当执行成功但无可用信号量。 1865 1866 1867### osSemaphoreGetName 1868 1869 1870``` 1871const char* osSemaphoreGetName (osSemaphoreId_t semaphore_id) 1872``` 1873 1874**描述:** 1875 1876获取信号量名称函数。 1877 1878**参数:** 1879 1880 | Name | 描述 | 1881| -------- | -------- | 1882| semaphore_id | 信号量ID(由[osSemaphoreNew](#ossemaphorenew)创建)。 | 1883 1884**返回:** 1885 1886当前只能返回NULL。 1887 1888 1889### osSemaphoreNew 1890 1891 1892``` 1893osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t * attr) 1894``` 1895 1896**描述:** 1897 1898信号量初始化函数。 1899 1900 1901**参数:** 1902 1903 | Name | 描述 | 1904| -------- | -------- | 1905| max_count | 信号量可申请最大值,max_count值为1时会创建一个二元信号量。 | 1906| initial_count | 信号量初始值。 | 1907| attr | 信号量参数,当前内部未使用该参数,参数可为NULL。 | 1908 1909**返回:** 1910 1911成功,返回信号量ID。 1912 1913NULL,表示参数错误或中断中调用本函数。 1914 1915 1916### osSemaphoreRelease 1917 1918 1919``` 1920osStatus_t osSemaphoreRelease (osSemaphoreId_t semaphore_id) 1921``` 1922 1923**描述:** 1924 1925释放信号量函数。 1926 1927等待该信号量的线程会从阻塞中恢复。 1928 1929**参数:** 1930 1931 | Name | 描述 | 1932| -------- | -------- | 1933| semaphore_id | 信号量ID(由[osSemaphoreNew](#ossemaphorenew)创建)。 | 1934 1935**返回:** 1936 1937osOK,表示执行成功。 1938 1939osErrorParameter,表示参数错误。 1940 1941osErrorResource,表示其他错误。 1942 1943 1944### osThreadDetach 1945 1946 1947``` 1948osStatus_t osThreadDetach (osThreadId_t thread_id) 1949``` 1950 1951**描述:** 1952 1953线程分离函数。 1954 1955用于把指定线程属性设置为[osThreadDetached](#osthreaddetached)。 1956 1957**参数:** 1958 1959 | Name | 描述 | 1960| -------- | -------- | 1961| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 1962 1963**返回:** 1964 1965osOK,表示执行成功。 1966 1967osErrorParameter,表示参数错误。 1968 1969osErrorResource,表示其他错误。 1970 1971osErrorISR,表示在中断中调用本函数。 1972 1973 1974### osThreadEnumerate 1975 1976 1977``` 1978uint32_t osThreadEnumerate (osThreadId_t * thread_array, uint32_t array_items) 1979``` 1980 1981**描述:** 1982 1983获取活动线程枚举,不支持。 1984 1985 1986### osThreadExit 1987 1988 1989``` 1990__NO_RETURN void osThreadExit (void) 1991``` 1992 1993**描述:** 1994 1995当前线程退出函数。 1996 1997用于线程退出,本函数不会返回。 1998 1999**返回:** 2000 2001本函数不会返回。 2002 2003 2004### osThreadFlagsClear 2005 2006 2007``` 2008uint32_t osThreadFlagsClear (uint32_t flags) 2009``` 2010 2011**描述:** 2012 2013清除线程的指定线程标志。 2014 2015用于清除当前正在运行的线程的指定线程标志。 2016 2017**参数:** 2018 2019 | Name | 描述 | 2020| -------- | -------- | 2021| flags | 待清除的标志,线程标志的第25位为错误标志。 | 2022 2023**返回:** 2024 2025成功,返回清除前的标志。 2026 2027osFlagsErrorUnknown,表示在中断中调用本函数。 2028 2029osFlagsErrorResource,表示其他错误。 2030 2031 2032### osThreadFlagsGet 2033 2034 2035``` 2036uint32_t osThreadFlagsGet (void) 2037``` 2038 2039**描述:** 2040 2041获取线程的线程标志。 2042 2043**返回:** 2044 2045成功,返回当前的标志。 2046 2047osFlagsErrorUnknown,表示在中断中调用本函数。 2048 2049 2050### osThreadFlagsSet 2051 2052 2053``` 2054uint32_t osThreadFlagsSet (osThreadId_t thread_id, uint32_t flags) 2055``` 2056 2057**描述:** 2058 2059设置线程的指定线程标志。 2060 2061 2062**参数:** 2063 2064 | Name | 描述 | 2065| -------- | -------- | 2066| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2067| flags | 设置的标志,第25位不能设置为1,函数会返回参数错误。 | 2068 2069**返回:** 2070 2071成功,返回设置后的标志。 2072 2073osFlagsErrorParameter,表示参数错误。 2074 2075osFlagsErrorResource,表示其他错误。 2076 2077 2078### osThreadFlagsWait 2079 2080 2081``` 2082uint32_t osThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout) 2083``` 2084 2085**描述:** 2086 2087等待指定线程标志。 2088 2089**参数:** 2090 2091 | Name | 描述 | 2092| -------- | -------- | 2093| flags | 等待的标志,第 25 位为错误标志。 | 2094| options | 等待的方式,仅限于[osFlagsWaitAny](#osflagswaitany) \| [osFlagsWaitAll](#osflagswaitall) \| [osFlagsNoClear](#osflagsnoclear)。 | 2095| timeout | 等待超时时间,单位:tick。 | 2096 2097**返回:** 2098 2099成功,返回等到的标志,内容与参数options设置有关。 2100 2101osFlagsErrorUnknown,表示在中断中调用本函数。 2102 2103osFlagsErrorParameter,表示flag错误或者options错误。 2104 2105osFlagsErrorTimeout,表示等待超时。 2106 2107osFlagsErrorResource,表示其他问题。 2108 2109 2110### osThreadGetCount 2111 2112 2113``` 2114uint32_t osThreadGetCount (void) 2115``` 2116 2117**描述:** 2118 2119获取使用中的线程数量。 2120 2121 2122**返回:** 2123 2124返回线程数量。 2125 21260,表示中断中调用该函数。 2127 2128 2129### osThreadGetId 2130 2131 2132``` 2133osThreadId_t osThreadGetId (void) 2134``` 2135 2136**描述:** 2137 2138获取当前线程ID函数。 2139 2140 2141**返回:** 2142 2143返回线程ID,该函数不会返回失败。 2144 2145 2146### osThreadGetName 2147 2148 2149``` 2150const char* osThreadGetName (osThreadId_t thread_id) 2151``` 2152 2153**描述:** 2154 2155获取线程名称函数。 2156 2157**参数:** 2158 2159 | Name | 描述 | 2160| -------- | -------- | 2161| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2162 2163**返回:** 2164 2165返回线程名称。 2166 2167NULL,表示失败或在中断中调用该函数。 2168 2169 2170### osThreadGetPriority 2171 2172 2173``` 2174osPriority_t osThreadGetPriority (osThreadId_t thread_id) 2175``` 2176 2177**描述:** 2178 2179获取线程优先级函数。 2180 2181**参数:** 2182 2183 | Name | 描述 | 2184| -------- | -------- | 2185| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2186 2187**返回:** 2188 2189成功,返回有效的线程优先级。 2190 2191osPriorityError,表示参数错误或在中断中调用本函数。 2192 2193 2194### osThreadGetStackSize 2195 2196 2197``` 2198uint32_t osThreadGetStackSize (osThreadId_t thread_id) 2199``` 2200 2201**描述:** 2202 2203获取线程栈大小函数。 2204 2205**参数:** 2206 2207 | Name | 描述 | 2208| -------- | -------- | 2209| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2210 2211**返回:** 2212 2213返回指定线程栈大小,单位: 字节。 2214 22150,表示失败或在中断中调用该函数。 2216 2217 2218### osThreadGetStackSpace 2219 2220 2221``` 2222uint32_t osThreadGetStackSpace (osThreadId_t thread_id) 2223``` 2224 2225**描述:** 2226 2227获取线程栈使用水线函数。 2228 2229用于获取指定线程的栈使用水线,该函数无法通过配置来返回栈剩余空间。 2230 2231**参数:** 2232 2233 | Name | 描述 | 2234| -------- | -------- | 2235| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2236 2237**返回:** 2238 2239返回指定线程栈水线,单位: 字节。 2240 22410,表示失败或在中断中调用该函数。 2242 2243 2244### osThreadGetState 2245 2246 2247``` 2248osThreadState_t osThreadGetState (osThreadId_t thread_id) 2249``` 2250 2251**描述:** 2252 2253获取线程状态函数。 2254 2255 2256**参数:** 2257 2258 | Name | 描述 | 2259| -------- | -------- | 2260| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2261 2262**返回:** 2263 2264返回线程状态枚举。 2265 2266osThreadError,表示在中断中调用该函数。 2267 2268 2269### osThreadJoin 2270 2271 2272``` 2273osStatus_t osThreadJoin (osThreadId_t thread_id) 2274``` 2275 2276**描述:** 2277 2278等待指定线程终止函数。 2279 2280**参数:** 2281 2282 | Name | 描述 | 2283| -------- | -------- | 2284| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2285 2286**返回:** 2287 2288osOK,表示执行成功。 2289 2290osErrorParameter,表示参数错误。 2291 2292osErrorResource,表示其他错误。 2293 2294osErrorISR,表示在中断中调用本函数。 2295 2296 2297### osThreadNew 2298 2299 2300``` 2301osThreadId_t osThreadNew (osThreadFunc_t func, void * argument, const osThreadAttr_t * attr) 2302``` 2303 2304**描述:** 2305 2306创建线程函数。 2307 2308用于创建一个活跃的线程,当创建的线程函数的优先级高于当前的运行线程时创建的线程函数立即启动,成为新的运行线程。 2309 2310**参数:** 2311 2312| Name | 描述 | 2313| -------- | -------- | 2314| func | 线程回调入口函数 | 2315| argument | 传递给线程回调函数的参数 | 2316| attr | 线程属性,传递NULL或者对于非NULL结构体中未配置的成员会使用默认值。<br/>- attr->name 入参为NULL时使用默认名称,若传递非NULL时需确保传递常量。<br/>- attr->attr_bits 未设置为[osThreadJoinable](#osthreadjoinable)时会默认设置为[osThreadDetached](#osthreaddetached)。<br/>- attr->cb_mem 不支持。<br/>- attr->cb_size 不支持。<br/>- attr->stack_mem和attr->stack_size同时设置有效数据才能使用用户指定内存作为任务栈。<br/>- attr->stack_size 设置为0会使用默认栈大小。<br/>- attr->priority 当前可用优先级最高为osPriorityAboveNormal1,最低为osPriorityLow。<br/>- attr->tz_module 不支持。 | 2317 2318**返回:** 2319 2320返回创建的线程ID。 2321 2322NULL,表示执行失败或在中断中调用该函数。 2323 2324 2325### osThreadResume 2326 2327 2328``` 2329osStatus_t osThreadResume (osThreadId_t thread_id) 2330``` 2331 2332**描述:** 2333 2334线程挂起恢复函数。 2335 2336用于把指定线程设置为就绪状态。 2337 2338**参数:** 2339 2340 | Name | 描述 | 2341| -------- | -------- | 2342| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2343 2344**返回:** 2345 2346osOK,表示执行成功。 2347 2348osErrorParameter,表示参数错误。 2349 2350osErrorResource,表示线程未创建或未挂起。 2351 2352osErrorISR,表示在中断中调用本函数。 2353 2354 2355### osThreadSetPriority 2356 2357 2358``` 2359osStatus_t osThreadSetPriority (osThreadId_t thread_id, osPriority_t priority) 2360``` 2361 2362**描述:** 2363 2364设置线程优先级函数。 2365 2366**参数:** 2367 2368 | Name | 描述 | 2369| -------- | -------- | 2370| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2371| priority | 待设置的优先级,当前可用优先级最高为osPriorityAboveNormal1,最低为osPriorityLow。 | 2372 2373**返回:** 2374 2375osOK,表示执行成功。 2376 2377osErrorParameter,表示参数错误。 2378 2379osErrorResource,表示对未创建的线程进行操作。 2380 2381osErrorISR,表示在中断中调用本函数。 2382 2383 2384### osThreadSuspend 2385 2386 2387``` 2388osStatus_t osThreadSuspend (osThreadId_t thread_id) 2389``` 2390 2391**描述:** 2392 2393线程挂起函数。 2394 2395 2396**参数:** 2397 2398 | Name | 描述 | 2399| -------- | -------- | 2400| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2401 2402**返回:** 2403 2404osOK,表示执行成功。 2405 2406osErrorParameter,表示参数错误。 2407 2408osErrorResource,表示线程未创建或已挂起或已锁定。 2409 2410osErrorISR,表示在中断中调用本函数。 2411 2412 2413### osThreadTerminate 2414 2415 2416``` 2417osStatus_t osThreadTerminate (osThreadId_t thread_id) 2418``` 2419 2420**描述:** 2421 2422指定线程终止函数。 2423 2424**参数:** 2425 2426 | Name | 描述 | 2427| -------- | -------- | 2428| thread_id | 线程ID(由[osThreadNew](#osthreadnew)创建或[osThreadGetId](#osthreadgetid)获取)。 | 2429 2430**返回:** 2431 2432osOK,表示执行成功。 2433 2434osErrorParameter,表示参数错误。 2435 2436osErrorResource,表示线程未创建。 2437 2438osErrorISR,表示在中断中调用本函数。 2439 2440 2441### osThreadYield 2442 2443 2444``` 2445osStatus_t osThreadYield (void) 2446``` 2447 2448**描述:** 2449 2450线程显式放权。 2451 2452用于将控制权让给其他线程,由于本线程未设置为阻塞态,若无其他同优先级可执行线程,可能继续执行本线程。 2453 2454**返回:** 2455 2456osOK,表示执行成功。 2457 2458osErrorISR,表示在中断中调用本函数。 2459 2460osError,表示其他错误。 2461 2462 2463### osTimerDelete 2464 2465 2466``` 2467osStatus_t osTimerDelete (osTimerId_t timer_id) 2468``` 2469 2470**描述:** 2471 2472定时器删除函数。 2473 2474**参数:** 2475 2476 | Name | 描述 | 2477| -------- | -------- | 2478| timer_id | 定时器ID(由[osTimerNew](#ostimernew)创建)。 | 2479 2480**返回:** 2481 2482osOK,表示执行成功。 2483 2484osErrorParameter,表示参数错误。 2485 2486osErrorResource,表示其他错误。 2487 2488osErrorISR,表示在中断中调用本函数。 2489 2490 2491### osTimerGetName 2492 2493 2494``` 2495const char* osTimerGetName (osTimerId_t timer_id) 2496``` 2497 2498**描述:** 2499 2500获取定时器名称函数。 2501 2502**参数:** 2503 2504 | Name | 描述 | 2505| -------- | -------- | 2506| timer_id | 定时器ID(由[osTimerNew](#ostimernew)创建)。 | 2507 2508**返回:** 2509 2510当前只能返回NULL。 2511 2512 2513### osTimerIsRunning 2514 2515 2516``` 2517uint32_t osTimerIsRunning (osTimerId_t timer_id) 2518``` 2519 2520**描述:** 2521 2522定时器状态查询函数。 2523 2524用于判断定时器是否在运行。 2525 2526**参数:** 2527 2528 | Name | 描述 | 2529| -------- | -------- | 2530| timer_id | 定时器ID(由[osTimerNew](#ostimernew)创建)。 | 2531 2532**返回:** 2533 2534成功,返回状态(0为未运行,1为运行)。 2535 2536osErrorISR,表示在中断中调用本函数。 2537 25380,表示入参为NULL或未运行。 2539 2540 2541### osTimerNew 2542 2543 2544``` 2545osTimerId_t osTimerNew (osTimerFunc_t func, osTimerType_t type, void * argument, const osTimerAttr_t * attr) 2546``` 2547 2548**描述:** 2549 2550定时器创建函数。 2551 2552用于创建一个定时器,定时器[osTimerStart](#ostimerstart)启动之前处于停止状态。 2553 2554**参数:** 2555 2556 | Name | 描述 | 2557| -------- | -------- | 2558| func | 定时器回调函数。 | 2559| type | 定时器类型,仅限于osTimerOnce或osTimerPeriodic。 | 2560| argument | 定时器回调函数参数。 | 2561| attr | 定时器属性,当前不支持该参数,参数可为NULL。 | 2562 2563**返回:** 2564 2565返回创建的定时器ID。 2566 2567NULL,表示执行失败或在中断中调用该函数。 2568 2569 2570### osTimerStart 2571 2572 2573``` 2574osStatus_t osTimerStart (osTimerId_t timer_id, uint32_t ticks) 2575``` 2576 2577**描述:** 2578 2579定时器开始运行函数。 2580 2581 2582**参数:** 2583 2584 | Name | 描述 | 2585| -------- | -------- | 2586| timer_id | 定时器ID(由[osTimerNew](#ostimernew)创建)。 | 2587| ticks | 定时器颗粒度。 | 2588 2589**返回:** 2590 2591osOK,表示执行成功。 2592 2593osErrorParameter,表示参数错误。 2594 2595osErrorResource,表示其他错误。 2596 2597osErrorISR,表示在中断中调用本函数。 2598 2599 2600### osTimerStop 2601 2602 2603``` 2604osStatus_t osTimerStop (osTimerId_t timer_id) 2605``` 2606 2607**描述:** 2608 2609定时器停止运行函数。 2610 2611**参数:** 2612 2613 | Name | 描述 | 2614| -------- | -------- | 2615| timer_id | 定时器ID(由[osTimerNew](#ostimernew)创建)。 | 2616 2617**返回:** 2618 2619osOK,表示执行成功。 2620 2621osErrorParameter,表示参数错误。 2622 2623osErrorResource,表示其他错误。 2624 2625osErrorISR,表示在中断中调用本函数。 2626