📘 RTOS 虛擬平台 (VM) 軟體系統架構規劃草案
🧠 設計核心理念
-
語言選擇需具跨平台性與延續性
-
建議語言:C/C++ 為底層核心語言、Python/Lua 作為上層測試或配置介面語言。
-
語言延續性確保「知識經驗」不歸零、支援平台轉換。
-
-
重視軟體靈魂——資料結構、狀態圖與演算法設計
-
導入 UML / Statechart / Flowchart 工具輔助分析。
-
採標準化文檔格式(如 Markdown + PlantUML 或 Doxygen)建構文件與設計庫。
-
-
建構跨平台可重用的函數庫(Library)架構
-
函數庫需以功能導向與需求導向為核心。
-
移植平台時只需重新撰寫
L01~L03
層的實作即可,其餘層維持共通。
-
🏗️ 軟體系統分層架構
以下為推薦的 8 層虛擬平台軟體架構模型:
層級 | 名稱 | 功能說明 | 可連接層 |
---|---|---|---|
L00 | HardHDL | 實體硬體模擬層,平台抽象化支援 FPGA/MCU/ARM 等 | — |
L01 | BIOS | 最低階 I/O 初始化與啟動例程,如 clock, gpio, uart | L00 |
L02 | DRIVE1_LOW | 基礎外設驅動,如 Timer、ADC、PWM、I2C、SPI | L01, L00 |
L03 | DRIVE2_HIGH | 高階驅動層,封裝 sensor、motor、CAN、LCD、Flash | L02, L01 |
L04 | SYS_PUBLIB | 系統級公用函式:RTOS抽象層、記憶體池、佇列封裝、錯誤處理 | L03, L02 |
L05 | APP_PUBLIB | 應用共用邏輯層:演算法、數學函數、座標轉換、通訊協定封裝 | L04, L03 |
L06 | USER_PUBLIB | 使用者應用函式封裝,如 control策略、任務流程模組 | L05, L04 |
L07 | APP | 實際應用程式(如自走車、機器手臂、數據採集) | L06, L05, L04 |
🔗 嚴格層級依賴限制(LINK規範)
-
上層僅可呼叫指定下層,反向依賴禁止
📦 技術配套工具建議
類型 | 工具建議 |
---|---|
文件生成 | Doxygen 、Sphinx 、MkDocs |
圖示建模 | PlantUML 、Draw.io 、yEd |
設計追蹤 | Markdown + Git 管理技術資源庫 |
單元測試 | Unity for C, pytest for Python |
VM 平台模擬 | QEMU 、自訂 HAL/Driver layer 做 mock 驗證 |
自動編譯系統 | CMake + Makefile + Ninja 或 PlatformIO |
🧰 可進一步建構:
-
📁
vm_sys/
:儲存虛擬硬體資源模組 -
📁
libs/
:依照 L01~L06 結構分層建置 -
📁
app/
:各應用模組 (如 BLE、AGV、LineFollower) -
📁
doc/
:UML + API 說明文件,版本控管 -
📁
tool/
:交叉編譯腳本、模擬驅動、測試平台工具
🔚 小結與後續建議
這套分層 VM 架構:
-
可模擬 RTOS 開發、支援軟體重構與平台移植
-
適用於教育用途、快速原型、內部開發平台統一
📌 下一步建議:
-
依此模型實作出一個 demo 架構(例如以
FreeRTOS
+STM32
為範本) -
可建立
L01~L03
的 HAL 測試模擬框架(Mock HAL)
沒有留言:
張貼留言