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/>-&nbsp;attr-&gt;name&nbsp;不支持配置。<br/>-&nbsp;attr-&gt;attr_bits&nbsp;不支持配置。<br/>-&nbsp;attr-&gt;cb_mem不为NULL且attr-&gt;cb_size大于控制块所需大小即可使用外部传入的内存池控制块。&nbsp;内存池控制块必需大小当前为36字节(sizeof(MemPoolCB),MemPoolCB定义在cmsis_liteos2.c中)。<br/>-&nbsp;attr-&gt;mp_mem,用户指定的内存池指针,指向的地址符合4字节对齐时使用用户指定的内存作为内存池。<br/>-&nbsp;attr-&gt;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 | 队列的单个节点空间大小,单位:&nbsp;字节,使用用户指定内存做队列空间时该参数不生效但不可设置为0。 |
1580| attr | 队列参数,若参数为NULL则使用默认配置。<br/>-&nbsp;attr-&gt;name&nbsp;入参可为NULL,若传递非NULL时需确保传递一个常量。<br/>-&nbsp;attr-&gt;attr_bits&nbsp;不支持配置。<br/>-&nbsp;attr-&gt;cb_mem&nbsp;不支持配置。<br/>-&nbsp;attr-&gt;cb_size&nbsp;不支持配置。<br/>-&nbsp;attr-&gt;mq_mem 用户指定内存指针做为队列空间,为NULL则内存由系统自动分配。<br/>-&nbsp;attr-&gt;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 | 等待的标志,第&nbsp;25&nbsp;位为错误标志。 |
2094| options | 等待的方式,仅限于[osFlagsWaitAny](#osflagswaitany)&nbsp;\|&nbsp;[osFlagsWaitAll](#osflagswaitall)&nbsp;\|&nbsp;[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/>-&nbsp;attr-&gt;name&nbsp;入参为NULL时使用默认名称,若传递非NULL时需确保传递常量。<br/>-&nbsp;attr-&gt;attr_bits&nbsp;未设置为[osThreadJoinable](#osthreadjoinable)时会默认设置为[osThreadDetached](#osthreaddetached)。<br/>-&nbsp;attr-&gt;cb_mem&nbsp;不支持。<br/>-&nbsp;attr-&gt;cb_size&nbsp;不支持。<br/>-&nbsp;attr-&gt;stack_mem和attr-&gt;stack_size同时设置有效数据才能使用用户指定内存作为任务栈。<br/>-&nbsp;attr-&gt;stack_size&nbsp;设置为0会使用默认栈大小。<br/>-&nbsp;attr-&gt;priority&nbsp;当前可用优先级最高为osPriorityAboveNormal1,最低为osPriorityLow。<br/>-&nbsp;attr-&gt;tz_module&nbsp;不支持。 |
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