本系列學習筆記基于 AUTOSAR Adaptive Platform 官方檔案 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf,作者:Zijian/TENG
原文地址(獲取最新更新):https://www.cnblogs.com/tengzijian/p/15171199.html
縮寫
- NvM:Non-volatile Memory
- CM:Communication Management
- DCM:Diagnostic Communication Mannger
- EM:Execution Management
- URI:Uniform Resource Identifier
10 持久化 Persistency
10.1 概覽
Persistency 為應用和 FC 提供了將資訊儲存到非易失性存盤(NvM)的機制,經啟動和點火回圈不會導致資料丟失,Persistency 提供了訪問 NvM 的標準介面,
應用將存盤位置識別符號作為引數,傳給 Persistency API,來決定不同的存盤位置,存盤位置可以歸為兩類:
- 鍵值存盤
- 檔案存盤
應用可以任意組合使用上述存盤型別,
持久化資料是行程私有的,不能通過 Persistency 在不同行程之間共享資料,這是為了阻止通信管理(CM)之外的通信途徑,
Persistency 做好了處理(同一行程)多執行緒的并發訪問的準備,若要共享鍵值存盤或檔案存盤,或通過向另一個執行緒傳遞(拷貝)OpenKeyValueStorage/OpenFileStorage 回傳的 SharedHandle;或不同的執行緒對同一個鍵值存盤或檔案存盤各自呼叫 OpenKeyValueStorage/OpenFileStorage,
Persistency 可以保證存盤資料的完整性,通過冗余資料檢驗資料是否損壞,冗余資料包括 CRC 碼、Hash 值、以及 “M/N”模式,這些機制可以一起或單獨使用,
Persistency 提供安全存盤,主要是通過冗余實作,但是提供了額外的特性,讓應用可以得知存盤的資料是否出現問題(即使可以通過冗余資料恢復),
Persistency 向應用提使用資源數量的供統計資訊,
Persistency 可以為資料提供加密存盤,確保敏感資料存盤到物理設備前進行加密,
10.2 鍵值存盤
鍵值存盤提供了從單一存盤位置存取多個鍵值對的機制,鍵值存盤支持以下三種資料型別:
- SWS_AdaptivePlatformTypes 中定義的資料型別
- 簡單位元組陣列:復雜型別的流
- 應用設計中 “PersistencyKeyValueDatabaseInterface”(或該介面特化的 PersistencyDataElements)通過 “dataTypeForSerialization” 參考的所有 Implementation Data Types
每個鍵值資料庫的鍵必須唯一,且通過 Persistency 提供的介面定義,
基于定義在 Application Design 中、應用/平臺特定的 AUTOSAR 資料型別序列化代碼,計劃增加對序列化/存盤的支持,
10.3 檔案存盤
不是所有的資料都適合用鍵值資料庫形式存盤,針對這些資料,引入了檔案存盤,File Storage Port 允許應用訪問一個存盤位置,并在其中建立一個或多個存取器(Accessors),這些存取器通過字串形式的 Unique Key 識別,
為了更好的理解,可以類比檔案系統:一個 File Storage Port 可以理解為檔案系統的目錄,應用可以在里面創建多個檔案(存取器 Accessors),
10.4 UCM 持久資料處理用例
處理 UCM 用例的持久化資料/檔案完全取決于持久化配置,
在 ECU 或 Adaptive Machine 生命周期內,UCM 支持處理自適應應用的以下三個主要使用場景:
- 在 Adaptive Machine 中安裝新的應用軟體
- 在 Adaptive Machine 中升級已有應用軟體
- 從 Adaptive Machine 中卸載已有應用軟體
在前兩個場景中,UCM 通過執行管理(EM)觸發 Persistency 使用持久化配置中的 URI 部署/升級應用的持久化資料,在第三個使用場景中,UCM 可以使用持久化配置中的 URI 移除殘留的持久化資料,
Persistency 需要支持下列場景:
- 在自適應應用(AA)安裝時,根據應用設計中的定義,將持久化資料部署到鍵值資料庫或檔案存盤,
- 將持久化資料,按照集成者的修改,部署到鍵值資料庫或檔案存盤,
- 根據集成者的定義,將持久化資料部署到鍵值資料庫或檔案存盤,
- 當安裝新版應用時,根據配置的升級策略,覆寫或保留已有的持久化資料,
一般 Persistency 層在應用設計和部署階段配置,Persistency 部署階段的配置可以覆寫應用設計階段的配置,如果沒有部署階段的配置,則使用應用設計中的配置,
更多關于 Adaptive AUTOSAR 文章
AUTOSAR AP 學習筆記總目錄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296157.html
標籤:其他
