rt-thread是乙個功能強大,元件豐富的物聯網作業系統。
物聯網作業系統是指以作業系統核心(可以是rtos、linux等)為基礎,包括檔案系統、圖形庫等較為完整的中介軟體元件,具備低功耗、安全、通訊協議支援和雲端連線能力的軟體平台。
rt-thread kernel service library 僅提供核心用到的一小部分 c 庫函式實現,為了避免與標準 c 庫重名,在這些函式前都會新增上 rt_ 字首。
實時核心的實現包括:物件管理、執行緒管理及排程器、執行緒間通訊管理、時鐘管理及記憶體管理等等,核心最小的資源占用情況是 3kb rom, 1.2kb ram。
在系統中除了中斷處理函式、排程器上鎖部分的**和禁止中斷的**是不可搶占的之外,系統的其他部分都是可以搶占的,包括執行緒排程器自身。
根據超時函式執行時所處的上下文環境, rt-thread 的定時器可以設定為 hard_timer 模式或者 soft_timer 模式。
rt-thread原始碼
rt-thread啟動順序
rt-thread 的自動初始化機制使用了自定義 rti 符號段,將需要在啟動時進行初始化的函式指標放到了該段中,形成一張初始化函式表,在系統啟動過程中會遍歷該錶,並呼叫表中的函式,達到自動初始化的目的。
rt-thread核心物件模型
核心物件分為兩類:靜態核心物件和動態核心物件,靜態核心物件通常放在rw 段和 zi 段中,在系統啟動後在程式中初始化;動態核心物件則是從記憶體堆中建立的,而後手工做初始化。
靜態物件會占用 ram 空間,不依賴於記憶體堆管理器,記憶體分配時間確定。動態物件則依賴於記憶體堆管理器,執行時申請 ram 空間,當物件被刪除後,占用的 ram 空間被釋放。這兩種方式各有利弊,可以根據實際環境需求選擇具體使用方式。
rt-thread 核心物件包括:執行緒,訊號量,互斥量,事件,郵箱,訊息佇列和定時器,記憶體池,裝置驅動等。物件容器中包含了每類核心物件的資訊,包括物件型別,大小等。物件容器給每類核心物件分配了乙個鍊錶,所有的核心物件都被鏈結到該鍊錶上,如圖 rt-thread 的核心物件容器及鍊錶如下圖所示:
RT thread學習筆記之
1 往裸機工程新增 rt thread 原始碼 a 拷貝 rt thread package 到裸機工程根目錄 2 拷貝 rtconfig.h 檔案到 user 資料夾 a 將 rt thread 3.0.3 bsp 資料夾下面的 rtconfig.h 配套檔案拷貝到工程根目錄下面的 user資料夾...
Rtthread學習筆記
rt sem init rt sem create rt sem take 等待 訊號量 rt sem release 放出 訊號量 rt sem detach 訊號量脫離2.互斥量 與訊號量不同的是,互斥量只能由持有執行緒釋放,其他執行緒不可釋放 取得互斥量的執行緒與高優先度的優先順序相同 rt ...
Rt Thread學習筆記 簡介(一)
近期要學習一款rtos,讓裸機不再孤單。作為一名 rtos 的初學者,也許你對 rt thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 rt thread 的魅力和它相較於其他同型別 rtos 的種種優越之處。rt thread 是一款完全由國內團隊開發維護的嵌入式實時作業系統 rto...