日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

CMSIS-RTOS功能概述

發(fā)布時(shí)間:2023/12/13 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 CMSIS-RTOS功能概述 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以下列表簡要概述了所有CMSIS-RTOS功能。標(biāo)有$的函數(shù)是可選的。特定的CMSIS-RTOS實(shí)現(xiàn)可能無法提供所有功能,但osFeatureXXXX定義明確指出了這一點(diǎn)。

注意RTX實(shí)現(xiàn)不支持的功能標(biāo)有(*)。

內(nèi)核信息和控制

osKernelInitialize:初始化RTOS內(nèi)核。
osKernelStart:啟動RTOS內(nèi)核。
osKernelRunning:查詢RTOS內(nèi)核是否正在運(yùn)行。
osKernelSysTick:獲取RTOS內(nèi)核系統(tǒng)計(jì)時(shí)器計(jì)數(shù)器。
osKernelSysTickFrequency:RTOS內(nèi)核系統(tǒng)定時(shí)器頻率,單位為Hz。
osKernelSysTickMicroSec:將微秒值轉(zhuǎn)換為RTOS內(nèi)核系統(tǒng)計(jì)時(shí)器值。

線程管理

osThreadCreate:開始執(zhí)行線程函數(shù)。
osThreadTerminate:停止執(zhí)行線程函數(shù)。
osThreadYield:將執(zhí)行傳遞給下一個(gè)就緒線程函數(shù)。
osThreadGetId:獲取線程標(biāo)識符以引用此線程。
osThreadSetPriority:更改線程函數(shù)的執(zhí)行優(yōu)先級。
osThreadGetPriority:獲取線程函數(shù)的當(dāng)前執(zhí)行優(yōu)先級。

通用等待功能

osDelay:等待指定的時(shí)間。
osWait:等待Signal,Message或Mail類型的任何事件。(*)

定時(shí)器管理

osTimerCreate:定義計(jì)時(shí)器回調(diào)函數(shù)的屬性。
osTimerStart:使用時(shí)間值啟動或重新啟動計(jì)時(shí)器。
osTimerStop:停止計(jì)時(shí)器。
osTimerDelete:刪除計(jì)時(shí)器。

信號事件

osSignalSet:設(shè)置線程的信號標(biāo)志。
osSignalClear:重置線程的信號標(biāo)志。
osSignalWait:暫停執(zhí)行,直到設(shè)置了特定的信號標(biāo)志。

互斥

osMutexCreate:定義并初始化互斥鎖。
osMutexWait:獲取互斥鎖或等待它變?yōu)榭捎谩?br /> osMutexRelease:釋放互斥鎖。
osMutexDelete:刪除互斥鎖。

信號燈

osSemaphoreCreate:定義并初始化信號量。
osSemaphoreWait:獲取信號量令牌或等到它可用。
osSemaphoreRelease:釋放信號量令牌。
osSemaphoreDelete:刪除信號量。

記憶池

osPoolCreate:定義并初始化一個(gè)修復(fù)大小的內(nèi)存池。
osPoolAlloc:分配內(nèi)存塊。
osPoolCAlloc:分配一個(gè)內(nèi)存塊并將該塊置零。
osPoolFree:將內(nèi)存塊返回到內(nèi)存池。

消息隊(duì)列

osMessageCreate:定義并初始化消息隊(duì)列。
osMessagePut:將消息放入消息隊(duì)列。
osMessageGet:獲取消息或暫停線程執(zhí)行,直到消息到達(dá)。

郵件隊(duì)列

osMailCreate:使用固定大小的內(nèi)存塊定義和初始化郵件隊(duì)列。
osMailAlloc:分配內(nèi)存塊。
osMailCAlloc:分配一個(gè)內(nèi)存塊并將該塊置零。
osMailPut:將內(nèi)存塊放入郵件隊(duì)列。
osMailGet:獲取郵件或暫停線程執(zhí)行,直到郵件到達(dá)。
osMailFree:將內(nèi)存塊返回到郵件隊(duì)列。

RTX特定功能

os_idle_demon:當(dāng)沒有其他線程準(zhǔn)備好運(yùn)行時(shí),系統(tǒng)線程正在運(yùn)行。
os_suspend:掛起RTX任務(wù)調(diào)度程序。
os_resume:恢復(fù)RTX任務(wù)調(diào)度程序。
os_tick_init:將備用硬件計(jì)時(shí)器初始化為RTX內(nèi)核計(jì)時(shí)器。
os_tick_val:獲取備用硬件計(jì)時(shí)器的當(dāng)前值。
os_tick_ovf:獲取備用硬件定時(shí)器的溢出標(biāo)志。
os_tick_irqack:確認(rèn)備用硬件定時(shí)器中斷。
os_error:檢測到運(yùn)行時(shí)錯(cuò)誤時(shí)調(diào)用。

超時(shí)值

超時(shí)值指定超時(shí)或時(shí)間延遲過去之前的計(jì)時(shí)器滴答數(shù)。該值是上限,取決于自上次計(jì)時(shí)器滴答以來經(jīng)過的實(shí)際時(shí)間。

對于值1,系統(tǒng)等待直到下一個(gè)計(jì)時(shí)器滴答發(fā)生。這意味著實(shí)際超時(shí)值可以是小于指定超時(shí)值的一個(gè)計(jì)時(shí)器滴答。


計(jì)時(shí)器值

來自中斷服務(wù)程序的調(diào)用

可以從線程和中斷服務(wù)例程(ISR)調(diào)用以下CMSIS-RTOS函數(shù):

osKernelRunning
osSignalSet
osSemaphoreRelease
osPoolAlloc,osPoolCAlloc,osPoolFree
osMessagePut,osMessageGet
osMailAlloc,osMailCAlloc,osMailGet,osMailPut,osMailFree

無法從ISR調(diào)用的函數(shù)正在驗(yàn)證中斷狀態(tài),并在從ISR上下文調(diào)用狀態(tài)代碼osErrorISR時(shí)返回。在一些實(shí)現(xiàn)中,可以使用HARD FAULT向量捕獲該條件。

一些CMSIS-RTOS實(shí)現(xiàn)同時(shí)支持來自多個(gè)ISR的CMSIS-RTOS函數(shù)調(diào)用。如果這是不可能的,CMSIS-RTOS拒絕嵌套ISR函數(shù)的調(diào)用,狀態(tài)代碼為osErrorISRRecursive。

總結(jié)

以上是生活随笔為你收集整理的CMSIS-RTOS功能概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。