色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NvM在AUTOSAR中的層次結構

嵌入式軟件實戰派 ? 來源:CSDN ? 作者:CSDN ? 2022-04-21 10:47 ? 次閱讀

AUTOSAR中的NvM看起來挺難的,特別是在配置的時候,一堆參數,都不知道是干什么用的。想去研究它,卻不知如何下手。

其實吧,AUTOSAR的官方文檔講的挺詳細的,但是內容很多,網上有很多文章對其進行解讀,很多人沒時間也不想細讀它

本文打算換個討論,不再累述其內容細節了,而通過圖解的方式,將NvM重要特點提取出來講解,方便理解,也方便記憶。

1.NvM在AUTOSAR中的層次結構

AUTOSAR中有個Memory的處理,在架構中是這樣的20305a44-bfae-11ec-bce3-dac502259ad0.png分類三層,分別是Memory Service(NvM)、Memory Hardware Abstraction(Memory If和Fee/Ea)和Memory Driver(Fls/Eep驅動),單獨拎出來就是這樣的2040c5be-bfae-11ec-bce3-dac502259ad0.png 這部分在架構中有這樣的接口關系205145d8-bfae-11ec-bce3-dac502259ad0.png

回到Nvm,這個NVM即Non-VolatileRAM Manager (NVRAM Manager),用于管理存儲于各類non-volatile memory(如EEPROM/Flash等)的數據。

NVM在AUTOSAR中是獨立于硬件的,通過底層接口訪問外部EEPROM或模擬成EEPROM的DataFlash。為了適用于所有的車載系統,其具有高度可擴展性和可靠性。

2.Memory抽象層空間尋址策略

AUTOSAR中的Memory是怎么尋址的呢?

其實,MemoryAbstraction Interface為底層EEPROM/FEE提供32位地址空間,像這樣

20652260-bfae-11ec-bce3-dac502259ad0.png

這個虛擬的邏輯地址是包含著一些信息的,如NV Block number和Dataset index,還有Block address offset等,他們的關系可以通過以下公式來理解

FEE/EA_BLOCK_NUMBER=(NvMNvBlockBaseNumber << NvMDatasetSelectionBits) + DataIndex

舉個例子,假如NVM_DATASET_SELECTION_BITS配置為4bits,那么就有14bits留給blocknumber,因此可以分最大有16個dataset。

207606e8-bfae-11ec-bce3-dac502259ad0.png

3.NvM Basic Storage Object

以上提到的Dataset、NV Block等概念,是不是容易混淆,也不清楚是干什么用的?好了,下面做個匯總和介紹。

名稱

描述

Basic Storage Object

Basic Storage Object是一個最小的NVRAM block,多個Basic Storage Objects可以組成一個NVRAM Block

NVRAM Block

NVRAM Block是管理和存儲 NV Block所需的整個結構

NV data

要存儲在Non-Volatile memory的數據

Block Management Type

這個是NVRAM Block的類型,它取決于強制/可選Basic Storage ObjectNVRAM Block的(可配置的)單獨組成以及該 NVRAM 塊的后續處理。

RAM Block

屬于Basic Storage Object,它是NVRAM Block的一部分,常駐于RAM空間。

ROM Block

屬于Basic Storage Object,它是NVRAM Block的一部分(可選的),常駐于ROM空間。

NV Block

屬于Basic Storage Object,它是NVRAM Block的一部分(必選的),常駐于NV空間。

NV Block Header

如果Static Block IDenable的,這個作為附加信息包含在NV Block中。

Administrative Block

屬于Basic Storage Object,它常駐于RAM,是NVRAM Block必選部分。

用一個圖來表達就是這樣的

208a8bd6-bfae-11ec-bce3-dac502259ad0.png

圖上得這幾個block,用圖示來看可能會更容易理解

20a541b0-bfae-11ec-bce3-dac502259ad0.png

4.NvM Block Management Type

NVM在AUTOSAR中的功能是挺完善的,要滿足車載系統的各種需求,例如數據塊錯了怎么辦等等,都考慮周全。

NvM支持三種類型實現:Native、Redundant和Dataset。那么這三種類型是怎樣的呢?

我做了個表,他們包含了哪幾種block

NV Block

RAM Block

ROM Block

Administrator Block

Native

1

1

0..1

1

Redundant

2

1

0..1

1

Dataset

1..255

1

0..n

1

  1. Native
    這種最簡單,平時大多情況下,我們用的就是這種

    它包含就簡單的NV Block,其他如Header和CRC都是隨意可選配置。

    20bfbf5e-bfae-11ec-bce3-dac502259ad0.png

  2. Redundant

    這種就復雜一點點,可以簡單理解為雙備份,意思是,如有一份數據錯了,可以用備份的那塊。

    20cfeb7c-bfae-11ec-bce3-dac502259ad0.png

  3. Dataset

Dataset呢,這個不是多備份哈,而是針對不同配置做了對應。例如一個車系統平臺有很多種配置,但有想集成在同一個軟件種,那么就有很多個對應的配置數據,在運行的時候根據配置參數選擇哪份數據使用。

20e7470e-bfae-11ec-bce3-dac502259ad0.png

5.NVRAM Manager API 配置類

講到NvM的API,其實NvM API分三類:

Class3:所有指定的API調用都可用,最多支持功能。

Class2:有一組中間API調用可用。

Class1:特別是對于硬件資源非常有限的匹配系統,此API配置類僅提供最少的一組

Class 3 包含下面這些API:Type 1:- NvM_SetDataIndex(...)- NvM_GetDataIndex(...)- NvM_SetBlockProtection(...)- NvM_GetErrorStatus(...)- NvM_SetRamBlockStatus(...)- NvM_SetBlockLockStatusType 2:- NvM_ReadBlock(...)- NvM_WriteBlock(...)- NvM_RestoreBlockDefaults(...)- NvM_EraseNvBlock(...)- NvM_InvalidateNvBlock(...)- NvM_CancelJobs(…)- NvM_ReadPRAMBlock(...)- NvM_WritePRAMBlock(...)- NvM_RestorePRAMBlockDefaults(...)Type 3:- NvM_ReadAll(...)- NvM_WriteAll(...)- NvM_CancelWriteAll(...)- NvM_ValidateAll(...)Type 4:- NvM_Init(...)Class 2 包含下面這些API:Type 1:- NvM_SetDataIndex(...)- NvM_GetDataIndex(...)- NvM_GetErrorStatus(...)- NvM_SetRamBlockStatus(...)- NvM_SetBlockLockStatusType 2:- NvM_ReadBlock(...)- NvM_WriteBlock(...)- NvM_RestoreBlockDefaults(...)- NvM_CancelJobs(…)- NvM_ReadPRAMBlock(...)- NvM_WritePRAMBlock(...)- NvM_RestorePRAMBlockDefaults(...)Type 3:- NvM_ReadAll(...)- NvM_WriteAll(...)- NvM_CancelWriteAll(...)- NvM_ValidatedAll(...) Type 4:- NvM_Init(...)
Class 1 包含下面這些API:Type 1:- NvM_GetErrorStatus(...)- NvM_SetRamBlockStatus(...)- NvM_SetBlockLockStatusType 2:- --Type 3:- NvM_ReadAll(...)- NvM_WriteAll(...)- NvM_CancelWriteAll(...)Type 4:- NvM_Init(...)

也許你會好奇,上面提到的Type是啥?

其實是根據功能分類而已,可以參考下表內容

Request Types

Characteristics of Request Types

Type 1:

- NvM_SetDataIndex (...)

- NvM_GetDataIndex (...)

- NvM_SetBlockProtection (...)

- NvM_GetErrorStatus(...)

- NvM_SetRamBlockStatus(...)

n同步請求

n作用于一個RAM Block

n適用于所有SWC

Type 2:

- NvM_ReadBlock(...)

- NvM_WriteBlock(...)

- NvM_RestoreBlockDefaults(...)

- NvM_EraseNvBlock(...)

- NvM_InvalidateNvBlock(...)

- NvM_CancelJobs(…)

- NvM_ReadPRAMBlock(...)

- NvM_WritePRAMBlock(...)

- NvM_RestorePRAMBlockDefaults(...)

n異步請求(通過callbackpolling返回結果)

n作用于一個NVRAM Block

n通過NVRAM manager task處理

n適用于所有SWC

Type 3:

- NvM_ReadAll(...)

- NvM_WriteAll(...)

- NvM_CancelWriteAll(...)

- NvM_ValidateAll(...)

n異步請求(通過callbackpolling返回結果

n作用于具有常駐RAM dataNVRAM Block

Type 4:

- NvM_Init(...)

n同步請求

n基本初始化

n通過函數本身內部的命令接口向任務發出成功信號

6. NvM Descriptor Table

以上講的都是一些原理或者配置上的東西,那么在軟件代碼上是怎么用的呢,其實用到了一個描述符表(Descriptor Table),即將所有的配置信息映射或囊括到這里面來,那么這個表是怎樣的?

AUTOSAR的配置策略,要將所有和NVRAM 描述符相關的內容在配置期間生成,生成的內容包含以下信息。

SWS Item

Items

Type

ECUC_NvM_00476

NvMBlockCrcType

EcucEnumerationParamDef

ECUC_NvM_00554

NvMBlockHeaderInclude

EcucStringParamDef

ECUC_NvM_00477

NvMBlockJobPriority

EcucIntegerParamDef

ECUC_NvM_00062

NvMBlockManagementType

EcucEnumerationParamDef

ECUC_NvM_00557

NvMBlockUseAutoValidation

EcucBooleanParamDef

ECUC_NvM_00556

NvMBlockUseCRCCompMechanism

EcucBooleanParamDef

ECUC_NvM_00036

NvMBlockUseCrc

EcucBooleanParamDef

ECUC_NvM_00552

NvMBlockUseSetRamBlockStatus

EcucBooleanParamDef

ECUC_NvM_00519

NvMBlockUseSyncMechanism

EcucBooleanParamDef

ECUC_NvM_00033

NvMBlockWriteProt

EcucBooleanParamDef

ECUC_NvM_00551

NvMBswMBlockStatusInformation

EcucBooleanParamDef

ECUC_NvM_00119

NvMCalcRamBlockCrc

EcucBooleanParamDef

ECUC_NvM_00116

NvMInitBlockCallback

EcucFunctionNameDef

ECUC_NvM_00533

NvMMaxNumOfReadRetries

EcucIntegerParamDef

ECUC_NvM_00499

NvMMaxNumOfWriteRetries

EcucIntegerParamDef

ECUC_NvM_00478

NvMNvBlockBaseNumber

EcucIntegerParamDef

ECUC_NvM_00479

NvMNvBlockLength

EcucIntegerParamDef

ECUC_NvM_00480

NvMNvBlockNum

EcucIntegerParamDef

ECUC_NvM_00481

NvMNvramBlockIdentifier

EcucIntegerParamDef

ECUC_NvM_00035

NvMNvramDeviceId

EcucIntegerParamDef

ECUC_NvM_00482

NvMRamBlockDataAddress

EcucStringParamDef

ECUC_NvM_00521

NvMReadRamBlockFromNvCallback

EcucFunctionNameDef

ECUC_NvM_00483

NvMResistantToChangedSw

EcucBooleanParamDef

ECUC_NvM_00484

NvMRomBlockDataAddress

EcucStringParamDef

ECUC_NvM_00485

NvMRomBlockNum

EcucIntegerParamDef

ECUC_NvM_00117

NvMSelectBlockForReadAll

EcucBooleanParamDef

ECUC_NvM_00549

NvMSelectBlockForWriteAll

EcucBooleanParamDef

ECUC_NvM_00506

NvMSingleBlockCallback

EcucFunctionNameDef

ECUC_NvM_00532

NvMStaticBlockIDCheck

EcucBooleanParamDef

ECUC_NvM_00072

NvMWriteBlockOnce

EcucBooleanParamDef

ECUC_NvM_00520

NvMWriteRamBlockToNvCallback

EcucFunctionNameDef

ECUC_NvM_00534

NvMWriteVerification

EcucBooleanParamDef

ECUC_NvM_00538

NvMWriteVerificationDataSize

EcucIntegerParamDef

這個最好對著代碼去看更好理解。

7. 總結

以上講得內容都不是很深入,適合剛入手的小伙伴學習,我將以上內容做成了一份備查手冊,方便以后看代碼或者閱讀文檔的時候,可以直接查看,不用費神看那么多雞腸文英語。

20ffe160-bfae-11ec-bce3-dac502259ad0.png

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AUTOSAR
    +關注

    關注

    10

    文章

    360

    瀏覽量

    21557
  • 車載系統
    +關注

    關注

    1

    文章

    132

    瀏覽量

    27102

原文標題:一圖讀懂AUTOSAR NvM(附pdf版文檔資源)

文章出處:【微信號:embedded_sw,微信公眾號:嵌入式軟件實戰派】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AUTOSAR通信對自動駕駛的影響 AUTOSAR通信與嵌入式系統設計

    AUTOSAR(Automotive Open System Architecture)通信對自動駕駛的影響深遠,它不僅優化了汽車電子系統的通信結構,還提高了自動駕駛系統的安全性和可靠性。同時
    的頭像 發表于 12-17 15:09 ?237次閱讀

    AUTOSAR通信與網絡安全 AUTOSAR通信在車輛的應用

    隨著汽車行業的發展,車輛的電子化和智能化水平不斷提高,這使得車輛的通信系統變得日益復雜。AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件
    的頭像 發表于 12-17 15:06 ?211次閱讀

    AUTOSAR通信實現的常見問題

    AUTOSAR(Automotive Open System Architecture)汽車開放系統架構旨在實現汽車電子的軟硬件分離,降低ECU軟件開發的復雜度,提高軟件可重用性。 一、通信協議棧
    的頭像 發表于 12-17 15:03 ?248次閱讀

    AUTOSAR通信堆棧的配置 AUTOSAR通信模塊測試方法

    )的開發和生產。通信堆棧是AUTOSAR架構的關鍵組成部分,負責處理ECU之間的通信。 AUTOSAR通信堆棧的配置 通信模型 : AUTOSA
    的頭像 發表于 12-17 15:01 ?206次閱讀

    AUTOSAR通信組件介紹 AUTOSAR通信層功能分析

    實現汽車電子控制單元(ECU)的軟件設計和開發。這個架構包括多個層,其中通信層是AUTOSAR架構的關鍵組成部分之一。 1. 通信組件概述 AUTOSAR通信組件主要負責ECU之間的通信。它為
    的頭像 發表于 12-17 14:55 ?147次閱讀

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車開放系統架構,該架構支持汽車電子控制單元(ECU)之間的通信,實現了高度模塊化和可重用性。AUTOSAR
    的頭像 發表于 12-17 14:54 ?357次閱讀

    KiCad層次原理圖使用教程

    “ ? KiCad ,多張原理圖可以形成層次結構:有一個根原理圖,其他圖作為根原理圖或另一個子原理圖的子原理圖被創建。如果需要的話,原理圖可以被多次包含在一個
    的頭像 發表于 11-13 18:06 ?716次閱讀
    KiCad<b class='flag-5'>層次</b>原理圖使用教程

    存儲器的層次結構包括哪些

    存儲器的層次結構是計算機系統中一個關鍵且復雜的部分,它決定了數據的存儲、訪問和處理效率。存儲器的層次結構主要包括多個層次,每個
    的頭像 發表于 09-10 14:28 ?555次閱讀

    Vector AUTOSAR的TISCI服務器集成

    電子發燒友網站提供《Vector AUTOSAR的TISCI服務器集成.pdf》資料免費下載
    發表于 08-30 11:16 ?0次下載
    Vector <b class='flag-5'>AUTOSAR</b><b class='flag-5'>中</b>的TISCI服務器集成

    TPS65219 NVM編程指南

    電子發燒友網站提供《TPS65219 NVM編程指南.pdf》資料免費下載
    發表于 08-28 10:53 ?0次下載
    TPS65219 <b class='flag-5'>NVM</b>編程指南

    AUTOSAR MCAL驅動程序與演示程序的Libraries的驅動程序有什么不同之處?

    1.關于 AUTOSAR MCAL 驅動程序 與演示程序的 Libraries 的驅動程序 有什么不同之處? 2.AUTOSAR MCAL 驅動程序
    發表于 05-17 06:55

    存儲器層次結構如何解釋?

    存儲器層次結構可以從圖片中清晰的看出來,圖片中共分為六級,越向上的層次,存儲器速度越快,容量更小,造價越高。
    的頭像 發表于 02-19 14:03 ?941次閱讀
    存儲器<b class='flag-5'>層次</b><b class='flag-5'>結構</b>如何解釋?

    淺談存儲器層次結構

    通過多級存儲器的設計,存儲器層次結構能夠存儲容量和訪問速度之間找到一個平衡點。高速緩存存儲器和主存儲器提供了快速的訪問速度,而輔助存儲器則提供了大量的存儲空間。
    發表于 02-19 13:54 ?822次閱讀
    淺談存儲器<b class='flag-5'>層次</b><b class='flag-5'>結構</b>

    簡述存儲器的層次結構及其分層原因

    存儲器的層次結構是計算機系統存儲器的層次化組織,分為多個層次,每個層次具有不同的訪問速度、容量
    發表于 02-05 09:46 ?2127次閱讀

    NVM和本地\"內存定義數組(靜態 /global /local)的\"關鍵字是什么?

    NVM 和本地\"內存定義數組(靜態 /global /local)的\"關鍵字是什么? 還有與 32 位對齊的關鍵字怎么樣。
    發表于 01-25 07:52
    主站蜘蛛池模板: 久久无码AV亚洲精品色午夜麻豆 | 青娱乐视觉盛宴国产视频| 92电影网午夜福利| 蜜芽TV影院在线视频| 97人妻丰满熟妇AV无码| 免费人成网站永久| a在线视频免费观看| 全球真实小U女视频合集| 宝贝乖女好紧好深好爽老师| 日本高清免费一本视频在线观看| 菠萝蜜国际一区麻豆| 日韩中文无线码在线视频| 大桥未久电影在线| 四虎国产精品永久一区高清| 国产精品免费小视频| 亚洲.日韩.欧美另类| 黑人开嫩苞| 与邻居换娶妻子2在线观看| 乱码午夜-极品国产内射| 97在线视频免费| 人妻兽虐曲| 国产精品外围在线观看| 亚洲精品国产SUV| 久久精品美女| 99久久久久亚洲AV无码| 人妻天天爽夜夜爽三区麻豆A片| 丰满艳妇亲伦| 亚洲AV无码偷拍在线观看| 久久国产精品萌白酱免费| 777米奇影院第七色色| 青娱乐国产精品视频| 国产三级级在线电影| 一本色道久久88加勒比—综合| 蜜臀色欲AV无人A片一区 | 小莹的性荡生活40章| 久99re视频9在线观看| 91精品欧美一区二区三区| 日韩丰满少妇无码内射| 国产午夜精品一区二区三区| 正在播放国产尾随丝袜美女| 欧美性狂猛bbbbbbxxxx|