1. 程式人生 > >CMSIS-RTOS2 文件翻譯 之 RTX v5 實現(配置 RTX v5)

CMSIS-RTOS2 文件翻譯 之 RTX v5 實現(配置 RTX v5)

檔案 “RTX_Config.h” 定義了 CMSIS-RTOS RTX 的配置引數,並且必須是使用 CMSIS-RTOS RTX 核心的每個專案的一部分。以下部分詳細介紹了配置選項:

檔案 “RTX_Config.c” 包含函式 osRtxIdleThread 和 osRtxErrorNotify 的預設實現。

通過將它們重新定義為使用者程式碼的一部分,兩種功能都可以簡單地被自定義行為覆蓋。

配置檔案使用配置嚮導註釋。有關詳細資訊,請參閱包 - 配置嚮導註釋。根據開發工具的不同,註釋可能會導致更加使用者友好的設定圖形表示。以下截圖是 μVision 配置嚮導檢視的螢幕截圖:

配置嚮導檢視中的 RTX_Config.h

或者可以使用編譯器命令列提供配置選項。

例如,可以使用(覆蓋)配置將使用的節拍頻率定製為 100us

cc -DOS_TICK_FREQ=100

系統配置

系統配置涵蓋全域性記憶體池的系統範圍設定,節拍頻率,ISR 事件緩衝區和迴圈執行緒切換。

系統配置選項

RTX_Config.h:系統配置
名稱#define描述
全域性動態記憶體大小[位元組]OS_DYNAMIC_MEM_SIZE定義全域性記憶體池的組合全域性動態記憶體大小。預設值是 4096 。值範圍是 [0 - 1073741824] 個位元組,以 8 個位元組的倍數為單位。
核心節拍頻率(Hz)OS_TICK_FREQ以 Hz 為單位定義延遲和超時的基準時間單位。預設值:1000Hz = 1ms 週期。
迴圈執行緒切換OS_ROBIN_ENABLE啟用迴圈執行緒切換。
迴圈超時OS_ROBIN_TIMEOUT定義執行緒線上程切換前將執行多長時間。預設值是 5 。數值範圍是 [1 - 1000] 。
ISR FIFO 佇列OS_ISR_FIFO_QUEUE從 ISR 呼叫的 RTOS 函式將請求儲存到此緩衝區。
預設值是 16 個條目。值範圍是 [4 - 256] 條目的倍數 4 。
記憶體管理OS_EVR_MEMORY啟用記憶體管理事件記錄。
核心OS_EVR_KERNEL啟用核心事件記錄。
執行緒OS_EVR_THREAD啟用執行緒事件記錄。
定時器OS_EVR_TIMER啟用定時器事件記錄。
事件標誌OS_EVR_EVFLAGS啟用事件標誌事件記錄。
互斥鎖OS_EVR_MUTEX啟用互斥鎖事件記錄。
訊號量OS_EVR_SEMAPHORE啟用訊號量事件記錄。
記憶體池OS_EVR_MEMPOOL啟用記憶體池事件記錄。
訊息佇列OS_EVR_MSGQUEUE啟用訊息佇列事件記錄。
物件記憶體使用計數器OS_OBJ_MEM_USAGE啟用物件記憶體使用率計數器,以針對每個 RTOS 物件型別分別評估最大記憶體池要求。

全域性動態記憶體

請參閱全域性記憶體池。

迴圈執行緒切換

RTX5 可配置為使用迴圈多工執行緒切換。迴圈法允許幾個具有相同優先順序的執行緒的準並行執行。執行緒並非真正同時執行,而是在可用 CPU 時間分為時間片和 RTX5 為每個執行緒分配時間片的時間安排。因為時間片通常很短(只有幾毫秒),所以看起來好像執行緒同時執行。

迴圈執行緒切換功能如下:

  • 當執行緒切換髮生時,節拍將預先載入超時值
  • 如果同一個執行緒仍在執行,則每個系統的節拍數將減少(如果不是零)
  • 當記號達到 0 時,表示發生超時。如果另一個執行緒準備好具有相同的優先順序,則系統切換到該執行緒,並且再次預先載入超時。

換句話說,執行緒在其時間片的持續時間內執行(除非執行緒的時間片被放棄)。然後,RTX 切換到下一個處於 READY 狀態且具有相同優先順序的執行緒。如果沒有其他具有相同優先順序的執行緒準備好執行,則當前正在執行的執行緒將恢復執行。

注意
當切換到更高優先順序的執行緒時,迴圈超時值將被重置。

迴圈多工使用 #define OS_ROBIN_ENABLE 進行控制。時間片週期使用 #define OS_ROBIN_TIMEOUT 進行配置(在 RTX 定時器節拍中)。

ISR FIFO 佇列

RTX 函式(來自中斷服務例程的呼叫)在從中斷處理程式呼叫時將請求型別和可選引數儲存到 ISR FIFO 佇列緩衝區,稍後在中斷處理程式退出後處理。

在 IRQ 處理程式完成其執行以處理儲存到 FIFO 佇列緩衝區的請求後,排程程式立即被啟用。此緩衝區所需的大小取決於在中斷處理程式中呼叫的函式的數量。osRtxErrorNotify 會導致佇列大小不足,錯誤程式碼為 osRtxErrorISRQueueOverflow 。

事件記錄

RTX5 完全支援事件記錄器註釋。在本節中,您可以啟用或禁用 RTX5 不同元素的事件記錄。這導致除錯連線上的資料流量減少。

應該使用此設定禁止為完整的事件系列生成訊息。要僅為某個 API 呼叫禁用事件,請使用 rtx_evrt.h 標頭檔案中提供的 #define ,並將它們手動新增到RTX_Config.h 檔案中:

記憶體事件
EVR_RTX_MEMORY_INIT_DISABLE, EVR_RTX_MEMORY_ALLOC_DISABLE, EVR_RTX_MEMORY_FREE_DISABLE, EVR_RTX_MEMORY_BLOCK_INIT_DISABLE, EVR_RTX_MEMORY_BLOCK_ALLOC_DISABLE, EVR_RTX_MEMORY_BLOCK_FREE_DISABLE

核心事件
EVR_RTX_KERNEL_ERROR_DISABLE, EVR_RTX_KERNEL_INITIALIZE_DISABLE, EVR_RTX_KERNEL_INITIALIZE_COMPLETED_DISABLE, EVR_RTX_KERNEL_GET_INFO_DISABLE, EVR_RTX_KERNEL_INFO_RETRIEVED_DISABLE, EVR_RTX_KERNEL_GET_STATE_DISABLE, EVR_RTX_KERNEL_START_DISABLE, EVR_RTX_KERNEL_STARTED_DISABLE, EVR_RTX_KERNEL_LOCK_DISABLE, EVR_RTX_KERNEL_LOCKED_DISABLE, EVR_RTX_KERNEL_UNLOCK_DISABLE, EVR_RTX_KERNEL_UNLOCKED_DISABLE, EVR_RTX_KERNEL_RESTORE_LOCK_DISABLE, EVR_RTX_KERNEL_LOCK_RESTORED_DISABLE, EVR_RTX_KERNEL_SUSPEND_DISABLE, EVR_RTX_KERNEL_SUSPENDED_DISABLE, EVR_RTX_KERNEL_RESUME_DISABLE, EVR_RTX_KERNEL_RESUMED_DISABLE, EVR_RTX_KERNEL_GET_TICK_COUNT_DISABLE, EVR_RTX_KERNEL_GET_TICK_FREQ_DISABLE, EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE, EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE

執行緒事件
EVR_RTX_THREAD_ERROR_DISABLE, EVR_RTX_THREAD_NEW_DISABLE, EVR_RTX_THREAD_CREATED_DISABLE, EVR_RTX_THREAD_GET_NAME_DISABLE, EVR_RTX_THREAD_GET_ID_DISABLE, EVR_RTX_THREAD_GET_STATE_DISABLE, EVR_RTX_THREAD_GET_STACK_SIZE_DISABLE, EVR_RTX_THREAD_GET_STACK_SPACE_DISABLE, EVR_RTX_THREAD_SET_PRIORITY_DISABLE, EVR_RTX_THREAD_GET_PRIORITY_DISABLE, EVR_RTX_THREAD_YIELD_DISABLE, EVR_RTX_THREAD_SUSPEND_DISABLE, EVR_RTX_THREAD_SUSPENDED_DISABLE, EVR_RTX_THREAD_RESUME_DISABLE, EVR_RTX_THREAD_RESUMED_DISABLE, EVR_RTX_THREAD_DETACH_DISABLE, EVR_RTX_THREAD_DETACHED_DISABLE, EVR_RTX_THREAD_JOIN_DISABLE, EVR_RTX_THREAD_JOIN_PENDING_DISABLE, EVR_RTX_THREAD_JOINED_DISABLE, EVR_RTX_THREAD_BLOCKED_DISABLE, EVR_RTX_THREAD_UNBLOCKED_DISABLE, EVR_RTX_THREAD_PREEMPTED_DISABLE, EVR_RTX_THREAD_SWITCHED_DISABLE, EVR_RTX_THREAD_EXIT_DISABLE, EVR_RTX_THREAD_TERMINATE_DISABLE, EVR_RTX_THREAD_DESTROYED_DISABLE, EVR_RTX_THREAD_GET_COUNT_DISABLE, EVR_RTX_THREAD_ENUMERATE_DISABLE

執行緒標誌事件
EVR_RTX_THREAD_FLAGS_SET_DISABLE, EVR_RTX_THREAD_FLAGS_SET_DONE_DISABLE, EVR_RTX_THREAD_FLAGS_CLEAR_DISABLE, EVR_RTX_THREAD_FLAGS_CLEAR_DONE_DISABLE, EVR_RTX_THREAD_FLAGS_GET_DISABLE, EVR_RTX_THREAD_FLAGS_WAIT_DISABLE, EVR_RTX_THREAD_FLAGS_WAIT_PENDING_DISABLE, EVR_RTX_THREAD_FLAGS_WAIT_TIMEOUT_DISABLE, EVR_RTX_THREAD_FLAGS_WAIT_COMPLETED_DISABLE, EVR_RTX_THREAD_FLAGS_WAIT_NOT_COMPLETED_DISABLE

通用等待事件
EVR_RTX_THREAD_DELAY_DISABLE, EVR_RTX_THREAD_DELAY_UNTIL_DISABLE, EVR_RTX_THREAD_DELAY_COMPLETED_DISABLE

定時器事件
EVR_RTX_TIMER_ERROR_DISABLE, EVR_RTX_TIMER_CALLBACK_DISABLE, EVR_RTX_TIMER_NEW_DISABLE, EVR_RTX_TIMER_CREATED_DISABLE, EVR_RTX_TIMER_GET_NAME_DISABLE, EVR_RTX_TIMER_START_DISABLE, EVR_RTX_TIMER_STARTED_DISABLE,

相關推薦

CMSIS-RTOS2 翻譯 RTX v5 實現配置 RTX v5

檔案 “RTX_Config.h” 定義了 CMSIS-RTOS RTX 的配置引數,並且必須是使用 CMSIS-RTOS RTX 核心的每個專案的一部分。以下部分詳細介紹了配置選項:系統配置涵蓋全域性記憶體池的系統範圍設定,節拍頻率,ISR 事件緩衝區和迴圈執行緒切換。執行緒配置提供了幾個引數來配置執行緒管

CMSIS-RTOS2 翻譯 參考CMSIS-RTOS2 API 訊息佇列

// CMSIS RTOS header file/*---------------------------------------------------------------------------- *

CMSIS-RTOS2 翻譯 簡介

GitHub:https://github.com/XinLiGH 微博:https://weibo.com/XinLiWB 知乎:https://www.zhihu.com/people/... Email:[email protected]

CMSIS-RTOS2 翻譯 RTOS 驗證

Arm 為 CMSIS-RTOS 驗證提供了一個軟體包。ARM :: CMSIS-RTOS_Validation 包包含以下內容:CMSIS-RTOS 驗證套件的原始碼以及配置檔案。CMSIS-RTOS 驗證套件的文件。使用模擬顯示 CMSIS-RTOS 驗證套件使用情況的示例。注意目前,測試套件的公開版本僅

Apache Hadoop翻譯使用者指南

目的 該文件是使用者使用Hadpoop分散式檔案系統(HDFS)的起點,不管是作為hadoop叢集的一部分來使用還是獨立的通用分散式檔案系統。雖然在很多場景下HDFS被設計成“正常工作”即可,但是掌握更多的HDFS工作機制將有利於更好的配置以及診斷。 概述 HD

ST 電機控制工作臺幫助翻譯 介紹快速開始

                                                                                                                                      

NS3官方翻譯NS3.19中的AODV

Ad Hoc On-Demand Distance Vector (AODV) 無線自組織按需距離向量協議 This model implements the base specification of the Ad Hoc On-Demand Dist

Apache Flink 官方翻譯程式設計模型

抽象層次Flink 能夠為流式計算或批處理應用提供多種層次的抽象介面。最低階的抽象介面是狀態化的資料流介面。這個介面是通過 ProcessFunction 整合到 資料流 API 中的。此類介面讓使用者可以使用連續的容錯狀態,並且可以不受限制地處理多個數據流中的

【轉】下載斷點續傳客戶端與服務端的實現

http協議 當前時間 end box [] ada demo 服務端 sem 【轉】文件下載之斷點續傳(客戶端與服務端的實現) 【轉】文件下載之斷點續傳(客戶端與服務端的實現) 前面講了文件的上傳,今天來聊聊文件的下載。 老規矩,還是從最簡單粗暴的開始。那麽多簡單算簡單

Android官方技術翻譯——Gradle 外掛使用者指南1-3

不知道是什麼網路問題,上午一直髮不了部落格,其他頁面基本正常,就是在寫部落格這裡,每次開啟都是響應超時。剛才用了VPN,順便試了一下,居然可以編輯。想是CDN之類的問題吧。 這次翻譯的是Gradle 外掛使用者指南,也就是Gradle上的Android外掛的官方文件。文件很

Android官方技術翻譯——Gradle 外掛使用者指南7

本文譯自Android官方技術文件《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。 翻譯不易,轉載請註明CSDN部落格上的出處:

Android官方技術翻譯——Gradle 外掛使用者指南5

昨晚把第五章未譯完的幾句話解決了,不過第六章沒怎麼譯,明後天又是週末,如果週一前第六章翻譯完的話,週一再發第六章。 本文譯自Android官方技術文件《Gradle Plugin User Guide》,原文地址:http://tools.android.com/te

Android官方技術翻譯——Gradle 外掛使用者指南4

最近趕專案,白天基本沒時間,只有晚上在家的時候才能看一看。昨天晚上只翻譯完了第四章,今天就只發第四章吧。 本文譯自Android官方技術文件《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-doc

拆分問題的java實踐附源碼

解決方案 初始化 問題 申請 border output 思想 行數據 時延 引子 大文件拆分問題涉及到io處理、並發編程、生產者/消費者模式的理解,是一個很好的綜合應用場景,為此,花點時間做一些實踐,對相關的知識做一次梳理和集成,總結一些共性的處理方案和思路,以供後續工

Linux下用IO的方式操作GPIO/sys/class/gpio(轉)

char include clu wro linux fcntl sysfs 查看 printf 通過sysfs方式控制GPIO,先訪問/sys/class/gpio目錄,向export文件寫入GPIO編號,使得該GPIO的操作接口從內核空間暴露到用戶空間,GPIO的操作接

內容轉換多層字典適合新手理解

返回 date usr 新手 return utf-8 輸入 pass pda #!/usr/bin/env python#-*- coding:UTF-8 -*-flag = 0return_flag = 0f = open("file3.txt","r",encodin

php上傳原理詳解含源碼

輸入數據 最大值 cut 產生 har 默認值 接受 上傳文件 tle 1、文件上傳原理   將客戶端的文件上傳到服務器,再將服務器的臨時文件上傳到指定目錄 2、客戶端配置 提交表單 表單的發送方式為post 添加enctype="multipart/form-data"

python和目錄操作方法大全含實例

file python tree odin inux 長度 需要 tell mtr 一、python中對文件、文件夾操作時經常用到的os模塊和shutil模塊常用方法。 1 得到當前工作目錄,即當前Python腳本工作的目錄路徑: os.getcwd() 2 返回指定

關於讀的結束的判別方法EOF和feof以及區別

eof 是否 () sci 文件結尾 文本文件 正常的 等於 正常   關於讀文件的時候判斷文本是否讀完的方式一般可以通過EOF,一般宏定義為-1.因為ASCII碼中不可能出現-1.    當以文本形式讀取文件內容, 讀入的字符值等於EOF時, 表示讀入的已不是正常的字符而

用谷歌瀏覽器將英文翻譯成中文的方法無字數限制【轉載並修正】

需要 html 軟件 art sdn 網頁 detail 瀏覽器 中英語 作者:fuzimango 來源:CSDN 原文:https://blog.csdn.net/fuzimango/article/details/77419080 需要的軟件:Adobe Acrobat