一文,本文就來自低向上的分析AUTOSAR架構(gòu)下存儲協(xié)議棧的Error處理機(jī)制,希望能幫助NvM使用者快速定位和分析問題! 縮略詞: 簡寫 全稱 DMU D ata M emory U nit Fls Fl a s h OPER F las" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

存儲協(xié)議棧的Error流轉(zhuǎn)過程分析

832065824 ? 來源:汽車電子嵌入式 ? 2023-09-04 09:53 ? 次閱讀

前言

前面的文章我們詳細(xì)分析了NvM,F(xiàn)ee,F(xiàn)ls模塊以及NvM User和NvM的交互,對AUTOSAR架構(gòu)下的存儲協(xié)議棧應(yīng)該有了一個(gè)比較深入的了解了?;仡^來看,站在NvM使用者的角度來看最關(guān)心的是如何使用NvM存儲服務(wù),以及使用過程中出現(xiàn)Error后如何快速定位和分析問題。NvM服務(wù)的使用可以參考<>一文,本文就來自低向上的分析AUTOSAR架構(gòu)下存儲協(xié)議棧的Error處理機(jī)制,希望能幫助NvM使用者快速定位和分析問題!

縮略詞:

簡寫 全稱
DMU Data Memory Unit
Fls Flash
OPER Flash Operation Error
SQER Command Sequence Error
EVER Erase Verify Error

注:本公眾號文章中使用了一些第三方工具和文檔,若有侵權(quán),請聯(lián)系作者刪除!

參考文檔:

1.AURIXTC3XX_um_part1_v2.0.pdf

2. Specification of Flash EEPROM Emulation

3. Specification of Flash Driver

4.Specification of NVRAM Manager AUTOSAR CP Release 4.3.1

5.AUTOSAR架構(gòu)下NVM Block連續(xù)寫及Default Value問題分析

6.AUTOSAR架構(gòu)下NvM模塊詳細(xì)分析

7.AUTOSAR架構(gòu)下Fee詳細(xì)分析

8.TC37x芯片FLASH基本概念介紹

9.AUTOSAR架構(gòu)下Fls詳細(xì)分析

10.TC3xx芯片DMU介紹

正文

1.Error自定向上分析

由于從NvM User的存儲服務(wù)請求正向自定向下分析Error發(fā)生的條件和流轉(zhuǎn)十分困難,我們采用自底向上的方法從底層已知Error出發(fā)向上分析Error的流轉(zhuǎn),也就是:Fls已知Error àFeeàNvMàNvM User

如下表所示,我們把自底向上分析的結(jié)果以表格的形式統(tǒng)計(jì)出來,通過這種方式,NvM User就能從JobResult結(jié)果查找NvM,Fee,Fls報(bào)了什么錯(cuò)誤,也就能采用對應(yīng)的應(yīng)對措施。

Note:

1.該表格僅把NvM最常用的服務(wù)(讀,寫,擦除)可能產(chǎn)生的Error統(tǒng)計(jì)進(jìn)去,像NvMCancell這類的不常用服務(wù)沒有統(tǒng)計(jì)進(jìn)去。

2.NvM除了底層上報(bào)的錯(cuò)誤外,本身還有很多Error處理機(jī)制,比如,調(diào)用底層接口的返回值判斷等,這里錯(cuò)誤也沒有統(tǒng)計(jì)進(jìn)去,也就是我們僅僅把NvM DMU上報(bào)的錯(cuò)誤統(tǒng)計(jì)出來

3.DMU上報(bào)的Error的原因,以及對應(yīng)軟件的處理辦法可以查看數(shù)據(jù)手冊獲得。具體請參考: <<TC3xx芯片DMU介紹>>

NvM User NvM Fee Fls
NvM User可以通過Block Callback獲取NvM Job請求的結(jié)果,
然后根據(jù)結(jié)果執(zhí)行對應(yīng)的策略
NvM調(diào)用NvM Block配置的Callback函數(shù)JobEndCbkExtFunc_pt,傳入的JobResult為NVM_REQ_NOT_OK

NvM_CurrentBlockInfo_t.LastResult_t = NVM_REQ_NOT_OK



Fee在處理Write任務(wù)時(shí)會調(diào)用Fls的Compare接口對比寫入DFlash的數(shù)據(jù)和RAM緩存的數(shù)據(jù),如果出現(xiàn)錯(cuò)誤,F(xiàn)ee會調(diào)用NvM_JobErrorNotification

Fls調(diào)用Fee_JobErrorNotification, Fee_JobErrorNotication調(diào)用FeeNvmIllegalStateNotification


FeeJobResult == MEMIF_BLOCK_FAILED

Note: FeeNvmIllegalStateNotification是一個(gè)Callout函數(shù),由User實(shí)現(xiàn)
Fls執(zhí)行Compare任務(wù)時(shí)發(fā)生錯(cuò)誤,調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_INCONSISTENT

Note: 寫入Flash的數(shù)據(jù)和RAM緩存的數(shù)據(jù)不一致
Fls調(diào)用Fee_JobErrorNotification, Fee_JobErrorNotification調(diào)用NvM_JobErrorNotification

FeeJobResult == MEMIF_BLOCK_FAILED
Fls擦寫過程中發(fā)生了超時(shí),調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_FAILED

Note: 監(jiān)控擦寫任務(wù)執(zhí)行的時(shí)間,超時(shí)就會報(bào)錯(cuò)
Fls擦除過程中發(fā)生錯(cuò)誤,調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_FAILED

Note: 發(fā)生OPER, EVER, SQER
Fls寫數(shù)據(jù)過程發(fā)生錯(cuò)誤,調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_FAILED

Note: 發(fā)生OPER, PVER, SQER錯(cuò)誤
Fls讀數(shù)據(jù)過程發(fā)生錯(cuò)誤,調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_FAILED

Note: 開啟了ECC_ERROR檢查,如果發(fā)生了ECC錯(cuò)誤就會報(bào)錯(cuò)
NvM調(diào)用NvM Block配置的Callback函數(shù)JobEndCbkExtFunc_pt,傳入的JobResult為NVM_REQ_INTEGRITY_FAILED

NvM_CurrentBlockInfo_t.LastResult_t = NVM_REQ_INTEGRITY_FAILED
Fee在處理Read任務(wù)時(shí)發(fā)現(xiàn)數(shù)據(jù)不一致(比如,Block重來沒有被寫過)就會調(diào)用NvM_JobErrorNotification

FeeJobResult == MEMIF_BLOCK_INCONSISTENT
NvM調(diào)用NvM Block配置的Callback函數(shù)JobEndCbkExtFunc_pt,傳入的JobResult為NVM_REQ_NV_INVALIDATED

NvM_CurrentBlockInfo_t.LastResult_t = NVM_REQ_NV_INVALIDATED
Fee在處理Read任務(wù)時(shí)發(fā)現(xiàn)數(shù)據(jù)是無效的就會調(diào)用NvM_JobErrorNotification

FeeJobResult == MEMIF_BLOCK_INVALID
NvM調(diào)用NvM Block配置的Callback函數(shù)JobEndCbkExtFunc_pt,傳入的JobResult為NVM_REQ_NOT_OK

NvM_CurrentBlockInfo_t.LastResult_t = NVM_REQ_NOT_OK
Fee在處理寫任務(wù)時(shí)發(fā)現(xiàn)寫的次數(shù)已經(jīng)超過該Block配置的最大寫次數(shù)了就會調(diào)用NvM_JobErrorNotification

FeeJobResult == MEMIF_BLOCK_FAILED

2.數(shù)據(jù)INTEGRITY_FAILED錯(cuò)誤示例

我們把TC3xx芯片的DFlash都擦除掉,然后通過仿真器執(zhí)行重啟。

Fee在處理Read任務(wù)時(shí)發(fā)現(xiàn)數(shù)據(jù)不一致(Block沒有被寫過),F(xiàn)ee_MainFunction會調(diào)用

NvM_JobErrorNotification通知到上層的NvM模塊。

acf1a5fc-4ab6-11ee-97a6-92fbcf53809c.png

如果對應(yīng)的NvM Block配置了Callback函數(shù),NvM模塊就會調(diào)用該Block的Callback函數(shù)通知到NvM_User,這樣NvM User就能知道當(dāng)前NvM Block的狀態(tài)。

ad21b2ce-4ab6-11ee-97a6-92fbcf53809c.png

3. 總結(jié)

本文自底向上分析了存儲協(xié)議棧的Error流轉(zhuǎn)過程,通過本文總結(jié)的Error流轉(zhuǎn)表格,我們可以方便的查找DMU操作出問題的可能原因。但是,對于NvM模塊本身的一些邏輯狀態(tài)上報(bào)的Error,這個(gè)表格沒有統(tǒng)計(jì),感興趣的朋友可以自己再去研究。

審核編輯:彭菁

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

    關(guān)注

    13

    文章

    4180

    瀏覽量

    85498
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4624

    瀏覽量

    87008
  • NVM
    NVM
    +關(guān)注

    關(guān)注

    1

    文章

    39

    瀏覽量

    19102
  • 協(xié)議棧
    +關(guān)注

    關(guān)注

    2

    文章

    138

    瀏覽量

    33596

原文標(biāo)題:AUTOSAR架構(gòu)下存儲協(xié)議棧Error問題自底向上分析

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

收藏 人收藏

    評論

    相關(guān)推薦

    LTE協(xié)議軟件分析測試方法

    本文介紹了一種應(yīng)用在LTE協(xié)議系統(tǒng)軟件開發(fā)過程的測試和調(diào)試的模型,并給出了測試模型的應(yīng)用結(jié)果。該模型以LTE接入網(wǎng)標(biāo)準(zhǔn)架構(gòu)為原型,分層調(diào)試為思想,多彩模塊化打印為手段,具有環(huán)境簡易、調(diào)試方便的特點(diǎn)
    發(fā)表于 12-16 14:06 ?6680次閱讀

    lwip協(xié)議代碼分析

    lwIP(Lightweight IP)是一個(gè)為嵌入式系統(tǒng)設(shè)計(jì)的輕量級TCP/IP協(xié)議
    的頭像 發(fā)表于 10-29 17:37 ?1774次閱讀
    lwip<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>代碼<b class='flag-5'>分析</b>

    Zigbee技術(shù)規(guī)范與協(xié)議分析 -

    Zigbee技術(shù)規(guī)范與協(xié)議分析 -
    發(fā)表于 08-12 23:46

    協(xié)議是什么 協(xié)議又是什么

    協(xié)議協(xié)議的具體實(shí)現(xiàn)形式, 通俗的理解就是用代碼實(shí)現(xiàn)的函數(shù)庫, 以便于開發(fā)人員調(diào)用。協(xié)議是通常是一個(gè)層級結(jié)構(gòu)。
    發(fā)表于 08-05 07:00

    藍(lán)牙協(xié)議實(shí)現(xiàn)模式分析

    藍(lán)牙技術(shù)是未耒無線通信的一個(gè)重要的研究方向。本文主要介紹了藍(lán)牙技術(shù)的體系結(jié)構(gòu)及其特點(diǎn),并結(jié)合東芝公司生產(chǎn)的藍(lán)牙協(xié)議產(chǎn)品BluetoothTM Utility 軟件,分析了它的軟件實(shí)
    發(fā)表于 08-21 09:50 ?62次下載

    對幾種開源的TCPIP協(xié)議分析

    對幾種開源的TCPIP協(xié)議分析
    發(fā)表于 11-03 16:52 ?24次下載

    采用精簡協(xié)議的ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)分析

    采用精簡協(xié)議的ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)分析   ZigBee是一種新興的短距離、低功耗、低數(shù)據(jù)速率、低成本、低復(fù)雜度的無線網(wǎng)絡(luò)技術(shù)。ZigBee在整個(gè)協(xié)議
    發(fā)表于 03-29 15:07 ?1457次閱讀
    采用精簡<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>的ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)<b class='flag-5'>分析</b>

    uIP協(xié)議介紹

    uIP 協(xié)議是一種免費(fèi)的可實(shí)現(xiàn)的極小的TCP/IP協(xié)議,可以使用于由8位或16位微處理器構(gòu)建的嵌入式系統(tǒng)。本文分析了uIP
    發(fā)表于 07-15 15:27 ?0次下載

    基于TCN實(shí)時(shí)協(xié)議過程數(shù)據(jù)通信研究

    基于TCN實(shí)時(shí)協(xié)議過程數(shù)據(jù)通信研究
    發(fā)表于 08-31 14:45 ?16次下載
    基于TCN實(shí)時(shí)<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b><b class='flag-5'>過程</b>數(shù)據(jù)通信研究

    TCP/IP協(xié)議之路由器簡要分析

    TCP/IP協(xié)議中,在封裝報(bào)文時(shí)就相當(dāng)于是壓操作,而在報(bào)文解析過程中,則是一個(gè)出過程,在封裝是最先被壓進(jìn)
    發(fā)表于 10-10 11:46 ?1次下載

    一文詳解存儲的結(jié)構(gòu)

    存儲結(jié)構(gòu)與之前所學(xué)的線性存儲結(jié)構(gòu)有所差異,這緣于對數(shù)據(jù) “存” 和 “取” 的過程有特殊的要求。
    發(fā)表于 10-09 16:00 ?2382次閱讀
    一文詳解<b class='flag-5'>棧</b><b class='flag-5'>存儲</b>的結(jié)構(gòu)

    tcpip協(xié)議是什么?tcpip協(xié)議有哪些協(xié)議?tcpip協(xié)議中報(bào)文封裝和解封裝過程

    tcpip協(xié)議是什么? TCP/IP協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)中使用的最常見的網(wǎng)絡(luò)協(xié)議。它是一個(gè)四層
    的頭像 發(fā)表于 08-01 17:51 ?8004次閱讀
    tcpip<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>是什么?tcpip<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>有哪些<b class='flag-5'>協(xié)議</b>?tcpip<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>中報(bào)文封裝和解封裝<b class='flag-5'>過程</b>

    基于ZigBee協(xié)議的無線傳感網(wǎng)絡(luò)的建立過程

    電子發(fā)燒友網(wǎng)站提供《基于ZigBee協(xié)議的無線傳感網(wǎng)絡(luò)的建立過程.pdf》資料免費(fèi)下載
    發(fā)表于 10-24 10:32 ?0次下載
    基于ZigBee<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>的無線傳感網(wǎng)絡(luò)的建立<b class='flag-5'>過程</b>

    汽車UDS協(xié)議與XCP協(xié)議

    UDS協(xié)議 汽車UDS協(xié)議是一種用于汽車電子控制單元(ECU)之間進(jìn)行診斷和通信的標(biāo)準(zhǔn)協(xié)議。UDS(Unified Diagnostic
    的頭像 發(fā)表于 10-27 16:35 ?3834次閱讀
    汽車UDS<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>與XCP<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>

    基于BlueZ協(xié)議的藍(lán)牙語音接入系統(tǒng)實(shí)現(xiàn)與性能分析

    電子發(fā)燒友網(wǎng)站提供《基于BlueZ協(xié)議的藍(lán)牙語音接入系統(tǒng)實(shí)現(xiàn)與性能分析.pdf》資料免費(fèi)下載
    發(fā)表于 10-30 11:25 ?0次下載
    基于BlueZ<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>的藍(lán)牙語音接入系統(tǒng)實(shí)現(xiàn)與性能<b class='flag-5'>分析</b>