哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

NvM在A(yíng)UTOSAR中的層次結(jié)構(gòu)

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

掃碼添加小助手

加入工程師交流群

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

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

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

1.NvM在A(yíng)UTOSAR中的層次結(jié)構(gòu)

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

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

NVM在A(yíng)UTOSAR中是獨(dú)立于硬件的,通過(guò)底層接口訪(fǎng)問(wèn)外部EEPROM或模擬成EEPROM的DataFlash。為了適用于所有的車(chē)載系統(tǒng),其具有高度可擴(kuò)展性和可靠性。

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

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

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

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

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

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

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

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

3.NvM Basic Storage Object

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

名稱(chēng)

描述

Basic Storage Object

Basic Storage Object是一個(gè)最小的NVRAM block,多個(gè)Basic Storage Objects可以組成一個(gè)NVRAM Block。

NVRAM Block

NVRAM Block是管理和存儲(chǔ) NV Block所需的整個(gè)結(jié)構(gòu)

NV data

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

Block Management Type

這個(gè)是NVRAM Block的類(lèi)型,它取決于強(qiáng)制/可選Basic Storage ObjectNVRAM Block的(可配置的)單獨(dú)組成以及該 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的,這個(gè)作為附加信息包含在NV Block中。

Administrative Block

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

用一個(gè)圖來(lái)表達(dá)就是這樣的

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

圖上得這幾個(gè)block,用圖示來(lái)看可能會(huì)更容易理解

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

4.NvM Block Management Type

NVM在A(yíng)UTOSAR中的功能是挺完善的,要滿(mǎn)足車(chē)載系統(tǒng)的各種需求,例如數(shù)據(jù)塊錯(cuò)了怎么辦等等,都考慮周全。

NvM支持三種類(lèi)型實(shí)現(xiàn):Native、Redundant和Dataset。那么這三種類(lèi)型是怎樣的呢?

我做了個(gè)表,他們包含了哪幾種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
    這種最簡(jiǎn)單,平時(shí)大多情況下,我們用的就是這種

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

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

  2. Redundant

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

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

  3. Dataset

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

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

5.NVRAM Manager API 配置類(lèi)

講到NvM的API,其實(shí)NvM API分三類(lèi):

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

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

Class1:特別是對(duì)于硬件資源非常有限的匹配系統(tǒng),此API配置類(lèi)僅提供最少的一組

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(...)

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

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

Request Types

Characteristics of Request Types

Type 1:

- NvM_SetDataIndex (...)

- NvM_GetDataIndex (...)

- NvM_SetBlockProtection (...)

- NvM_GetErrorStatus(...)

- NvM_SetRamBlockStatus(...)

n同步請(qǐng)求

n作用于一個(gè)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異步請(qǐng)求(通過(guò)callbackpolling返回結(jié)果)

n作用于一個(gè)NVRAM Block

n通過(guò)NVRAM manager task處理

n適用于所有SWC

Type 3:

- NvM_ReadAll(...)

- NvM_WriteAll(...)

- NvM_CancelWriteAll(...)

- NvM_ValidateAll(...)

n異步請(qǐng)求(通過(guò)callbackpolling返回結(jié)果

n作用于具有常駐RAM dataNVRAM Block

Type 4:

- NvM_Init(...)

n同步請(qǐng)求

n基本初始化

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

6. NvM Descriptor Table

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

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

這個(gè)最好對(duì)著代碼去看更好理解。

7. 總結(jié)

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

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

審核編輯 :李倩


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

    關(guān)注

    11

    文章

    406

    瀏覽量

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

    關(guān)注

    1

    文章

    142

    瀏覽量

    27899

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    使用S32K344_0_2_55.0版本HSE(fullmem)無(wú)法進(jìn)行re-format the NVM and RAM catalogs是怎么回事?

    S32K344芯片上安裝S32K344_0_2_55.0版本HSE固件后,HSE固件版本號(hào)可以正確讀取出來(lái)。但是進(jìn)行re-format the NVM and RAM catalogs的操作
    發(fā)表于 04-20 07:41

    是否有任何可用于多核(非 Autosar)S32K388示例?

    我正在嘗試S32K388多核,是否有任何可用于多核(非 Autosar)S32K388示例?
    發(fā)表于 04-14 08:49

    ETAS如何打破AUTOSAR的固有偏見(jiàn)

    AUTOSAR Classic 常被詬病為復(fù)雜且緩慢——但這種看法是否合理?ETAS 首席產(chǎn)品經(jīng)理 Darren Buttle 《Automotive World》闡述了 RTA-CAR 如何直
    的頭像 發(fā)表于 04-11 09:10 ?439次閱讀

    RT-Thread亮相AUTOSAR中國(guó)日:國(guó)產(chǎn)操作系統(tǒng)與AUTOSAR標(biāo)準(zhǔn)融合的產(chǎn)業(yè)化實(shí)踐

    近日,2026第七屆軟件定義汽車(chē)論壇暨AUTOSAR中國(guó)日上,RT-Thread創(chuàng)始人兼睿賽德CEO熊譜翔先生發(fā)表題為《賦能SDV新生態(tài):RT-ThreadRTOS與AUTOSAR融合的產(chǎn)業(yè)化路徑
    的頭像 發(fā)表于 03-23 19:24 ?453次閱讀
    RT-Thread亮相<b class='flag-5'>AUTOSAR</b>中國(guó)日:國(guó)產(chǎn)操作系統(tǒng)與<b class='flag-5'>AUTOSAR</b>標(biāo)準(zhǔn)融合的產(chǎn)業(yè)化實(shí)踐

    S9KEAZ64有沒(méi)有官方的MCAL文件以及有沒(méi)有全套的AUTOSAR開(kāi)發(fā)工具鏈?

    使用NXP S9KEAZ64AMLH開(kāi)發(fā)一個(gè)AUTOSAR + ISO26262的項(xiàng)目,但是沒(méi)有搜索到對(duì)應(yīng)的MCAL文件,想知道官方是否有對(duì)應(yīng)的MCAL文件 還有是否有AUTOSAR開(kāi)發(fā)全套工具鏈,包括SWC+ECU開(kāi)發(fā),如果有的話(huà),幫忙說(shuō)明一下,謝謝。
    發(fā)表于 03-19 07:12

    i.MX93 ELE 密鑰存儲(chǔ)持久密鑰生成 NVM 錯(cuò)誤怎么辦?

    ”,評(píng)級(jí)為“HSM_NVM_ERROR”。 這與僅生成持久密鑰失敗的事實(shí)一致:生成臨時(shí)密鑰工作正常。 因此,我的問(wèn)題是:為什么 ELE 抱怨 NVM 錯(cuò)誤? 我是否缺少確保 ELE
    發(fā)表于 03-18 07:04

    PG-1000脈沖發(fā)生器非易失性存儲(chǔ)器(NVM)及MOSFET測(cè)試的應(yīng)用

    )主流NVM類(lèi)型 類(lèi)型結(jié)構(gòu)與原理 STT-MRAM核心為磁隧道結(jié)(MTJ),含兩層鐵磁體與中間絕緣體。電流流經(jīng)參考層形成極化電流,通過(guò)自旋轉(zhuǎn)移矩改變自由層磁矩方向,以不同導(dǎo)電性存儲(chǔ)數(shù)據(jù) PCM以硫系
    發(fā)表于 03-09 14:40

    光庭信息榮獲AUTOSAR中國(guó)中心2025年度優(yōu)秀貢獻(xiàn)獎(jiǎng)

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

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

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

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

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

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

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

    Vector PREEvision 10.19支持AUTOSAR 24-11版本

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

    東軟睿馳亮相第16屆AUTOSAR開(kāi)放大會(huì)

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

    光庭信息亮相第16屆AUTOSAR開(kāi)放大會(huì)

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

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

    ? ? ? ?MCU的存儲(chǔ)器層次結(jié)構(gòu)通過(guò)整合不同性能與功能的存儲(chǔ)單元,優(yōu)化系統(tǒng)效率并滿(mǎn)足多樣化場(chǎng)景需求。其核心架構(gòu)可分為以下層次: 一、寄存器層(最高速) 定位?:集成于CPU內(nèi)核,
    的頭像 發(fā)表于 05-09 10:21 ?915次閱讀
    广丰县| 蓝田县| 哈尔滨市| 抚远县| 鄂州市| 龙州县| 高雄市| 乾安县| 开鲁县| 乌审旗| 镇康县| 岐山县| 潍坊市| 芜湖县| 兴化市| 通化市| 宣武区| 吐鲁番市| 务川| 克拉玛依市| 宝鸡市| 将乐县| 彰武县| 黄大仙区| 云浮市| 新平| 察雅县| 鹤岗市| 大渡口区| 烟台市| 临漳县| 内乡县| 沁水县| 宁强县| 广东省| 牙克石市| 宽城| 方城县| 北京市| 延吉市| 安西县|