EB tresos Classic AUTOSAR:
運行時環境 (RTE) 基礎技術解析
系統性基礎教學,深入剖析連接應用層與基礎軟體的關鍵橋樑——運行時環境 (RTE),協助開發者掌握其核心邏輯與實現方法。
本篇文章基於 Elektrobit 提供的「EB tresos Classic AUTOSAR 運行時環境 (RTE) 基礎培訓」影片內容整理。影片深入剖析了連接應用層與基礎軟體的關鍵橋樑——運行時環境(Runtime Environment, 簡稱 RTE)。內容涵蓋 RTE 在系統架構中的定位、事件與任務的映射機制、RTE 分區(Partitioning)概念以及實際的配置用例,協助開發者掌握 RTE 的核心邏輯與實現方法。
1. RTE 在 AUTOSAR 架構中的描述與定位
在 Classic AUTOSAR 的分層架構中,RTE 是將「虛擬功能匯流排 (VFB, Virtual Functional Bus)」具體實現的核心組件。
account_tree 承上啟下與解耦
RTE 位於應用軟體組件(SWC)與底層基礎軟體(BSW)之間。它讓 SWC 完全不需要了解底層作業系統(OS)與硬體通訊網路的細節,實現了軟體與硬體的解耦。
hub 絕對的通訊樞紐
在 AUTOSAR 規範中,不論是同一個 ECU 內部的兩個 SWC 互相傳遞資料,還是不同 ECU 之間透過 CAN/乙太網通訊,甚至 SWC 需要呼叫底層的儲存或診斷服務,所有的資訊交換必須且只能透過 RTE 所提供的 API 來進行。
2. RTE 事件與任務映射 (Event Mapping)
RTE 負責管理與調度 SWC 中的「可運行實體 (Runnables)」,將抽象的軟體行為落地到具體的作業系統中。
-
bolt
RTE Events: Runnables 本身只是 C 語言函數,需要特定的條件來觸發執行,這些條件統稱為 RTE Events(例如:週期性觸發的 Timing Event、接收到資料時觸發的 Data Received Event)。
-
schema
映射到 OS Task: RTE 本身沒有獨立的執行緒調度能力,它必須依賴 AUTOSAR OS。在開發過程中,工程師必須在 EB tresos 工具中,將各個 RTE Events 映射(Mapping)到特定的 OS Task 上。當作業系統排程執行到該 Task 時,RTE 就會依照設定好的順序,依序呼叫對應的 Runnables。
3. RTE 分區 (Partitioning) 與記憶體保護
因應現代汽車電子複雜度的提升與功能安全(Functional Safety, 如 ISO 26262)的要求,影片介紹了 RTE 的分區機制。
layers 邏輯與物理隔離
RTE 支援將不同的軟體模組劃分到不同的「分區(Partitions)」中。
shield 故障防護
每個 RTE Partition 通常會對應到一個獨立的 OS Application,並與微控制器的記憶體保護單元(MPU)結合。這種機制的優勢在於,若某個非關鍵分區的程式發生異常(如記憶體越界),RTE 與 OS 能將錯誤限制在該分區內,避免波及到其他攸關行車安全的核心分區(如煞車控制)。
4. 實際用例與 EB tresos 開發流程
在實際使用 EB tresos 進行開發時,RTE 的生成過程通常具備兩階段特性:
-
assignment
合約階段 (Contract Phase): 在底層軟體尚未配置完成時,RTE 工具可以先根據 SWC 的介面定義,生成供應用層使用的 C 語言標頭檔(Application Header Files)。這允許應用層開發與底層配置並行作業,互不干擾。
-
build_circle
生成階段 (Generation Phase): 當所有 SWC、BSW 模組以及 OS 的配置皆完成且 Mapping 完畢後,EB tresos 會執行最終生成,產出包含所有具體邏輯與通訊 API 實作的 Rte.c 與 Rte.h 文件,並進行最終的編譯整合。
總結
RTE 是 AUTOSAR 架構的靈魂,負責將模組化的軟體組件與底層作業系統及硬體資源縫合在一起。透過 EB tresos 的配置工具,開發者能有條理地定義軟體行為的觸發機制,並利用分區技術確保系統穩定性與安全性,這是開發符合現代標準車載 ECU 不可或缺的關鍵環節。