Adaptive AUTOSAR 學習筆記 15 - 持久化 Persistency


本系列學習筆記基於 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 學習筆記總目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM