一文,本文就來自低向上的分析AUTOSAR架構下存儲協(xié)議棧的Error處理機制,希望能幫助NvM使用者快速定位和分析問題! 縮略詞: 簡寫 全稱 DMU D ata M emory U nit Fls Fl a s h OPER F las" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

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

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

前言

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

縮略詞:

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

注:本公眾號文章中使用了一些第三方工具和文檔,若有侵權,請聯(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架構下NVM Block連續(xù)寫及Default Value問題分析

6.AUTOSAR架構下NvM模塊詳細分析

7.AUTOSAR架構下Fee詳細分析

8.TC37x芯片F(xiàn)LASH基本概念介紹

9.AUTOSAR架構下Fls詳細分析

10.TC3xx芯片DMU介紹

正文

1.Error自定向上分析

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

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

Note:

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

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

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

NvM User NvM Fee Fls
NvM User可以通過Block Callback獲取NvM Job請求的結果,
然后根據(jù)結果執(zhí)行對應的策略
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任務時會調(diào)用Fls的Compare接口對比寫入DFlash的數(shù)據(jù)和RAM緩存的數(shù)據(jù),如果出現(xiàn)錯誤,F(xiàn)ee會調(diào)用NvM_JobErrorNotification

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


FeeJobResult == MEMIF_BLOCK_FAILED

Note: FeeNvmIllegalStateNotification是一個Callout函數(shù),由User實現(xiàn)
Fls執(zhí)行Compare任務時發(fā)生錯誤,調(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ā)生了超時,調(diào)用Fee_JobErrorNotification

FlsJobResult == MEMIF_BLOCK_FAILED

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

FlsJobResult == MEMIF_BLOCK_FAILED

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

FlsJobResult == MEMIF_BLOCK_FAILED

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

FlsJobResult == MEMIF_BLOCK_FAILED

Note: 開啟了ECC_ERROR檢查,如果發(fā)生了ECC錯誤就會報錯
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任務時發(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任務時發(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在處理寫任務時發(fā)現(xiàn)寫的次數(shù)已經(jīng)超過該Block配置的最大寫次數(shù)了就會調(diào)用NvM_JobErrorNotification

FeeJobResult == MEMIF_BLOCK_FAILED

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

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

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

NvM_JobErrorNotification通知到上層的NvM模塊。

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

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

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

3. 總結

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

審核編輯:彭菁

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

    關注

    13

    文章

    4507

    瀏覽量

    87115
  • 軟件
    +關注

    關注

    69

    文章

    5124

    瀏覽量

    88981
  • NVM
    NVM
    +關注

    關注

    1

    文章

    42

    瀏覽量

    19360
  • 協(xié)議棧
    +關注

    關注

    2

    文章

    145

    瀏覽量

    34028

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    lwip協(xié)議代碼分析

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

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

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

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

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

    電機實際的運轉過程是怎樣的?

    什么是步進電機?具有哪些優(yōu)缺點?步進電機的工作原理是什么?有哪些種類?電機實際的運轉過程是怎樣的?
    發(fā)表于 10-19 09:08

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

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

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

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

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

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

    uIP協(xié)議介紹

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

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

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

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

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

    一文詳解存儲的結構

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

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

    tcpip協(xié)議是什么? TCP/IP協(xié)議是計算機網(wǎng)絡中使用的最常見的網(wǎng)絡協(xié)議。它是一個四層
    的頭像 發(fā)表于 08-01 17:51 ?9574次閱讀
    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 class='flag-5'>過程</b>

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

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

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

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品