91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

NvM在AUTOSAR中的層次結(jié)構(gòu)

嵌入式軟件實戰(zhàn)派 ? 來源:CSDN ? 作者:CSDN ? 2022-04-21 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

1.NvM在AUTOSAR中的層次結(jié)構(gòu)

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

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

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

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

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

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

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

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

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所需的整個結(jié)構(gòu)

NV data

要存儲在Non-Volatile memory的數(shù)據(jù)

Block Management Type

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

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中的功能是挺完善的,要滿足車載系統(tǒng)的各種需求,例如數(shù)據(jù)塊錯了怎么辦等等,都考慮周全。

NvM支持三種類型實現(xiàn):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

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

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

  3. Dataset

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

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

5.NVRAM Manager API 配置類

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

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

Class2:有一組中間API調(diào)用可用。

Class1:特別是對于硬件資源非常有限的匹配系統(tǒng),此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是啥?

其實是根據(jù)功能分類而已,可以參考下表內(nèi)容

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返回結(jié)果)

n作用于一個NVRAM Block

n通過NVRAM manager task處理

n適用于所有SWC

Type 3:

- NvM_ReadAll(...)

- NvM_WriteAll(...)

- NvM_CancelWriteAll(...)

- NvM_ValidateAll(...)

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

n作用于具有常駐RAM dataNVRAM Block

Type 4:

- NvM_Init(...)

n同步請求

n基本初始化

n通過函數(shù)本身內(nèi)部的命令接口向任務(wù)發(fā)出成功信號

6. NvM Descriptor Table

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

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

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. 總結(jié)

以上講得內(nèi)容都不是很深入,適合剛?cè)胧值男』锇閷W(xué)習,我將以上內(nèi)容做成了一份備查手冊,方便以后看代碼或者閱讀文檔的時候,可以直接查看,不用費神看那么多雞腸文英語。

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

審核編輯 :李倩


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

    關(guān)注

    10

    文章

    398

    瀏覽量

    23651
  • 車載系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    141

    瀏覽量

    27873

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

文章出處:【微信號:embedded_sw,微信公眾號:嵌入式軟件實戰(zhàn)派】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    操作系統(tǒng)體系結(jié)構(gòu)

    操作系統(tǒng)的體系結(jié)構(gòu)是一個開放的問題。正如上文所述,操作系統(tǒng)核心態(tài)為應(yīng)用程序提供公共的服務(wù),那么操作系統(tǒng)核心態(tài)應(yīng)該提供什么服務(wù)、怎樣提供服務(wù)?有關(guān)這個問題的回答形成了兩種主要的體系結(jié)構(gòu)
    發(fā)表于 01-15 08:19

    無線傾角傳感器古樹監(jiān)測的應(yīng)用:以科技守護活文物的結(jié)構(gòu)安全

    無線傾角傳感器古樹監(jiān)測的應(yīng)用:以科技守護活文物的結(jié)構(gòu)安全
    的頭像 發(fā)表于 01-09 11:38 ?656次閱讀
    無線傾角傳感器<b class='flag-5'>在</b>古樹監(jiān)測<b class='flag-5'>中</b>的應(yīng)用:以科技守護活文物的<b class='flag-5'>結(jié)構(gòu)</b>安全

    光庭信息榮獲AUTOSAR中國中心2025年度優(yōu)秀貢獻獎

    12月18日,“AUTOSAR中國中心2025年度獎項頒獎典禮暨答謝晚宴”在上海成功舉辦。繼去年榮獲“2024年度特別貢獻獎”后,光庭信息憑借AUTOSAR組織及中國區(qū)域發(fā)展的持續(xù)
    的頭像 發(fā)表于 12-26 13:43 ?426次閱讀

    東軟睿馳榮獲AUTOSAR中國中心2025年度卓越貢獻獎

    近日,AUTOSAR 中國中心在上海舉辦2025第四季度中國用戶組交流會暨2025年度獎項頒獎典禮,東軟睿馳憑借推動AUTOSAR標準中國市場應(yīng)用落地、助力全球標準協(xié)同、開展技術(shù)培訓(xùn)與行業(yè)交流
    的頭像 發(fā)表于 12-26 13:10 ?409次閱讀

    如何實現(xiàn)安全的AUTOSAR通信棧

    。未經(jīng)保護的通信鏈路可能面臨數(shù)據(jù)篡改、重放攻擊及冒充攻擊等風險,危及車輛功能的正確性和用戶安全。因此,AUTOSAR架構(gòu)建立完備的通信安全機制,已成為行業(yè)共識與技術(shù)剛需。
    的頭像 發(fā)表于 09-08 16:43 ?1238次閱讀

    RT-Thread睿賽德正式加入AUTOSAR 組織,成為開發(fā)合作伙伴!

    近日,AUTOSAR宣布RT-Thread睿賽德已正式加入AUTOSAR組織成為開發(fā)合作伙伴!AUTOSAR組織AUTOSAR組織的本質(zhì)是一個開發(fā)合作伙伴關(guān)系。作為全球汽車開放式系統(tǒng)架
    的頭像 發(fā)表于 09-04 17:07 ?1307次閱讀
    RT-Thread睿賽德正式加入<b class='flag-5'>AUTOSAR</b> 組織,成為開發(fā)合作伙伴!

    知識分享 | 使用MXAM進行AUTOSAR模型的靜態(tài)分析:Embedded Coder與TargetLink模型

    知識分享知識分享欄目中,我們會定期與讀者分享來自MES模賽思的基于模型的軟件開發(fā)相關(guān)Know-How干貨,關(guān)注公眾號,隨時掌握基于模型的軟件設(shè)計的技術(shù)知識。使用MXAM進行AUTOSAR模型的靜態(tài)
    的頭像 發(fā)表于 08-27 10:04 ?722次閱讀
    知識分享 | 使用MXAM進行<b class='flag-5'>AUTOSAR</b>模型的靜態(tài)分析:Embedded Coder與TargetLink模型

    求助,關(guān)于TLE9883 user_nvm_sector_erase的問題求解

    我正在嘗試測試用于擦除和寫入閃存不同部分的 NVM API 函數(shù)。我從 FLASH0 運行代碼。當我嘗試使用 user_nvm_page_erase 函數(shù)并傳入 0x12002000( FLASH1
    發(fā)表于 08-15 06:05

    從手寫代碼到AUTOSAR工具鏈:J1939Tp應(yīng)用篇

    J1939Tp是我學(xué)習AUTOSAR CP諸多BSW模塊的起點,其分層架構(gòu)完美體現(xiàn)了AUTOSAR規(guī)范的精髓,掌握J1939Tp有助于深入理解通信(COM)相關(guān)模塊的程序執(zhí)行過程。
    的頭像 發(fā)表于 07-10 16:37 ?5164次閱讀
    從手寫代碼到<b class='flag-5'>AUTOSAR</b>工具鏈:J1939Tp應(yīng)用篇

    Vector PREEvision 10.19支持AUTOSAR 24-11版本

    PREEvision 10.19現(xiàn)已支持最新的AUTOSAR版本,并通過時序圖簡化行為描述。 PREEvision 10.19:支持AUTOSAR 24-11與改進的時序圖 PREEvision
    的頭像 發(fā)表于 06-14 11:47 ?1025次閱讀

    東軟睿馳亮相第16屆AUTOSAR開放大會

    此前,5月27日-28日,第16屆AUTOSAR開放大會(16th AUTOSAR Open Conference)比利時布魯日成功召開,本屆大會以“AUTOSAR solution
    的頭像 發(fā)表于 06-06 16:07 ?1628次閱讀

    光庭信息亮相第16屆AUTOSAR開放大會

    此前,當?shù)貢r間5月27日至28日,第16屆AUTOSAR開放大會 (AUTOSAR Open Conference)比利時布魯日會議中心隆重舉行。
    的頭像 發(fā)表于 05-30 15:09 ?962次閱讀

    MCU存儲器層次結(jié)構(gòu)解析

    ? ? ? ?MCU的存儲器層次結(jié)構(gòu)通過整合不同性能與功能的存儲單元,優(yōu)化系統(tǒng)效率并滿足多樣化場景需求。其核心架構(gòu)可分為以下層次: 一、寄存器層(最高速) 定位?:集成于CPU內(nèi)核,
    的頭像 發(fā)表于 05-09 10:21 ?790次閱讀

    RT-Thread睿賽德正式成為AUTOSAR組織合作伙伴,攜手推動智能汽車技術(shù)新發(fā)展| 新聞速遞

    近日,上海睿賽德電子科技有限公司正式成為AUTOSAR(AUTomotiveOpenSystemARchitecture)組織的合作伙伴。RT-Thread睿賽德將與核心開發(fā)伙伴緊密合作,參與制
    的頭像 發(fā)表于 04-10 21:26 ?1276次閱讀
    RT-Thread睿賽德正式成為<b class='flag-5'>AUTOSAR</b>組織合作伙伴,攜手推動智能汽車技術(shù)新發(fā)展| 新聞速遞

    S32KAUTOSAR中使用CAT1 ISR,是否需要執(zhí)行上下文切換?

    如果我們 AUTOSAR 中使用 CAT1 ISR,是否需要執(zhí)行上下文切換?另外,是否需要返回指令才能跳回到作系統(tǒng)?您有沒有帶有 CAT1 ISR 的 S32K3x4 微控制器的示例?
    發(fā)表于 03-27 07:34