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

Zijian/TENG發表於2021-08-22

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

相關文章