FreeRtos 内核函数 cmsis_os函数一览
http://blog.csdn.NET/baidu_23187363/article/details/53876277
內核控制函數
osStatus osKernelInitialize (void);???????????????????????//內核初始化
osStatus osKernelStart (void);?????????????????????????//內核開始運行
int32_t osKernelRunning(void);?????????????????????????//返回值為1表示正在運行??作用:系統是否正常工作
uint32_t osKernelSysTick (void);????????????????????????//系統當前節拍數?????作用:毫秒級計時
osKernelSysTickMicroSec(microsec)????????????????????????//微妙(宏函數)?????作用:微秒級計時
線程管理函數
osThreadDef(name, thread, priority, instances, stacksz)???????????????????????//(宏函數)????????作用:定義osThreadDef_t結構體
osThread(name)???????????????????????????????????????????//(宏函數)????????作用:獲取os_thread_def_##name結構體的指針
osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument);????????????//錯誤返回NULL??????作用:創建線程
osThreadId osThreadGetId (void);??????????????????????????????????//返回當前線程
osStatus osThreadTerminate (osThreadId thread_id);?????????????????????????//終結線程
osStatus osThreadYield (void);???????????????????????????????????//調度一次
osStatus osThreadSetPriority (osThreadId thread_id, osPriority priority);??????????????//設置線程優先級
osPriority osThreadGetPriority (osThreadId thread_id);???????????????????????//獲取線程優先級
等待函數
osStatus osDelay (uint32_t millisec);????????????????????????????????//毫秒級延時
osEvent osWait (uint32_t millisec);?????????????????????????????????//未實現
軟件定時器管理函數
osTimerDef(name, function)?????????????????????????????????????//宏函數?????????作用:定義os_timer_def_##name結構體
osTimer(name)????????????????????????????????????????????//宏函數?????????作用:定義os_timer_def_##name結構體的指針
osTimerId osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument);????//參數二:是否重復回調??作用:創建軟件定時器
osStatus osTimerStart (osTimerId timer_id, uint32_t millisec);???????????????????//開始定時
osStatus osTimerStop (osTimerId timer_id);?????????????????????????????//停止定時
osStatus osTimerDelete (osTimerId timer_id);????????????????????????????//刪除定時器
信號管理函數
int32_t osSignalSet (osThreadId thread_id, int32_t signals);????????????????????//帶通知值的任務通知
int32_t osSignalClear (osThreadId thread_id, int32_t signals);???????????????????//未實現
osEvent osSignalWait (int32_t signals, uint32_t millisec);?????????????????????//參數二:取出值后位置零?作用:等待通知到來
互斥鎖管理函數
osMutexDef(name)??????????????????????????????????????????//(宏函數)???????作用:定義os_mutex_def_##name結構體
osMutex(name)????????????????????????????????????????????//宏函數?????????作用:定義os_mutex_def_##name結構體的指針
osMutexId osMutexCreate (const osMutexDef_t *mutex_def);??????????????????????//創建互斥鎖
osStatus osMutexWait (osMutexId mutex_id, uint32_t millisec);????????????????????//鎖定互斥鎖
osStatus osMutexRelease (osMutexId mutex_id);????????????????????????????//解鎖互斥鎖
osStatus osMutexDelete (osMutexId mutex_id);????????????????????????????//刪除互斥鎖
信號量管理函數
osSemaphoreDef(name)????????????????????????????????????????//(宏函數)???????作用:定義os_semaphore_def_##name結構體
osSemaphore(name)??????????????????????????????????????????//宏函數?????????作用:定義os_semaphore_def_##name結構體的指針
osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count);???????//創建信號量
int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec);??????????????//信號量減一
osStatus osSemaphoreRelease (osSemaphoreId semaphore_id);??????????????????????//信號量加一
osStatus osSemaphoreDelete (osSemaphoreId semaphore_id);??????????????????????//刪除信號量
內存池管理函數
osPoolDef(name, no, type)?????????????????????????????//參數二:內存池size 參數三:成員size????作用:定義os_pool_def_##name結構體
osPool(name)????????????????????????????????????????????//宏函數?????????作用:定義os_pool_def_##name結構體的指針
osPoolId osPoolCreate (const osPoolDef_t *pool_def);????????????????????????//創建內存池
void *osPoolAlloc (osPoolId pool_id);????????????????????????????????//分配內存
void *osPoolCAlloc (osPoolId pool_id);???????????????????????????????//分配內存并且清零
osStatus osPoolFree (osPoolId pool_id, void *block);????????????????????????//釋放內存
隊列管理函數
osMessageQDef(name, queue_sz, type)????????????????????????//參數二:隊列size 參數三:成員size?????作用:定義os_messageQ_def_##name結構體
osMessageQ(name)??????????????????????????????????????????//宏函數?????????作用:定義os_messageQ_def_##name結構體的指針
osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id);???????//創建隊列
osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec);??????????//向隊列中放入消息
osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec);??????????????????//從隊列中獲取消息
郵箱隊列管理函數
osMailQDef(name, queue_sz, type)?????????????????????????//參數二:郵箱size 參數三:消息size?????作用:定義os_mailQ_def_##name結構體
osMailQ(name)????????????????????????????????????????????//宏函數?????????作用:定義os_mailQ_def_##name結構體的指針
osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id);????????????//創建郵箱
void *osMailAlloc (osMailQId queue_id, uint32_t millisec);?????????????????????//分配一個消息的空間
void *osMailCAlloc (osMailQId queue_id, uint32_t millisec);?????????????????????//分配一個消息的空間并且清零??????????????????
osStatus osMailPut (osMailQId queue_id, void *mail);????????????????????????//將成員丟到郵箱中
osEvent osMailGet (osMailQId queue_id, uint32_t millisec);?????????????????????//從郵箱中獲取消息
osStatus osMailFree (osMailQId queue_id, void *mail);????????????????????????//釋放消息空間
特殊功能函數
void osSystickHandler(void);????????????????????????????????????//定時器中斷處理函數
osThreadState osThreadGetState(osThreadId thread_id);????????????????????????//獲取線程狀態
osStatus osThreadIsSuspended(osThreadId thread_id);?????????????????????????//線程是否被掛起??????????????????????
osStatus osThreadSuspend (osThreadId thread_id);??????????????????????????//掛起線程
osStatus osThreadResume (osThreadId thread_id);???????????????????????????//恢復調度
osStatus osThreadSuspendAll (void);?????????????????????????????????//掛起所有線程
osStatus osThreadResumeAll (void);?????????????????????????????????//恢復調度所有線程
osStatus osDelayUntil (uint32_t *PreviousWakeTime, uint32_t millisec);???????????????//絕對延時
osStatus osThreadList (uint8_t *buffer);??????????????????????????????//獲取任務信息?任務名、優先級
osEvent osMessagePeek (osMessageQId queue_id, uint32_t millisec);??????????????????//瞥一眼隊列中有沒有消息
osMutexId osRecursiveMutexCreate (const osMutexDef_t *mutex_def);??????????????????//創建遞歸互斥鎖
osStatus osRecursiveMutexRelease (osMutexId mutex_id);???????????????????????//釋放遞歸互斥鎖
osStatus osRecursiveMutexWait (osMutexId mutex_id, uint32_t millisec);???????????????//鎖定遞歸互斥鎖
總結
以上是生活随笔為你收集整理的FreeRtos 内核函数 cmsis_os函数一览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeRTOS实验_独立看门狗监视多线
- 下一篇: Ubuntu 14.04安装JDK1.8