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

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

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

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

NVRAM Manager(NVM)模塊詳細(xì)介紹

工程師鄧生 ? 來源:汽車電子嵌入式 ? 作者:Tomas Li ? 2022-09-20 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

存儲(chǔ)協(xié)議棧負(fù)責(zé)ECU中非易失性數(shù)據(jù)的存儲(chǔ)管理。存儲(chǔ)協(xié)議棧的分享包括NVM、MemI、Ea、Fea、Eep、Fls模塊的詳細(xì)介紹及代碼分析,具體的項(xiàng)目實(shí)戰(zhàn)請(qǐng)關(guān)注本號(hào)的后續(xù)文章,本篇為NVRAM Manager(NVM)模塊詳細(xì)介紹篇(三)。

eb3a684a-387d-11ed-ba43-dac502259ad0.png

正文

4.API詳解

如下表所示,NVM的API接口主要分為幾大類型。

eb8f2a2e-387d-11ed-ba43-dac502259ad0.png

4.1同步請(qǐng)求函數(shù) Synchronous requests

4.1.1NvM_Init

函數(shù)原型:

void NvM_Init(

const NvM_ConfigType* ConfigPtr

)

ec092202-387d-11ed-ba43-dac502259ad0.png

函數(shù)參數(shù):

ConfigPtr:指向選定配置集的指針。

函數(shù)描述:用來重置所有內(nèi)部變量的服務(wù)。

函數(shù)NvM_Init應(yīng)將所有內(nèi)部變量,例如隊(duì)列、請(qǐng)求標(biāo)志、狀態(tài)機(jī),重置為其初始值。它應(yīng)在內(nèi)部發(fā)出“初始化完成”的信號(hào),例如,以啟用作業(yè)處理和隊(duì)列管理。

函數(shù)NvM_Init不應(yīng)修改永久RAM塊內(nèi)容或調(diào)用顯式同步回調(diào),因?yàn)檫@將在NvM_ReadAll上完成。

函數(shù)NvM_Init應(yīng)將NVM_BLOCK_DATASET類型的所有NVRAM塊的數(shù)據(jù)集索引設(shè)置為零。

函數(shù)NvM_Init不得初始化其他模塊(假設(shè)底層層已經(jīng)初始化)。

提示:耗時(shí)的NVRAM塊初始化和根據(jù)塊描述符設(shè)置應(yīng)該由NvM_ReadAll請(qǐng)求完成。

4.1.2 NvM_SetBlockProtection

函數(shù)原型:

Std_ReturnType NvM_SetBlockProtection(

NvM_BlockIdType BlockId,

boolean ProtectionEnabled

)

ec3a9b16-387d-11ed-ba43-dac502259ad0.png

函數(shù)返回值:

E_OK: The block was enabled/disabled as requested

E_NOT_OK: An error occured.

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

ProtectionEnabled:TRUE: Write protection shall be enabled

FALSE: Write protection shall be disabled

函數(shù)描述:用于設(shè)置/重置NV塊的寫入保護(hù)的服務(wù)。

功能NvM_SetBlockProtection通過在相應(yīng)的NVRAM塊的管理部分設(shè)置寫保護(hù)屬性,為相應(yīng)的NV塊設(shè)置/重置寫保護(hù)。

NvM模塊的環(huán)境應(yīng)在調(diào)用函數(shù)NvM_SetBlockProtection之前已初始化NvM模塊。

4.1.3 NvM_GetErrorStatus

函數(shù)原型:

Std_ReturnType NvM_GetErrorStatus(

NvM_BlockIdType BlockId,

NvM_RequestResultType* RequestResultPtr

)

ec77e3a4-387d-11ed-ba43-dac502259ad0.png

函數(shù)返回值:

E_OK:已成功讀取與塊相關(guān)的錯(cuò)誤/狀態(tài)信息。

E_NOT_OK:發(fā)生錯(cuò)誤。

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

函數(shù)描述:提供以下服務(wù)來讀取與塊相關(guān)的錯(cuò)誤/狀態(tài)信息。

函數(shù)NvM_GetErrorStatus應(yīng)在NVRAM塊的管理部分中讀取與塊相關(guān)的錯(cuò)誤/狀態(tài)信息。NVRAM塊的狀態(tài)/錯(cuò)誤信息應(yīng)由以前或當(dāng)前的異步請(qǐng)求來設(shè)置。

NvM模塊的環(huán)境應(yīng)在調(diào)用函數(shù)NvM_GetErrorStatus之前已初始化NvM模塊。

4.1.4 NvM_CancelJobs

函數(shù)原型:

Std_ReturnType NvM_CancelJobs(

NvM_BlockIdType BlockId

)

函數(shù)返回值:

E_OK:該作業(yè)已被成功地從隊(duì)列中刪除。

E_NOT_OK:在隊(duì)列中找不到該作業(yè)。

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

函數(shù)描述:服務(wù)取消所有等待NV塊的作業(yè)。

函數(shù)NvM_CancelJobs應(yīng)取消指定NV塊的隊(duì)列中所有待定的作業(yè)。如果被請(qǐng)求,則對(duì)已取消的塊的結(jié)果類型為NVM_REQ_CANCELED

當(dāng)前處理的作業(yè)將在NvM_CancelJobs調(diào)用之后繼續(xù)。

如果請(qǐng)求被接受,功能NvM_CancelJobs的工作應(yīng)提前將指定NVRAM塊的塊特定請(qǐng)求結(jié)果設(shè)置為NVM_REQ_CANCELED。

提示:目的只是在清理階段清空隊(duì)列,以防終止或重新啟動(dòng)分區(qū),以避免稍后結(jié)束作業(yè)通知。

4.2異步單塊請(qǐng)求 Asynchronous single block requests

4.2.1NvM_ReadBlock

函數(shù)原型:

Std_ReturnType NvM_ReadBlock(

NvM_BlockIdType BlockId,

void* NvM_DstPtr

)

函數(shù)返回值:

E_OK:請(qǐng)求已被接受。

E_NOT_OK:請(qǐng)求未被接受

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

NvM_DstPtr:指向RAM數(shù)據(jù)塊的指針

函數(shù)描述:將NV塊的數(shù)據(jù)復(fù)制到其相應(yīng)的RAM塊的服務(wù)。

函數(shù)NvM_ReadBlock將接管給定的參數(shù),將讀請(qǐng)求放入作業(yè)隊(duì)列中并返回。

4.2.2NvM_WriteBlock

函數(shù)原型:

Std_ReturnType NvM_WriteBlock(

NvM_BlockIdType BlockId,

const void* NvM_SrcPtr

)

函數(shù)返回值:

E_OK:請(qǐng)求已被接受。

E_NOT_OK:請(qǐng)求未被接受

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

NvM_SrcPtr:指向RAM數(shù)據(jù)塊的指針

函數(shù)描述:將RAM塊的數(shù)據(jù)復(fù)制到其相應(yīng)的NV塊的服務(wù)。

NvM_WriteBlock函數(shù)應(yīng)測(cè)試相應(yīng)RAM塊管理部分的NV塊的寫入保護(hù)屬性。如果出現(xiàn)故障,應(yīng)報(bào)告NVM_E_WRITE_PROTECTED/(在生產(chǎn)過程中)錯(cuò)誤。

4.2.3 NvMEraseNvBlock

函數(shù)原型:

Std_ReturnType NvM_EraseNvBlock(

NvM_BlockIdType BlockId

)

函數(shù)返回值:

E_OK:請(qǐng)求已被接受。

E_NOT_OK:請(qǐng)求未被接受

函數(shù)參數(shù):

BlockId:塊標(biāo)識(shí)符唯一地標(biāo)識(shí)一個(gè)NVRAM塊描述符。NVRAM塊描述符包含有關(guān)單個(gè)NVRAM塊的所有所需信息。

函數(shù)描述:要擦除NV塊的服務(wù)。

4.3異步多塊請(qǐng)求 Asynchronous multi block requests

4.3.1NvM_ReadAll

函數(shù)原型:

void NvM_ReadAll(

void

)

函數(shù)描述:?jiǎn)?dòng)一個(gè)多塊讀取請(qǐng)求。

多塊服務(wù)NvM_ReadAll應(yīng)提供兩種不同的功能:

-- 初始化所有NVRAM塊的管理數(shù)據(jù)

-- 將數(shù)據(jù)復(fù)制到永久RAM塊,或?yàn)橄鄳?yīng)配置的NVRAM塊調(diào)用顯式同步回調(diào)(NvM_ReadRamBlockFromNvm)。

函數(shù)NvM_ReadAll將向NvM模塊發(fā)出請(qǐng)求信號(hào)并返回。NVRAM Manager將延遲處理請(qǐng)求的ReadAll直到所有單個(gè)塊作業(yè)隊(duì)列為空。

4.3.2 NvM_WriteAll

函數(shù)原型:

void NvM_ReadAll(

void

)

函數(shù)描述:?jiǎn)?dòng)一個(gè)多塊寫入請(qǐng)求。

函數(shù)NvM_WriteAll的作業(yè)應(yīng)將永久RAM塊的內(nèi)容同步到它們相應(yīng)的NV塊上,或者在關(guān)閉時(shí)調(diào)用顯式同步回調(diào)(NvM_WriteRamBlockToNvm)。

如果NVRAM block ID 1(包含內(nèi)存布局的配置ID)被標(biāo)記為“在NvM_WriteAll期間寫入”,則NvM_WriteAll函數(shù)的作業(yè)將在最后一步(最后一次寫操作)寫入該block,以防止在寫操作過程中發(fā)生掉電故障時(shí)內(nèi)存布局不匹配。

函數(shù)NvM_WriteAll應(yīng)向NvM模塊發(fā)出請(qǐng)求信號(hào)并返回。NVRAM管理器應(yīng)延遲請(qǐng)求的處理,直到所有單個(gè)塊作業(yè)隊(duì)列為空。

4.3.2NvM_CancelWriteAll

函數(shù)原型:

void NvM_CancelWriteAll(

void

)

ecf252ec-387d-11ed-ba43-dac502259ad0.png

函數(shù)描述:

取消正在運(yùn)行的NvM_WriteAll請(qǐng)求。

4.4回調(diào)函數(shù)

4.4.1 NvM_JobEndNotification

函數(shù)原型:

void NvM_JobEndNotification(

void

)

函數(shù)描述:底層內(nèi)存抽象使用該函數(shù)表示作業(yè)結(jié)束,沒有錯(cuò)誤。

回調(diào)函數(shù)NvM_JobEndNotification被底層內(nèi)存抽象用來指示作業(yè)結(jié)束。

注:作業(yè)結(jié)束時(shí)關(guān)于內(nèi)存抽象的通知成功:

- -- Read finished & OK

- -- Write finished & OK

- -- Erase finished & OK

這個(gè)例程可以在中斷上下文中被調(diào)用,這取決于調(diào)用函數(shù)。所有內(nèi)存抽象模塊都應(yīng)該配置為使用相同的模式(回調(diào)/輪詢)。

如果通過NvMPollingMode禁用了輪詢模式,NvM模塊只能提供回調(diào)函數(shù)NvM_JobEndNotification。NvM_JobEndNotification功能受常用配置參數(shù)的影響。

4.5期望的接口 Expected Interfaces

4.5.1必需的接口

ed52c3c0-387d-11ed-ba43-dac502259ad0.png

4.5.2可配置的接口

Single block job end notification

函數(shù)原型:

Std_ReturnType NvM_SingleBlockCallbackFunction(

uint8 ServiceId,

NvM_RequestResultType JobResult

)

函數(shù)返回值:

E_OK:回調(diào)函數(shù)已成功處理

任何其他:回調(diào)函數(shù)已處理失敗

函數(shù)參數(shù):

ServiceId: NVRAM Manager服務(wù)的唯一服務(wù)ID。

JobResult: 覆蓋以前處理的單塊作業(yè)的請(qǐng)求結(jié)果。

函數(shù)描述:每個(gè)塊回調(diào)例程通知上層異步單塊請(qǐng)求已經(jīng)完成。

Multi block job end notification

函數(shù)原型:

void NvM_MultiBlockCallbackFunction(

uint8 ServiceId,

NvM_RequestResultType JobResult

)

函數(shù)參數(shù):

ServiceId: NVRAM Manager服務(wù)的唯一服務(wù)ID。

JobResult: 覆蓋以前處理的單塊作業(yè)的請(qǐng)求結(jié)果。

函數(shù)描述:公共回調(diào)例程,通知上層一個(gè)異步的多塊請(qǐng)求已經(jīng)完成。

Callback function for block initialization

函數(shù)原型:

Std_ReturnType InitBlockCallbackFunction(

void

)

函數(shù)返回值:

E_OK:回調(diào)函數(shù)已成功處理

任何其他:回調(diào)函數(shù)已處理失敗

函數(shù)描述:每個(gè)塊回調(diào)例程,當(dāng)需要在RAM中恢復(fù)默認(rèn)數(shù)據(jù)時(shí),NvM模塊將調(diào)用該塊回調(diào)例程,即使配置了ROM塊。

注意:在這里,如果沒有配置ROM塊,應(yīng)用程序應(yīng)該將默認(rèn)數(shù)據(jù)復(fù)制到RAM塊,并且/或者它可以設(shè)置一些標(biāo)志來知道默認(rèn)數(shù)據(jù)已經(jīng)恢復(fù)。

5.服務(wù)接口 Service Interfaces

本章是對(duì)NvM模塊規(guī)范的補(bǔ)充。盡管該規(guī)范的其他部分定義了相應(yīng)的基本軟件模塊的行為和c接口,但本章以SWC模板的形式指定了相應(yīng)的AUTOSAR服務(wù)。這里描述的接口將在VFB上可見,并用于生成應(yīng)用程序軟件和NvM模塊之間的RTE。

5.1 Client-Server-Interfaces

5.1.1 NvM_Admin

eea139c8-387d-11ed-ba43-dac502259ad0.png

eed1563a-387d-11ed-ba43-dac502259ad0.png

5.1.2 NvM_Mirror

efac1374-387d-11ed-ba43-dac502259ad0.png

f04ef65c-387d-11ed-ba43-dac502259ad0.png

f072a476-387d-11ed-ba43-dac502259ad0.png

f1948a04-387d-11ed-ba43-dac502259ad0.png

5.1.3 NvM_NotifyInitBlock

f1c9084c-387d-11ed-ba43-dac502259ad0.png

5.1.4 NvM_NotifyJobFinished

f1f55bd6-387d-11ed-ba43-dac502259ad0.png

5.1.5 NvM_Service

f23f3dfa-387d-11ed-ba43-dac502259ad0.png

5.2 Implementation Data Types

5.2.1 NvM_RequestResultType

f2a48c82-387d-11ed-ba43-dac502259ad0.png

f2cf62c2-387d-11ed-ba43-dac502259ad0.png

5.2.2 NvM_BlockIdType

f30d0fc8-387d-11ed-ba43-dac502259ad0.png

f33cea40-387d-11ed-ba43-dac502259ad0.png

5.2.3 ConstVoidPtr

f37f34ea-387d-11ed-ba43-dac502259ad0.png

f5b07bd4-387d-11ed-ba43-dac502259ad0.png

5.3 Ports

5.3.1 NvM_PAdmin_{Block}

f5eb7eb4-387d-11ed-ba43-dac502259ad0.png

5.3.2 NvM_PM_{Block}

f625df8c-387d-11ed-ba43-dac502259ad0.png

f67365d6-387d-11ed-ba43-dac502259ad0.png

5.3.3 NvM_PNIB_{Block}

f6e6aa8c-387d-11ed-ba43-dac502259ad0.png

5.3.4 NvM_PNJF_{Block}

f70f2606-387d-11ed-ba43-dac502259ad0.png

f79d2c80-387d-11ed-ba43-dac502259ad0.png

5.3.5 NvM_PS_{Block}

f7d0f3f8-387d-11ed-ba43-dac502259ad0.png

6.NVM配置

NvMBlockDescriptor: 容器的管理結(jié)構(gòu),配置組成一個(gè)給定的NVRAM塊管理類型。它的多樣性描述了配置的NVRAM塊的數(shù)量,每一個(gè)塊需要配置。NVRAM塊描述符壓縮在NVRAM塊描述符表中。

NvMCommon: 通用配置選項(xiàng)的容器。配置NVM模塊的公共屬性。

NvmDemEventParameterRefs: DemEventParameter元素的引用容器,當(dāng)發(fā)生相應(yīng)的錯(cuò)誤時(shí),應(yīng)該使用API Dem_SetEventStatus調(diào)用該元素。EventId取自引用的DemEventParameter的DemEventId符號(hào)值。標(biāo)準(zhǔn)化錯(cuò)誤在此容器中提供,可以通過特定于供應(yīng)商的錯(cuò)誤引用進(jìn)行擴(kuò)展。實(shí)際項(xiàng)目中基本不配置。

f7f72cc6-387d-11ed-ba43-dac502259ad0.png

6.1NvMCommon

NvMApiConfigClass: 預(yù)處理器開關(guān),啟用一些與NVM API配置類相關(guān)的API調(diào)用。

NvMBswMMultiBlockJobStatusInformation: 該參數(shù)指定是否告知BswM多塊作業(yè)的當(dāng)前狀態(tài)。

True:如果ReadAll和WriteAll被啟動(dòng)、完成、取消,調(diào)用BswM_NvM_CurrentJobMode

False:完全不通知BswM

NvMCompiledConfigId: NV內(nèi)存布局的配置ID。這個(gè)配置ID應(yīng)該被發(fā)布,例如,一個(gè)SW-C應(yīng)該有可能把它寫入NV內(nèi)存。

NvMCrcNumOfBytes: 如果為至少一個(gè)NVRAM塊配置了CRC校驗(yàn),則該參數(shù)定義了一個(gè)作業(yè)處理周期內(nèi)需要處理的最大字節(jié)數(shù)。

NvMDatasetSelectionBits: 定義在內(nèi)存硬件抽象接口內(nèi)為NVRAM塊的特定數(shù)據(jù)集尋址時(shí)應(yīng)使用的最低有效位數(shù)。

0 . .8:用于數(shù)據(jù)集或冗余塊尋址的位數(shù)。

0:不配置數(shù)據(jù)集或冗余NVRAM塊,不需要選擇位。

1:配置了冗余NVRAM塊,但沒有配置dataset NVRAM塊

NvMDrvModeSwitch: 在執(zhí)行NvM_ReadAll和NvM_WriteAll時(shí),預(yù)處理器開關(guān)使內(nèi)存驅(qū)動(dòng)切換到快速模式。

true: Fast mode enabled.

false: Fast mode disabled.

NvMDynamicConfiguration: 預(yù)處理器開關(guān),啟用由NvM_ReadAll請(qǐng)求處理的動(dòng)態(tài)配置管理。

true: Dynamic configuration management handling enabled.

false: Dynamic configuration management handling disabled.

該參數(shù)會(huì)影響所有與ID為1的Block相關(guān)的NvM進(jìn)程,以及所有與抗更改軟件相關(guān)的NvM進(jìn)程。如果關(guān)閉了Dynamic Configuration, Block 1不能被NvM使用

NvMJobPrioritization: 預(yù)處理器開關(guān),以啟用作業(yè)優(yōu)先級(jí)處理

true: Job prioritization handling enabled.

false: Job prioritization handling disabled.

NvMMultiBlockCallback: 每個(gè)異步多塊請(qǐng)求終止時(shí)調(diào)用的公共回調(diào)例程的入口地址

NvMPollingMode: 預(yù)處理器開關(guān),以啟用/禁用NVRAM管理器中的輪詢模式,同時(shí)禁用/啟用底層可使用的回調(diào)函數(shù)

NvMRepeatMirrorOperations: 定義應(yīng)用程序在延遲當(dāng)前作業(yè)之前向NvM模塊的鏡像復(fù)制數(shù)據(jù)或從鏡像復(fù)制數(shù)據(jù)的重試次數(shù)。

NvMSetRamBlockStatusApi: 預(yù)處理器開關(guān),以啟用API NvM_SetRamBlockStatus。

NvMSizeImmediateJobQueue: 定義直接優(yōu)先級(jí)作業(yè)隊(duì)列的隊(duì)列條目數(shù)。如果NVM_JOB_PRIORITIZATION被關(guān)閉,則該參數(shù)應(yīng)超出作用范圍。

NvMSizeStandardJobQueue: 定義標(biāo)準(zhǔn)作業(yè)隊(duì)列的隊(duì)列條目數(shù)。

f847c8ac-387d-11ed-ba43-dac502259ad0.png

f8f876e8-387d-11ed-ba43-dac502259ad0.png

6.2NvMBlockDescriptor

NvMBlockCrcType: 定義NVRAM塊的CRC數(shù)據(jù)寬度。默認(rèn)值:NVM_CRC16,即當(dāng)NVM_BLOCK_USE_CRC==為true時(shí),將使用CRC16

NvMBlockHeaderInclude: 定義頭文件,其中NVRAM塊的所有者擁有永久RAM數(shù)據(jù)塊、ROM數(shù)據(jù)塊(如果配置)和每個(gè)配置回調(diào)的回調(diào)函數(shù)原型的聲明。

如果沒有配置永久RAM塊、ROM塊或回調(diào)函數(shù),則該配置參數(shù)將被忽略。

NvMBlockManagementType: 定義NVRAM塊的塊管理類型。

NvMBlockUseAutoValidation: 定義在關(guān)閉階段是否自動(dòng)驗(yàn)證RAM塊。

True:使用了自動(dòng)驗(yàn)證機(jī)制。

False:沒有使用自動(dòng)校驗(yàn)機(jī)制。

NvMBlockUseCrc: 定義NVRAM塊的CRC使用情況,即在RAM和NV內(nèi)存中保留用于CRC的內(nèi)存空間。

true:該NVRAM塊將使用CRC。

false:該NVRAM塊不使用CRC。

NvMBlockUseCRCCompMechanism: 定義在寫作業(yè)期間是否將RAM塊的CRC與最后一個(gè)成功讀或?qū)懽鳂I(yè)期間計(jì)算的CRC進(jìn)行比較。

True:使用比較機(jī)制,

False:沒有使用比較機(jī)制

NvMBlockUseSetRamBlockStatus: 定義改塊是否使用NvMSetRamBlockStatusApi。

注意:如果NvMSetRamBlockStatusApi被禁用,這個(gè)配置參數(shù)將被忽略。

true:調(diào)用該RAM塊的NvMSetRamBlockStatus將設(shè)置該RAM塊的狀態(tài)。

false:該RAM塊的NvMSetRamBlockStatus調(diào)用將被忽略。

NvMBlockUseSyncMechanism: 定義NV塊是否使用帶有RAM鏡像的顯式同步機(jī)制和用于向NvM模塊的RAM鏡像傳輸數(shù)據(jù)的回調(diào)例程。如果使用同步機(jī)制,則為True,否則為false。

NvMBlockWriteProt: 定義NV塊的初始寫保護(hù)

true:啟用塊初始寫保護(hù)。

false:關(guān)閉塊初始寫保護(hù)。

NvMBswMBlockStatusInformation: 此參數(shù)指定是否通知BswM指定塊的當(dāng)前狀態(tài)。

True:在更改時(shí)調(diào)用BswM_NvM_CurrentBlockMode

Fasle:不通知BswM

NvMCalcRamBlockCrc: 定義永久RAM塊或NVRAM塊的CRC(重)計(jì)算,它們被配置為使用顯式同步機(jī)制。

true:這個(gè)永久RAM塊將(重新)計(jì)算CRC。

false:不會(huì)(重新)為這個(gè)永久RAM塊計(jì)算CRC。

NvMInitBlockCallback: 塊特定回調(diào)例程的入口地址,如果沒有ROM數(shù)據(jù)可用于NVRAM塊的初始化,將調(diào)用該回調(diào)例程。如果沒有配置,則不需要調(diào)用特定的回調(diào)例程來初始化具有默認(rèn)數(shù)據(jù)的NVRAM塊。

NvMMaxNumOfReadRetries: 定義讀重試的最大次數(shù)。

NvMMaxNumOfWriteRetries: 定義一個(gè)NVRAM塊的寫重試的最大次數(shù)。無論配置如何,對(duì)于請(qǐng)求NvM_WriteAll和NvM_WriteBlock處理的每個(gè)塊,都會(huì)強(qiáng)制執(zhí)行一致性檢查(可能還有寫重試)。

NvMNvBlockLength: 以字節(jié)為單位定義NV塊數(shù)據(jù)長(zhǎng)度。

NvMNvBlockNum: 根據(jù)給定的塊管理類型定義連續(xù)區(qū)域內(nèi)多個(gè)NV塊的數(shù)量。1-255用于配置塊管理類型為nvm_block_datasset .1的NVRAM塊配置塊管理類型為NVM_BLOCK_NATIVE的NVRAM 2配置塊管理類型為nvm_block_redundancy的NVRAM

NvMNvramBlockIdentifier: 通過唯一塊標(biāo)識(shí)符標(biāo)識(shí)NVRAM塊。實(shí)現(xiàn)類型:NvM_BlockIdType。

min = 2 max = 2^(16- NVM_DATASET_SELECTION_BITS)-1預(yù)留NVRAM塊id:

0 ->通過NvM_GetErrorStatus獲得多塊請(qǐng)求結(jié)果

1 ->冗余NVRAM塊,保存配置ID(生成工具應(yīng)該檢查該塊從類型、CRC和大小角度正確配置)

NvMNvramDeviceId: 定義NVRAM塊所在的NVRAM設(shè)備ID。

計(jì)算公式: value = TargetBlockReference.[Ea/Fee]BlockConfiguration.[Ea/Fee]DeviceIndex

NvMRamBlockDataAddress: 定義RAM塊數(shù)據(jù)的起始地址。如果不配置,則沒有永久RAM數(shù)據(jù)塊可用于所選的塊管理類型。

NvMReadRamBlockFromNvCallback: 塊特定回調(diào)例程的入口地址,為了讓應(yīng)用程序?qū)?shù)據(jù)從NvM模塊的鏡像復(fù)制到RAM塊,需要調(diào)用該回調(diào)例程。實(shí)現(xiàn)類型:Std_ReturnType

E_OK:拷貝成功

E_NOT_OK:復(fù)制不成功,將再次調(diào)用回調(diào)例程

NvMResistantToChangedSw: 定義一個(gè)NVRAM塊是否應(yīng)該被處理為抵抗配置更改。如果在配置時(shí)沒有可用的缺省數(shù)據(jù),則應(yīng)用程序應(yīng)負(fù)責(zé)提供缺省初始化數(shù)據(jù)。在這種情況下,應(yīng)用程序必須使用NvM_GetErrorStatus()來區(qū)分第一次初始化和損壞的數(shù)據(jù)。

true: NVRAM塊抵抗更改的軟件。

false: NVRAM塊不抵抗更改的軟件。

NvMRomBlockDataAddress: 定義ROM塊數(shù)據(jù)的起始地址。如果不配置,則所選的塊管理類型沒有可用的ROM塊。

NvMBlockDescriptor: 根據(jù)給定的塊管理類型定義連續(xù)區(qū)域中的多個(gè)ROM塊的數(shù)量。0 ~ 254用于配置塊管理類型為NVM_BLOCK_DATASET的NVRAM塊。

0-1配置塊管理類型為NVM_BLOCK_NATIVE的NVRAM塊0-1配置塊管理類型為nvm_block_redundancy的NVRAM塊。

NvMSelectBlockForFirstInitAll: 定義一個(gè)塊是否由NvM_FirstInitAll處理。即使沒有永久RAM和/或顯式同步,也可以配置塊被處理。

TRUE: block將被NvM_FirstInitAll處理

FALSE:塊不被NvM_FirstInitAll處理

NvMSelectBlockForReadAll: 定義在NvM_ReadAll期間是否處理NVRAM塊。此配置參數(shù)僅對(duì)配置為具有永久RAM塊或配置為使用顯式同步機(jī)制的NVRAM塊有影響。

true: NVRAM塊將由NvM_ReadAll處理

false: NvM_ReadAll不處理NVRAM塊

NvMSelectBlockForWriteAll: 定義在NvM_WriteAll期間是否處理NVRAM塊。此配置參數(shù)僅對(duì)配置為具有永久RAM塊或配置為使用顯式同步機(jī)制的NVRAM塊有影響。

true: NVRAM塊將由NvM_WriteAll處理

false: NvM_WriteAll不處理NVRAM塊

NvMSingleBlockCallback: 塊特定回調(diào)例程的入口地址,該例程應(yīng)在每個(gè)異步單個(gè)塊請(qǐng)求終止時(shí)調(diào)用

NvMStaticBlockIDCheck: 定義是否啟用靜態(tài)塊ID檢查。

false:禁用靜態(tài)塊ID檢查。

true:啟用靜態(tài)塊ID檢查。

NvMWriteBlockOnce: 定義首次寫后的寫保護(hù)。NVRAM管理器會(huì)在第一次寫入NV塊之后設(shè)置寫保護(hù)位,或者在對(duì)NV塊進(jìn)行讀取時(shí),如果該塊已經(jīng)寫入并且檢測(cè)到它是有效的和一致的,那么NVRAM管理器就會(huì)設(shè)置寫保護(hù)位。

true:定義首次寫后的寫保護(hù)。

false:定義禁用首次寫后的寫保護(hù)。

NvMWriteRamBlockToNvCallback: 塊特定回調(diào)例程的入口地址,為了讓應(yīng)用程序?qū)?shù)據(jù)從RAM塊復(fù)制到NvM模塊的鏡像,需要調(diào)用該回調(diào)例程。實(shí)現(xiàn)類型:Std_ReturnType

E_OK:拷貝成功

E_NOT_OK:復(fù)制不成功,將再次調(diào)用回調(diào)例程

NvMWriteVerification: 定義是否啟用寫驗(yàn)證。

false:關(guān)閉寫校驗(yàn)。

true:啟用寫校驗(yàn)功能。

f950ac6e-387d-11ed-ba43-dac502259ad0.png

f9cf1f40-387d-11ed-ba43-dac502259ad0.png

fa006d84-387d-11ed-ba43-dac502259ad0.png




審核編輯:劉清

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

    關(guān)注

    10

    文章

    398

    瀏覽量

    23643
  • NVRAM
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    11844
  • API接口
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    11245

原文標(biāo)題:AUTOSAR存儲(chǔ)協(xié)議棧-- NVRAM Manager 模塊介紹(三)

文章出處:【微信號(hào):汽車電子嵌入式,微信公眾號(hào):汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    M41ST85W:集實(shí)時(shí)時(shí)鐘、微處理器與NVRAM管理于一身的芯片

    M41ST85W:集實(shí)時(shí)時(shí)鐘、微處理器與NVRAM管理于一身的芯片 在電子設(shè)計(jì)領(lǐng)域,一款功能全面且性能穩(wěn)定的芯片往往能為項(xiàng)目帶來事半功倍的效果。M41ST85W就是這樣一款值得關(guān)注的芯片,它集實(shí)時(shí)
    的頭像 發(fā)表于 03-02 16:55 ?500次閱讀

    德思特應(yīng)用 | 突破10ns脈沖限制:德思特脈沖發(fā)生器如何解決NVM測(cè)試的超快激勵(lì)與高保真挑戰(zhàn)

    NVM測(cè)試亟需超10ns窄脈沖、高幅值及高保真度激勵(lì)。德思特脈沖發(fā)生器以5Vpp廣幅和70ps超快邊沿,完美解決PCM等器件的快速SET/RESET需求,提供高性能NVM測(cè)試方案。
    的頭像 發(fā)表于 01-27 10:21 ?131次閱讀

    AMD Power Design Manager 2025.2版本現(xiàn)已發(fā)布

    AMD Power Design Manager 2025.2 版本現(xiàn)已發(fā)布,并正式支持第二代 AMD Versal AI Edge 系列器件和第二代 Prime 系列器件。
    的頭像 發(fā)表于 12-24 11:08 ?630次閱讀

    博維邏輯NVRAM在核心交換機(jī)配置存儲(chǔ)中的應(yīng)用價(jià)值

    博維邏輯Async NVRAM MC90NP256K33T44SCH-A以256Kbit容量和45ns讀寫速度提升交換機(jī)數(shù)據(jù)存儲(chǔ)可靠性。其異步接口無需時(shí)鐘同步,支持20年數(shù)據(jù)保存與10^12次擦寫壽命,-40℃~85℃工業(yè)級(jí)溫度范圍保障極端環(huán)境下配置信息不丟失。
    的頭像 發(fā)表于 12-23 10:34 ?311次閱讀
    博維邏輯<b class='flag-5'>NVRAM</b>在核心交換機(jī)配置存儲(chǔ)中的應(yīng)用價(jià)值

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用是什么?

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用?
    發(fā)表于 12-22 13:11

    EZ - BTTM模塊Arduino評(píng)估板CYBT - 243053 - EVAL介紹

    EZ-BTTM模塊Arduino評(píng)估板CYBT - 243053 - EVAL介紹 在電子開發(fā)領(lǐng)域,藍(lán)牙模塊的評(píng)估和開發(fā)板是我們進(jìn)行相關(guān)項(xiàng)目的重要工具。今天就來給大家詳細(xì)
    的頭像 發(fā)表于 12-21 11:15 ?832次閱讀

    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(十二):SM模塊與CM模塊解析

    我們本期來好好聊聊SM模塊與CM模塊,SM模塊的全稱是System Manager,是IO-Link最核心的模塊,負(fù)責(zé)承上啟下的管理各個(gè)
    的頭像 發(fā)表于 12-04 18:27 ?5201次閱讀
    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(十二):SM<b class='flag-5'>模塊</b>與CM<b class='flag-5'>模塊</b>解析

    可回收箱控制板關(guān)鍵功能模塊詳細(xì)介紹

    硬件。以下是可回收箱控制板關(guān)鍵功能模塊詳細(xì)介紹。1.照明系統(tǒng)自動(dòng)感應(yīng)照明通過紅外或超聲波傳感器檢測(cè)用戶靠近,觸發(fā)LED燈帶照明,提供投遞區(qū)域的基礎(chǔ)照明。無人時(shí)自動(dòng)
    的頭像 發(fā)表于 12-04 13:50 ?393次閱讀
    可回收箱控制板關(guān)鍵功能<b class='flag-5'>模塊</b><b class='flag-5'>詳細(xì)</b><b class='flag-5'>介紹</b>

    博維邏輯MCLogic NVRAM助力5G小基站技術(shù)創(chuàng)新

    博維邏輯MCLogic 256KB NVRAM憑借微秒級(jí)讀寫速度與10^16次擦寫壽命,為5G小基站提供高可靠數(shù)據(jù)存儲(chǔ)方案。其SPI接口與工業(yè)級(jí)溫度范圍完美適配基站設(shè)備頻繁配置更新需求,助力提升網(wǎng)絡(luò)設(shè)備運(yùn)行穩(wěn)定性與生命周期。
    的頭像 發(fā)表于 11-11 09:25 ?617次閱讀
    博維邏輯MCLogic <b class='flag-5'>NVRAM</b>助力5G小基站技術(shù)創(chuàng)新

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

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

    求助,關(guān)于muRata 2GF在定制電路板上的集成問題求解

    我與muRata溝通了有關(guān)問題,當(dāng)我使用 IFX wifi-host-driver/wifi-connection-manager 和muRata特定的 nvram/clm-blob 文件
    發(fā)表于 07-17 07:14

    AMD Power Design Manager 2025.1現(xiàn)已推出

    AMD Power Design Manager 2025.1 版(PDM)現(xiàn)已推出——增加了對(duì)第二代 AMD Versal AI Edge 和 第二代 Versal Prime 系列的支持,并支持已量產(chǎn)的 AMD Spartan UltraScale+ 系列。
    的頭像 發(fā)表于 07-09 14:33 ?1179次閱讀

    請(qǐng)問cyw20719b2的nvram的存儲(chǔ)空間有多少字節(jié)?

    1)請(qǐng)問cyw20719b2的nvram 的存儲(chǔ)空間有多少字節(jié)? 2)用wiced_hal_write_nvram()或wiced_hal_read_nvram()從nvram 寫入或
    發(fā)表于 07-08 07:41

    可以使用 wiced_hal_write_nvram API 來更改 BD 地址嗎?

    /WICED-Module-Programmer-Download/td-p/290595 我想知道模塊中正確的地址或 SV ID BD 地址在哪里? 我可以使用 wiced_hal_write_nvram API 來更改 BD 地址嗎?
    發(fā)表于 07-03 06:20

    博世GTM IP模塊架構(gòu)介紹

    上篇文章我們介紹了博世GTM IP模塊的核心功能及基礎(chǔ)結(jié)構(gòu)模塊。本篇文章將繼續(xù)解析GTM模塊架構(gòu),重點(diǎn)介紹I/O
    的頭像 發(fā)表于 03-07 17:50 ?2470次閱讀
    博世GTM IP<b class='flag-5'>模塊</b>架構(gòu)<b class='flag-5'>介紹</b>