一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

AUTOSAR存儲棧分析之MemIfFee

jf_EksNQtU6 ? 來源:汽車MCU軟件設(shè)計 ? 2023-12-19 09:33 ? 次閱讀

MemIf

和所有的抽象層作用差不多,MemIf把Driver層的模塊抽象出來提供給上層使用,具體層級結(jié)構(gòu)如下:

10bcb252-9d8c-11ee-8b88-92fbcf53809c.png

NvM調(diào)用MemIf提供的標(biāo)準(zhǔn)接口,例如MemIf_ReadWrite等;在MemIf根據(jù)已配置的抽象驅(qū)動模塊(FeeEA)分別調(diào)用不同的API,實際舉例如下:

1104d122-9d8c-11ee-8b88-92fbcf53809c.png

根據(jù)標(biāo)準(zhǔn),F(xiàn)ee或者Ea又會調(diào)用MeeAcc提供的接口去訪問不同的Flash驅(qū)動。

我們以Vector的實際代碼為例,在MemIf層配置提供的接口如下:

/**-- MemHwA Function Pointers --**/
CONST(MemIf_MemHwAApi_Type, MEMIF_CONST) MemIf_MemHwaApis[MEMIF_NUMBER_OF_DEVICES] =
{
   /*  Fee_30_SmallSector  */ {
    Fee_30_SmallSector_Read, 
    MemIf_Fee_30_SmallSector_WriteWrapper, 
    Fee_30_SmallSector_EraseImmediateBlock, 
    Fee_30_SmallSector_InvalidateBlock, 
    Fee_30_SmallSector_Cancel, 
    Fee_30_SmallSector_GetStatus, 
    Fee_30_SmallSector_GetJobResult, 
    Fee_30_SmallSector_SetMode
  }
};

在Fee層級配置的Flash驅(qū)動接口如下:


/* FLS API pointer table */
CONST(Fee_30_SmallSector_FlsApiType, FEE_30_SMALLSECTOR_PRIVATE_CONST) Fee_30_SmallSector_FlsApi0 = 
{
   /*  Read Service  */ Fls_Read, 
   /*  Write Service  */ Fls_Write, 
   /*  Compare Service  */ Fls_Compare, 
   /*  Erase Service  */ Fls_Erase, 
   /*  Blank Check Service  */ Fls_BlankCheck, 
   /*  Get Status Service  */ Fls_GetStatus, 
   /*  Get Job Result Service  */ Fls_GetJobResult
};

發(fā)現(xiàn)沒有,這一層的API并沒有MemAccM相關(guān)的接口,所以雖然規(guī)范定義了這樣的層級結(jié)構(gòu),但是在實現(xiàn)上有多種可能,簡單有效才是硬道理。

Fee

之所以在車規(guī)MCU里需要提供這樣的機制,主要還是為了節(jié)約成本,提供數(shù)據(jù)的高效、實時存儲,滿足車規(guī)對于Data Flash百萬次刷寫的要求。

在AUTOSAR的規(guī)范里,也提供了這樣類似的示例機制來提高DFlash的使用壽命:

1116cbe8-9d8c-11ee-8b88-92fbcf53809c.png

在該示例中,共計有1500Bytes數(shù)據(jù)需要管理,這些數(shù)據(jù)被均勻分成10個Block;當(dāng)Fee發(fā)現(xiàn)某個Block數(shù)據(jù)更改并且需要重新編程的時候,他會找到目前空閑的Flash空間把數(shù)據(jù)寫進Flash并設(shè)置有效。需要注意的是,在設(shè)計Fee驅(qū)動時,需要考慮到Flash IP支持的最小可擦除單位和最小可編程單位,只要熟悉IP特性,才能做好Flash磨損均衡算法。

小結(jié)

NvM的狀態(tài)機每家供應(yīng)商的代碼區(qū)別還是挺大的,不過我們在看代碼的時候首先需要了解這些API的調(diào)用時序,如下圖為用戶調(diào)用NvM_Write服務(wù)的時序圖:

112911d6-9d8c-11ee-8b88-92fbcf53809c.png

熟讀AUTOSAR NV Data Handling Guideline,才能更好理解代碼,必要時自己畫一個狀態(tài)遷移圖。

來源:汽車MCU軟件設(shè)計

審核編輯:湯梓紅

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

    關(guān)注

    33

    文章

    8891

    瀏覽量

    153015
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4473

    瀏覽量

    86936
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    370

    瀏覽量

    22316
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4882

    瀏覽量

    70050

原文標(biāo)題:AUTOSAR 存儲棧分析--MemIfFee

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

    AUTOSAR存儲模塊的基礎(chǔ)知識

    AUTOSAR存儲模塊的解釋文章很多,本文整理存儲模塊基礎(chǔ)知識。
    發(fā)表于 10-08 09:30 ?7639次閱讀

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

    前言 前面的文章我們詳細分析了NvM,F(xiàn)ee,F(xiàn)ls模塊以及NvM User和NvM的交互,對AUTOSAR架構(gòu)下的存儲協(xié)議應(yīng)該有了一個比較深入的了解了?;仡^來看,站在NvM使用者的
    的頭像 發(fā)表于 09-04 09:53 ?1653次閱讀
    <b class='flag-5'>存儲</b>協(xié)議<b class='flag-5'>棧</b>的Error流轉(zhuǎn)過程<b class='flag-5'>分析</b>

    AUTOSAR的工作原理是什么?為什么需要AUTOSAR?

    AUTOSAR的工作原理是什么?為什么需要AUTOSAR?
    發(fā)表于 05-17 06:44

    AUTOSAR是什么

    一、AUTOSAR是什么AUTOSAR組織自己的介紹是AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development
    發(fā)表于 11-10 07:47

    AUTOSAR的相關(guān)資料推薦

    AUTOSAR基礎(chǔ)篇EcuM_wto9109的博客-CSDN博客【AutoSAR】【EcuM】ECU狀態(tài)管理專注汽車軟件開發(fā)、AutoSAR、車載以太網(wǎng)、SOA、EE架構(gòu)。07-08
    發(fā)表于 01-27 08:25

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

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

    STM32堆和及變量的存儲理解

    STM32堆和及變量的存儲理解
    發(fā)表于 11-30 16:51 ?19次下載
    STM32堆和<b class='flag-5'>棧</b>及變量的<b class='flag-5'>存儲</b>理解

    如何用eBPF優(yōu)化內(nèi)存存儲功能

    隨著存儲設(shè)備的升級與發(fā)展,當(dāng)代的存儲設(shè)備性能越來越高,延遲也越來越低。對于內(nèi)核而言,Linux I/O 存儲棧的軟件所帶來的性能開銷已經(jīng)越來越不可忽視。
    的頭像 發(fā)表于 08-09 11:43 ?1277次閱讀

    AUTOSAR通信協(xié)議的幾個問題(一)

    最近在研究AUTOSAR通信協(xié)議的時候產(chǎn)生了以下幾個問題。
    的頭像 發(fā)表于 01-31 09:23 ?2365次閱讀

    AUTOSAR中通信協(xié)議配置詳解

    通訊協(xié)議幾乎是CP AUTOSAR中最龐雜的一塊。由于其涉及的模塊比較多(僅實現(xiàn)CAN信號的收發(fā)就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP這么多模塊的協(xié)作!),且名詞
    的頭像 發(fā)表于 09-21 10:02 ?7337次閱讀
    <b class='flag-5'>AUTOSAR</b>中通信協(xié)議<b class='flag-5'>棧</b>配置詳解

    AUTOSAR經(jīng)典平臺介紹

    汽車電子系統(tǒng)的軟件組件、運行時環(huán)境和通信機制,以實現(xiàn)模塊化、可重用和可擴展的系統(tǒng)開發(fā)。 在AUTOSAR CP中,軟件組件被分為應(yīng)用軟件組件(SWC)和基礎(chǔ)軟件組件(BSW)。SWC是實現(xiàn)特定功能的軟件模塊,例如引擎控制、制動系統(tǒng)等。BSW是提供基礎(chǔ)功能和服務(wù)的軟件模塊,例如通信協(xié)議
    的頭像 發(fā)表于 10-27 15:30 ?1685次閱讀
    <b class='flag-5'>AUTOSAR</b>經(jīng)典平臺介紹

    AUTOSAR平臺研究報告:國產(chǎn)基礎(chǔ)軟件+芯片全方案加快量產(chǎn)

    2023年12月7日,AUTOSAR組織發(fā)布了最新版本AUTOSAR R23-11標(biāo)準(zhǔn),從功能角度方面,更新主要集中在信息安全、功能安全以及通信協(xié)議等三個方面。
    的頭像 發(fā)表于 02-21 15:30 ?3949次閱讀
    <b class='flag-5'>AUTOSAR</b>平臺研究報告:國產(chǎn)基礎(chǔ)軟件+芯片全<b class='flag-5'>棧</b>方案加快量產(chǎn)

    AUTOSAR通信協(xié)議解析 如何實現(xiàn)AUTOSAR通信

    通信協(xié)議是一個復(fù)雜的系統(tǒng),它涵蓋了多種通信方式和模塊,以實現(xiàn)車內(nèi)ECU之間的高效、可靠的數(shù)據(jù)交換。以下是對AUTOSAR通信協(xié)議的解析及實現(xiàn)AUTOSAR通信的方法: 一、AUTOSAR
    的頭像 發(fā)表于 12-17 14:54 ?2137次閱讀

    AUTOSAR通信實現(xiàn)中的常見問題

    AUTOSAR(Automotive Open System Architecture)汽車開放系統(tǒng)架構(gòu)旨在實現(xiàn)汽車電子的軟硬件分離,降低ECU軟件開發(fā)的復(fù)雜度,提高軟件可重用性。 一、通信協(xié)議
    的頭像 發(fā)表于 12-17 15:03 ?864次閱讀

    利用eBPF程序繞過內(nèi)核以加速存儲訪問

    隨著微秒級NVMe存儲的蓬勃發(fā)展,Linux內(nèi)核存儲棧的開銷幾乎是存儲訪問時間的兩倍,已經(jīng)成為性能瓶頸。
    的頭像 發(fā)表于 03-01 16:09 ?350次閱讀
    利用eBPF程序繞過內(nèi)核以加速<b class='flag-5'>存儲</b>訪問