]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Migration.txt
adjusted function parameters
[cmsis] / CMSIS / DoxyGen / RTOS2 / src / cmsis_os2_Migration.txt
1 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
2 /**
3 \page os2Migration Migration from API v1 to API v2
4
5 This section lists the CMSIS-RTOS API v1 and API v2 functions along with the differences in functionality.
6 The list is sorted alphabetically by API v2 function names and is structured the following way:
7
8   - RTOS API v2 function prototype
9   - RTOS API v1 function prototype that is equivalent or provides similar functionality
10   - Brief description of the RTOS v2 function.
11   - Description of the difference.
12
13 The background color indicates:
14   - <div class="new">Green: New functions in API v2 that are not available in API v1 </div>
15   
16   - <div class="mod">Amber: Functions that are modified or replaced in API v2 compared to API v1 </div>
17   
18   - <div class="del">Red: Functions in API v1 that are deprecated in API v2 </div>
19
20
21 \if NEVER_ENABLE
22 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
23        Kernel Information and Control  
24 \endif
25
26 \section mig_kernel Kernel Information and Control
27
28 \div{new}
29 \func{osStatus_t #osKernelGetInfo (osVersion_t* version, char* id_buf, uint32_t id_size)}
30 \none
31 \copybrief{osKernelGetInfo}
32 New function #osKernelGetInfo.
33 \enddiv
34
35 \div{mod} 
36 \func{osKernelState_t #osKernelGetState (void)}
37 \func{int32_t &nbsp; &nbsp; &nbsp; &nbsp; osKernelRunning (void)}
38 \copybrief{osKernelGetState}
39  - The function \b osKernelGetState replaces the RTOS v1 function \b osKernelRunning.
40  - Return type changed to \ref osKernelState_t.
41
42 \enddiv
43
44 \div{mod}
45 \func{uint32_t #osKernelGetTickCount (void)}
46 \func{uint32_t osKernelSysTick (void)}
47 \copybrief{osKernelGetTickCount}
48  - The function \b osKernelGetTickCount replaces the RTOS v1 function \b osKernelSysTick.
49
50 \enddiv
51
52 \div{new}
53 \func{uint32_t #osKernelGetTickFreq (void)}
54 \none
55 \copybrief{osKernelGetTickFreq}
56  - The function \b osKernelGetTickFreq replaces the RTOS v1 macro \b osKernelTickMicroSec.
57
58 \enddiv
59
60 \div{new}
61 \func{uint64_t #osKernelGetSysTimerCount (void)}
62 \none
63 \copybrief{osKernelGetSysTimerCount}
64 New function.
65 \enddiv
66
67 \div{new}
68 \func{uint64_t #osKernelGetSysTimerFreq (void)}
69 \none
70 \copybrief{osKernelGetSysTimerFreq}
71 New function.
72 \enddiv
73
74 \div{mod}
75 \func{osStatus_t #osKernelInitialize (void)}
76 \func{osStatus &nbsp; osKernelInitialize (void)}
77 \copybrief{osKernelInitialize}
78  - Return type changed to \ref osStatus_t.
79
80 \enddiv
81
82 \div{new}
83 \func{uint32_t #osKernelLock (void)}
84 \none
85 \copybrief{osKernelLock}
86 New function.
87 \enddiv
88
89 \div{new}
90 \func{void #osKernelResume (uint32_t sleep_time)}
91 \none
92 \copybrief{osKernelResume}
93 New function.
94 \enddiv
95
96 \div{mod}
97 \func{osStatus_t #osKernelStart (void)}
98 \func{osStatus &nbsp; osKernelStart (void)}
99 \copybrief{osKernelStart}
100  - Return type changed to \ref osStatus_t.
101
102 \enddiv
103
104 \div{new}
105 \func{uint32_t #osKernelSuspend (void)}
106 \none
107 \copybrief{osKernelSuspend}
108 New function.
109 \enddiv
110
111 \div{new}
112 \func{void #osKernelUnlock (void)}
113 \none
114 \copybrief{osKernelUnlock}
115 New function.
116 \enddiv
117
118
119 \if NEVER_ENABLE
120 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
121 ======  Thread Management  =======
122 \endif 
123
124 \section mig_threadMgmt Thread Management
125
126 \div{new}
127 \func{osStatus_t #osThreadDetach (osThreadId_t thread_id)}
128 \none
129 \copybrief{osThreadDetach}
130 New function.
131 \enddiv
132
133 \div{new}
134 \func{__NO_RETURN void #osThreadExit (void)}
135 \none
136 \copybrief{osThreadExit}
137 New function.
138 \enddiv
139
140 \div{new}
141 \func{const char *#osThreadGetName (osThreadId_t thread_id)}
142 \none
143 \copybrief{osThreadGetName}
144 New function.
145 \enddiv
146
147 \div{mod}
148 \func{osThreadId_t #osThreadGetId (void)}
149 \func{osThreadId &nbsp; osThreadGetId (void)}
150 \copybrief{osThreadGetId}
151  - Return type changed to #osThreadId_t.
152
153 \enddiv
154
155 \div{mod}
156 \func{osPriority_t #osThreadGetPriority (osThreadId_t thread_id)}
157 \func{osPriority &nbsp; osThreadGetPriority (osThreadId thread_id)}
158 \copybrief{osThreadGetPriority}
159  - Return type changed to #osPriority_t. 
160  - Parameter type changed to #osThreadId_t.
161
162 \enddiv
163
164 \div{new}
165 \func{osThreadState_t #osThreadGetState (osThreadId_t thread_id)}
166 \none
167 \copybrief{osThreadGetState}
168 New function.
169 \enddiv
170
171 \div{new}
172 \func{osStatus_t #osThreadJoin (osThreadId_t thread_id)}
173 \none
174 \copybrief{osThreadJoin}
175 New function.
176 \enddiv
177
178 \div{mod}
179 \func{osThreadId_t #osThreadNew (os_thread_func_t function, void *argument, const osThreadAttr_t *attr)}
180 \func{osThreadId &nbsp; osThreadCreate (const osThreadDef_t *thread_def, void *argument)} 
181 \copybrief{osThreadNew}
182  - The function \b osThreadNew replaces the RTOS v1 function \b osThreadCreate.
183  - Options are now passed using a \ref osThreadAttr_t struct, replacing the \b osThreadDef macro. 
184  - New function prototype is <kbd>void *func (void *arg)</kbd>, before: <kbd>void func (const void *arg)</kbd>.
185
186 \enddiv
187
188 \div{new}
189 \func{osStatus_t #osThreadResume (osThreadId_t thread_id)}
190 \none
191 \copybrief{osThreadResume}
192 New function.
193 \enddiv
194
195 \div{mod}
196 \func{osStatus_t #osThreadSetPriority (osThreadId_t thread_id, osPriority_t priority)}
197 \func{osStatus  &nbsp; osThreadSetPriority (osThreadId thread_id, osPriority priority)} 
198 \copybrief{osThreadSetPriority}
199  - Return type changed to #osStatus_t. 
200  - Parameter types changed to #osThreadId_t and #osPriority_t.
201
202 \enddiv
203
204 \div{new}
205 \func{osStatus_t #osThreadSuspend (osThreadId_t thread_id)}
206 \none
207 \copybrief{osThreadSuspend}
208 New function.
209 \enddiv
210
211 \div{new}
212 \func{osStatus_t #osThreadTerminate (osThreadId_t thread_id)}
213 \none
214 \copybrief{osThreadTerminate}
215 New function.
216 \enddiv
217
218 \div{mod}
219 \func{osStatus_t #osThreadYield (void)}
220 \func{osStatus  &nbsp; osThreadYield (void)} 
221 \copybrief{osThreadYield}
222  - Return type changed to #osStatus_t.
223
224 \enddiv
225
226
227 \if NEVER_ENABLE
228 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
229 ======  Generic Wait Functions  =======
230 \endif
231
232 \section mig_wait Generic Wait Functions
233 \details
234 Refer to \ref CMSIS_RTOS_Wait for details.
235
236 \div{mod}
237 \func{osStatus_t #osDelay (uint32_t ticks)}
238 \func{osStatus &nbsp; osDelay (uint32_t millisec)}
239 \copybrief{osDelay}
240  - The return type changed to #osStatus_t. 
241
242 \enddiv
243
244 \div{mod}
245 \func{osStatus_t #osDelayUntil (uint64_t ticks)}
246 \func{osStatus &nbsp; osDelayUntil (uint64_t millisec)}
247 \copybrief{osDelayUntil}
248  - The return type changed to #osStatus_t. 
249
250 \enddiv
251
252
253 \if NEVER_ENABLE
254 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
255 ======  Timer Management  =======
256 \endif
257
258 \section mig_timer Timer Management
259 \details
260 Refer to \ref CMSIS_RTOS_TimerMgmt for details.
261
262 \div{mod}
263 \func{osStatus_t #osTimerDelete (osTimerId_t timer_id)}
264 \func{osStatus &nbsp; osTimerDelete (osTimerId timer_id)}
265 \copybrief{osTimerDelete}
266  - The return type changed to #osStatus_t. 
267  - The parameter type has changed to #osTimerId_t.
268
269 \enddiv
270
271 \div{new}
272 \func{uint32_t #osTimerIsRunning (osTimerId_t timer_id)}
273 \none
274 \copybrief{osTimerIsRunning}
275 New function.
276 \enddiv
277
278 \div{mod}
279 \func{osTimerId_t #osTimerNew (os_timer_func_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr)}
280 \func{osTimerId &nbsp; osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument)}
281 \copybrief{osTimerNew}
282  - The function \b osTimerNew replaces the RTOS v1 function \b osTimerCreate.
283  - The return type changed to #osTimerId_t. 
284  - The parameter list and types have changed.
285
286 \enddiv
287
288 \div{mod}
289 \func{osStatus_t #osTimerStart (osTimerId_t timer_id, uint32_t ticks)}
290 \func{osStatus &nbsp; osTimerStart (osTimerId timer_id, uint32_t millisec)}
291 \copybrief{osTimerStart}
292  - The return type changed to #osStatus_t. 
293  - The first parameter type has changed to #osTimerId_t.
294
295 \enddiv
296
297 \div{mod}
298 \func{osStatus_t #osTimerStop (osTimerId_t timer_id)}
299 \func{osStatus &nbsp; osTimerStop (osTimerId timer_id)}
300 \copybrief{osTimerStop}
301  - The return type changed to #osStatus_t. 
302  - The parameter type has changed to #osTimerId_t.
303
304 \enddiv
305
306
307 \if NEVER_ENABLE
308 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
309 ======  Signal Events  =======
310 \endif
311
312 \section mig_signalEvents Signal Events
313 \details
314 The section RTOS v1 <b>Signal Events</b> has been deprecated.
315 Use the functions listed under \ref mig_threadFlags and \ref mig_eventFlags instead.
316
317 \div{del}
318 \none
319 \func{int32_t osSignalClear (osThreadId thread_id, int32_t signals)}
320 \n
321 Deprecated.
322 \enddiv
323
324 \div{del}
325 \none
326 \func{int32_t osSignalSet (osThreadId thread_id, int32_t signals)}
327 \n
328 Deprecated.
329 \enddiv
330
331 \div{del}
332 \none
333 \func{osEvent osSignalWait (int32_t signals, uint32_t millisec)}
334 \n
335 Deprecated.
336 \enddiv
337
338
339
340 \if NEVER_ENABLE
341 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
342 ======  Event Flags  =======
343 \endif 
344
345 \section mig_eventFlags Event Flags
346 \details
347 New section to synchronize events using flags. Event flags and thread flags are replacing the RTOS v1 <b>Signal Events</b>.
348 All functions listed in the RTOS v1 <b>Signal Events</b> have been deprecated.
349 Refer to \ref mig_signalEvents for a list of deprecated functions.
350 Refer to \ref CMSIS_RTOS_EventFlags for details about the new function.
351
352 \div{new}
353 \func{int32_t #osEventFlagsClear (osEventFlagsId_t ef_id, int32_t flags)}
354 \none
355 \copybrief{osEventFlagsClear}
356 New function.
357 \enddiv
358
359 \div{new}
360 \func{osStatus_t #osEventFlagsDelete (osEventFlagsId_t ef_id)}
361 \none
362 \copybrief{osEventFlagsDelete}
363 New function.
364 \enddiv
365
366 \div{new}
367 \func{int32_t #osEventFlagsGet (osEventFlagsId_t ef_id)}
368 \none
369 \copybrief{osEventFlagsGet}
370 New function.
371 \enddiv
372
373 \div{new}
374 \func{osEventFlagsId_t #osEventFlagsNew (const osEventFlagsAttr_t *attr)}
375 \none
376 \copybrief{osEventFlagsNew}
377 New function.
378 \enddiv
379
380 \div{new}
381 \func{int32_t #osEventFlagsSet (osEventFlagsId_t ef_id, int32_t flags)}
382 \none
383 \copybrief{osEventFlagsSet}
384 New function.
385 \enddiv
386
387 \div{new}
388 \func{int32_t #osEventFlagsWait (osEventFlagsId_t ef_id, int32_t flags, uint32_t options, uint32_t timeout)}
389 \none
390 \copybrief{osEventFlagsWait}
391 New function.
392 \enddiv
393
394
395 \if NEVER_ENABLE
396 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
397 ======  Thread Flags  =======
398 \endif 
399
400 \section mig_threadFlags Thread Flags
401 \details
402 New section to synchronize threads using flags. Thread flags and the more flexible \ref mig_eventFlags are replacing the RTOS v1 <b>Signal Events</b>. Refer to \ref mig_signalEvents for a list of deprecated functions.
403 Refer to \ref CMSIS_RTOS_ThreadFlagsMgmt for details.
404
405 \div{new}
406 \func{int32_t #osThreadFlagsSet (osThreadId_t thread_id, int32_t flags)}
407 \none
408 \copybrief{osThreadFlagsSet}
409 New function.
410 \enddiv
411
412 \div{new}
413 \func{int32_t #osThreadFlagsClear (int32_t flags)}
414 \none
415 \copybrief{osThreadFlagsClear}
416 New function.
417 \enddiv
418
419 \div{new}
420 \func{int32_t #osThreadFlagsGet (void)}
421 \none
422 \copybrief{osThreadFlagsGet}
423 New function.
424 \enddiv
425
426 \div{new}
427 \func{int32_t #osThreadFlagsWait (int32_t flags, uint32_t options, uint32_t timeout)}
428 \none
429 \copybrief{osThreadFlagsWait}
430 New function.
431 \enddiv
432
433
434 \if NEVER_ENABLE
435 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
436 ======  Message Queue  =======
437 \endif
438
439 \section mig_msgQueue Message Queue
440 Refer to \ref CMSIS_RTOS_Message for details.
441
442 \div{new}
443 \func{osStatus_t #osMessageQueueDelete (osMessageQueueId_t mq_id)}
444 \none
445 \copybrief{osMessageQueueDelete}
446 New function.
447 \enddiv
448
449 \div{mod}
450 \func{osStatus_t #osMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout)}
451 \func{osEvent &nbsp;&nbsp; osMessageGet (osMessageQId queue_id, uint32_t millisec)}
452 \copybrief{osMessageQueueGet}
453  - The function \b osMessageQueueGet replaces the RTOS v1 function \b osMessageGet.
454  - The return type changed to #osStatus_t. 
455  - The parameter list and parameter types have changed. 
456
457 \enddiv
458
459 \div{new}
460 \func{uint32_t #osMessageQueueGetCapacity (osMessageQueueId_t mq_id)}
461 \none
462 \copybrief{osMessageQueueGetCapacity}
463 New function.
464 \enddiv
465
466 \div{new}
467 \func{uint32_t #osMessageQueueGetCount (osMessageQueueId_t mq_id)}
468 \none
469 \copybrief{osMessageQueueGetCount}
470 New function.
471 \enddiv
472
473 \div{new}
474 \func{uint32_t #osMessageQueueGetMsgSize (osMessageQueueId_t mq_id)}
475 \none
476 \copybrief{osMessageQueueGetMsgSize}
477 New function.
478 \enddiv
479
480 \div{new}
481 \func{uint32_t #osMessageQueueGetSpace (osMessageQueueId_t mq_id)}
482 \none
483 \copybrief{osMessageQueueGetSpace}
484 New function.
485 \enddiv
486
487 \div{mod}
488 \func{osMessageQueueId_t #osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr)}
489 \func{osMessageQId &nbsp; &nbsp; &nbsp; osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id)}
490 \copybrief{osMessageQueueNew}
491  - The function \b osMessageQueueNew replaces the RTOS v1 function \b osMessageCreate.
492  - The return type changed to #osMessageQueueId_t. 
493  - The parameter list and parameter types have changed. 
494
495 \enddiv
496
497 \div{mod}
498 \func{osStatus_t #osMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout)}
499 \func{osStatus &nbsp; osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec)}
500 \copybrief{osMessageQueuePut}
501  - The function \b osMessageQueuePut replaces the RTOS v1 function \b osMessagePut.
502  - The return type changed to #osStatus_t. 
503  - The parameter list and parameter types have changed. 
504
505 \enddiv
506
507 \div{new}
508 \func{osStatus_t #osMessageQueueReset (osMessageQueueId_t mq_id)}
509 \none
510 \copybrief{osMessageQueueReset}
511 New function.
512 \enddiv
513
514
515 \if NEVER_ENABLE
516 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
517 ======  Memory Pool  =======
518 \endif
519
520 \section mig_memPool Memory Pool
521
522 \div{mod}
523 \func{void * #osMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout)}
524 \func{void * osPoolAlloc &nbsp;(osPoolId pool_id)} 
525 \func{void * osPoolCAlloc (osPoolId pool_id)} 
526 \copybrief{osMemoryPoolAlloc}
527  - The function \b osMemoryPoolAlloc replaces both RTOS v1 functions \b osPoolAlloc and \b osPoolCAlloc.
528  - The parameter list and types changed.
529
530 \enddiv
531
532 \div{new}
533 \func{osStatus_t #osMemoryPoolDelete (osMemoryPoolId_t mp_id)}
534 \none
535 \copybrief{osMemoryPoolDelete}
536 New function.
537 \enddiv
538
539 \div{mod}
540 \func{osStatus_t #osMemoryPoolFree (osMemoryPoolId_t mp_id, void * block)}
541 \func{osStatus &nbsp; osPoolFree (osPoolId pool_id, void * block)} 
542 \copybrief{osMemoryPoolFree}
543  - The function \b osMemoryPoolFree replaces the RTOS v1 function \b osPoolFree.
544  - The first parameter type \b osMemoryPoolId_t replaces the ROTS v1 type \b osPoolId.
545
546 \enddiv
547
548 \div{new}
549 \func{uint32_t #osMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id)}
550 \none
551 \copybrief{osMemoryPoolGetBlockSize}
552 New function.
553 \enddiv
554
555 \div{new}
556 \func{uint32_t #osMemoryPoolGetCapacity (osMemoryPoolId_t mp_id)}
557 \none
558 \copybrief{osMemoryPoolGetCapacity}
559 New function.
560 \enddiv
561
562 \div{new}
563 \func{uint32_t #osMemoryPoolGetCount (osMemoryPoolId_t mp_id)}
564 \none
565 \copybrief{osMemoryPoolGetCount}
566 New function.
567 \enddiv
568
569 \div{new}
570 \func{uint32_t #osMemoryPoolGetSpace (osMemoryPoolId_t mp_id)}
571 \none
572 \copybrief{osMemoryPoolGetSpace}
573 New function.
574 \enddiv
575
576 \div{mod}
577 \func{osMemoryPoolId_t #osMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr)}
578 \func{osPoolId &nbsp; &nbsp; &nbsp; &nbsp; osPoolCreate (const osPoolDef_t * pool_def)}
579 \copybrief{osMemoryPoolGetSpace}
580  - The function \b osMemoryPoolNew replaces the RTOS v1 function \b osPoolCreate. 
581  - The return type changed to #osMemoryPoolId_t.
582  - Parameter list and parameter types have changed.
583
584 \enddiv
585
586
587 \if NEVER_ENABLE
588 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
589 ======  Mail Queue  =======
590 \endif
591
592 \section mig_mailQueue Mail Queue
593 The <b>Mail Queue</b> RTOS v1 functions have been deprecated.
594 Use the functionality of the \ref CMSIS_RTOS_Message instead. 
595 Differences are listed under \ref mig_msgQueue.
596
597 \div{del}
598 \none
599 \func{void * osMailAlloc (osMailQId queue_id, uint32_t millisec)}
600 \n
601 Deprecated.
602 \enddiv
603
604 \div{del}
605 \none
606 \func{void * osMailCAlloc (osMailQId queue_id, uint32_t millisec)}
607 \n
608 Deprecated.
609 \enddiv
610
611 \div{del}
612 \none
613 \func{osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id)}
614 \n
615 Deprecated.
616 \enddiv
617
618 \div{del}
619 \none
620 \func{osStatus osMailFree (osMailQId queue_id, void *mail)}
621 \n
622 Deprecated.
623 \enddiv
624
625 \div{del}
626 \none
627 \func{osEvent osMailGet (osMailQId queue_id, uint32_t millisec)}
628 \n
629 Deprecated.
630 \enddiv
631
632 \div{del}
633 \none
634 \func{osStatus osMailPut (osMailQId queue_id, void *mail)}
635 \n
636 Deprecated.
637 \enddiv
638
639
640 \if NEVER_ENABLE
641 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
642 ======  Mutexes  =======
643 \endif
644
645 \section mig_mutex Mutexes
646 Refer to \ref CMSIS_RTOS_MutexMgmt for details.
647
648 \div{mod}
649 \func{osStatus_t #osMutexAcquire (osMutexId_t mutex_id, uint32_t timeout)}
650 \func{osStatus &nbsp; osMutexWait (osMutexId mutex_id, uint32_t millisec)}
651 \copybrief{osMutexAcquire}
652  - The function \b osMutexAcquire replaces the RTOS v1 function \b osMutexWait.
653  - Return type changed to \ref osStatus_t. 
654  - First parameter type changed to \ref osMutexId_t.
655
656 \enddiv
657
658 \div{mod}
659 \func{osStatus_t #osMutexDelete (osMutexId_t mutex_id)}
660 \func{osStatus  &nbsp; osMutexDelete (osMutexId mutex_id)}
661 \copybrief{osMutexDelete}
662  - The return type changed to \ref osStatus_t. 
663  - The parameter type changed to \ref osMutexId_t.
664
665 \enddiv
666
667 \div{new}
668 \func{osThreadId_t #osMutexGetOwner (osMutexId_t mutex_id)}
669 \none
670 \copybrief{osMutexGetOwner}
671 New function.
672 \enddiv
673
674 \div{mod}
675 \func{osMutexId_t #osMutexNew (const osMutexAttr_t *attr)}
676 \func{osMutexId &nbsp; osMutexCreate (const osMutexDef_t *mutex_def)}
677 \copybrief{osMutexNew}
678  - The function \b osMutexNew replaces the RTOS v1 function \b osMutexCreate.
679  - The return type changed to \ref osMutexId_t. 
680  - The parameter type changed to \ref osMutexAttr_t.
681
682 \enddiv
683
684 \div{mod}
685 \func{osStatus_t #osMutexRelease (osMutexId_t mutex_id)}
686 \func{osStatus  &nbsp; osMutexRelease (osMutexId mutex_id)}
687 \copybrief{osMutexRelease}
688  - The return type changed to \ref osStatus_t. 
689  - The parameter type changed to \ref osMutexId_t.
690
691 \enddiv
692
693
694 \if NEVER_ENABLE
695 =======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====
696 ======  SEMAPHORES  =======
697 \endif
698
699 \section mig_sem Semaphores
700 Refer to \ref CMSIS_RTOS_SemaphoreMgmt for details.
701
702 \div{new}
703 \func{osStatus_t #osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout)}
704 \none
705 \copybrief{osSemaphoreAcquire}
706 New function.
707 \enddiv
708
709 \div{mod}
710 \func{osStatus_t #osSemaphoreDelete (osSemaphoreId_t semaphore_id)}
711 \func{osStatus &nbsp; osSemaphoreDelete (osSemaphoreId semaphore_id)}
712 \copybrief{osSemaphoreDelete}
713  - The return type changed to #osStatus_t. 
714  - The parameter type has changed to #osSemaphoreId_t.
715
716 \enddiv
717
718 \div{new}
719 \func{uint32_t #osSemaphoreGetCount (osSemaphoreId_t semaphore_id)}
720 \none
721 \copybrief{osSemaphoreGetCount}
722 New function.
723 \enddiv
724
725 \div{mod}
726 \func{osSemaphoreId_t #osSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr)}
727 \func{osSemaphoreId &nbsp; osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count)}
728 \copybrief{osSemaphoreNew}
729  - The function \b osSemaphoreNew replaces the RTOS v1 function \b osSemaphoreCreate.
730  - The return type changed to #osSemaphoreId_t. 
731  - The parameter list and types have changed.
732
733 \enddiv
734
735 \div{mod}
736 \func{osStatus_t #osSemaphoreRelease (osSemaphoreId_t semaphore_id)}
737 \func{osStatus &nbsp; osSemaphoreRelease (osSemaphoreId semaphore_id)}
738 \copybrief{osSemaphoreRelease}
739  - The return type changed to #osStatus_t. 
740  - The parameter type has changed to #osSemaphoreId_t.
741
742 \enddiv
743
744 \div{del}
745 \none
746 \func{int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec)}
747 \n
748 Deprecated. 
749 \enddiv
750 */