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

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

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

逐步講解AUTOSAR的Memory原理策略

嵌入式軟件實戰(zhàn)派 ? 來源:嵌入式軟件實戰(zhàn)派 ? 2023-03-08 14:11 ? 次閱讀

很多人都覺得AUTOSAR的Memory很復(fù)雜,搞了很久都摸不透里面的原理策略。

其實,AUTOSAR的Memory在AUTOSAR的架構(gòu)下,封裝得很好,只是我們很多人從普通嵌入式軟件開發(fā)模式而來,一下子轉(zhuǎn)不過彎而已。

本文就從普通嵌入式軟件開發(fā)中的Memory入手,逐步講解AUTOSAR的Memory原理策略。

注:以下講的Memory方案是指EEPROM、DataFlash等非易失性存儲(NVM)的軟件方案。

1.傳統(tǒng)嵌入式存儲方案

試想下,一個簡單的嵌入式系統(tǒng)軟件里,如果想存儲寫信息到EEPROM(假設(shè)外置的EEPROM,通過IIC訪問),你會如何設(shè)計?

最簡單的辦法,寫好IIC通信,直接根據(jù)EEPROM的地址通過IIC進(jìn)行訪問,反正就是操作EEPROM,不用管那么多。但是軟件結(jié)構(gòu)比較混亂,驅(qū)動和應(yīng)用混在一起。

這種做法,但凡有點軟件層次結(jié)構(gòu)概念的人都不會這么干,當(dāng)然只是臨時調(diào)試下硬件是無所謂的。

6170ca96-ba9b-11ed-bfe3-dac502259ad0.png

那么,改進(jìn)下軟件設(shè)計,把IIC驅(qū)動單獨出來,是很常用的做法吧,比較IIC算是MCU的驅(qū)動,除了可以訪問EEPROM,還可以用來跟其他外設(shè)通信,做成獨立公共的驅(qū)動模塊,是理所當(dāng)然的。軟件層次結(jié)構(gòu)就像下面的這樣子。

61876bc0-ba9b-11ed-bfe3-dac502259ad0.png

當(dāng)然,對軟件有追求的人,肯定是比較鄙視上面兩種結(jié)構(gòu)的,EEPROM好歹也要單獨一個模塊吧。單獨一個應(yīng)用倒是無所謂,如果要好幾個應(yīng)用要讀寫EEPROM,豈不是亂成一團(tuán)了!

于是,設(shè)計成這樣的接口,看起來是比較理想的。

619ede2c-ba9b-11ed-bfe3-dac502259ad0.png

普通的嵌入式軟件的EEPROM設(shè)計,大多都是這樣的,也比較靈活。

然而,AUTOSAR有更高的追求,它把EEPROM、DataFlash等NVM看成一類存儲,而不管存儲的實際介質(zhì)是什么,統(tǒng)統(tǒng)都叫NVM。

于是乎,設(shè)計一個NVM的模塊就呼之欲出了。NVM的對外的接口是統(tǒng)一的,而它對接DataFlash或EEPROM,還分別多加了一個FEE和EA這樣的模塊。

61b5635e-ba9b-11ed-bfe3-dac502259ad0.png

2.AUTOSAR的存儲方案

到這里,我們對比下這幾種方案。

61ca840a-ba9b-11ed-bfe3-dac502259ad0.png

上圖方案A和方案B就不考慮了,那方案C和方案D的對比,差別在哪?

除了NVM這個模塊是通用性的,還多出了個FEE和EA,那么FEE和EA分別是干嘛的?

在解釋這兩個模塊之前,先從AUTOSAR的架構(gòu)層面來看看,實際上FEE和EA就在Memory Hardware Abstraction層里面,注意關(guān)鍵字Abstraction。

61ea4862-ba9b-11ed-bfe3-dac502259ad0.png

FEE是Flash EEPROM Emulation的縮寫,而EA是EEPROM Abstraction的縮寫。

AUTOSAR考慮問題比較周到,NVM的存儲是要考慮壽命的,特別是用在汽車行業(yè)。

一般情況下,DataFlash的P/E Cycle是10萬次,EEPROM的是100萬次。另外,DataFlash的擦寫單位是比較大的,如果只想寫一兩個byte,需要擦除一大片,非常不友好。

于是要將DataFlash模擬成EEPROM來使用,這個FEE就出來了。當(dāng)然FEE還考慮了磨損均衡算法,英文一般叫Wear Leveling。

那EA呢?因為EEPROM不同廠家做的地址、page管理等方式不一樣,所以要做個抽象層來統(tǒng)一管理下,同時也加入了磨損均衡算法,來增加EEPROM的壽命。

以下以在0x0008地址寫入0x11, 0x22, 0x33, 0x44這四個字節(jié)內(nèi)容為例,看看EEPROM和DataFlash的實際操作情況:

62075fd8-ba9b-11ed-bfe3-dac502259ad0.png

很明顯,EEPROM在同一個位置頻繁操作也不是非常好的,只要次數(shù)多也是會影響壽命的,而Flash在這方面的劣勢就更明顯了,不但擦寫單位比較大,壽命也比較短,所以這個FEE和EA的抽象是有必要的,磨損均衡技術(shù)也是有必要的。

623a2512-ba9b-11ed-bfe3-dac502259ad0.png

至于這個磨損均衡技術(shù)是怎么實現(xiàn)的,涉及到的內(nèi)容比較多,后續(xù)再細(xì)講。

細(xì)心的小伙伴,會發(fā)現(xiàn),為什么還有個MemIf?

實際上這個MemIf很簡單,僅僅是統(tǒng)一封裝了下FEE和EA的接口,為NVM提供一個統(tǒng)一的接口管理而已,如果非要說,那只能說NVM比較嬌貴,啥都要給它準(zhǔn)備得好好的。

3.NVM的存儲結(jié)構(gòu)

這樣就完了嗎,軟件架構(gòu)層次基本就這樣了。

然而,AUTOSAR里面的這個Memory這一套東西,是很有搞頭的,怎么說呢?

除了層次分明外,它對存儲的結(jié)構(gòu)抽象得很明確,于是就有了RAM Block,Data Set等這樣的概念。

這部分內(nèi)容,在《一圖讀懂AUTOSAR NvM(附pdf版文檔資源)》里面已經(jīng)講得很清楚了,本文不再累述。再次附上一張NVM Block結(jié)構(gòu)的匯總圖,方便平時查閱。

624fa8c4-ba9b-11ed-bfe3-dac502259ad0.png

4.AUTOSAR NVM的配置

講了這么多,NVM怎么使用?

想其他AUTOSAR的Mode模塊一樣,NVM的接口不是給應(yīng)用直接調(diào)用的,而是通過AUTOSAR的開發(fā)工具鏈給SWC配置NVM的Service接口,然后生成對應(yīng)的Runnable等接口調(diào)用的,這里有套規(guī)則。

這個NVM配置的內(nèi)容雖然涉及到的概念有點多,步驟也有點多,但搞清楚后就很簡單了。






審核編輯:劉清

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

    關(guān)注

    10

    文章

    1598

    瀏覽量

    147337
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1002

    瀏覽量

    81060
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    339

    瀏覽量

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

    關(guān)注

    1

    文章

    39

    瀏覽量

    19089

原文標(biāo)題:AUTOSAR的Memory是如何設(shè)計的?

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

收藏 人收藏

    評論

    相關(guān)推薦

    使用TPT進(jìn)行AUTOSAR和Simulink模型的背靠背測試#AUTOSAR#背靠背測試

    AUTOSARTPT
    北匯信息POLELINK
    發(fā)布于 :2023年02月14日 10:01:29

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

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

    AUTOSAR架構(gòu)深度解析 精選資料推薦

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析目錄AUTOSAR架構(gòu)深度解析AUTOSAR分層結(jié)構(gòu)及應(yīng)用軟件層功能應(yīng)用軟件層虛擬功能總線VFB及運行環(huán)境RTE基礎(chǔ)軟件
    發(fā)表于 07-28 07:40

    AUTOSAR架構(gòu)深度解析 精選資料分享

    AUTOSAR架構(gòu)深度解析本文轉(zhuǎn)載于:AUTOSAR架構(gòu)深度解析AUTOSAR的分層式設(shè)計,用于支持完整的軟件和硬件模塊的獨立性(Independence),中間RTE(Runtime Environment)作為虛擬功能...
    發(fā)表于 07-28 07:02

    AUTOSAR是什么

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

    為什么使用AUTOSAR

    文章目錄一、總概述1 為什么使用AUTOSAR?1.1 AUTOSAR出現(xiàn)之前的行業(yè)現(xiàn)狀1.2 AUTOSAR出現(xiàn)之后可以實現(xiàn)如下目標(biāo)2、AUTOSAR總概述二、各層分別概述1、BSW
    發(fā)表于 12-09 07:50

    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

    介紹AUTOSAR支持的四種功能安全機(jī)制

    1、AUTOSAR的四種功能安全機(jī)制雖然AUTOSAR不是一個完整的安全解決方案,但它提供了一些安全機(jī)制用于支持安全關(guān)鍵系統(tǒng)的開發(fā)。本文用于介紹AUTOSAR支持的四種功能安全機(jī)制:內(nèi)存分區(qū)
    發(fā)表于 06-10 17:33

    基于RT-Thread內(nèi)核的AUTOSAR在n32g上的實現(xiàn)方案

    1、基于RT-Thread內(nèi)核的AUTOSAR在n32g上的實現(xiàn)隨著小米宣布造車,當(dāng)下“軟件定義汽車”的趨勢如火如荼,autosar的全稱Automotive Open System
    發(fā)表于 07-27 14:30

    AUTOSAR模式的FEE驅(qū)動程序可以與其他非AUTOSAR模式兼容嗎?

    我們正在使用 RTD 非 AUTOSAR mdoe 驅(qū)動程序來開發(fā)新項目。但是我們也想用AUTOSAR模式的FEE功能模塊來模擬EEPROM。我的問題是 AUTOSAR 模式的 FEE 驅(qū)動程序可以與其他非
    發(fā)表于 03-21 09:01

    面向汽車應(yīng)用的AUTOSAR設(shè)計技巧

    面向汽車應(yīng)用的AUTOSAR設(shè)計技巧 汽車OEM正在開發(fā)基于AUTOSAR的電子系統(tǒng)以應(yīng)對當(dāng)代汽車中日益復(fù)雜的軟件。AUTOSAR簡化了開發(fā)流程并使得ECU軟件具有復(fù)用性。從2004年AU
    發(fā)表于 01-15 10:46 ?1128次閱讀

    AUTOSAR入門

    一、AUTOSAR是什么AUTOSAR組織自己的介紹是AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development
    發(fā)表于 11-05 18:20 ?20次下載
    <b class='flag-5'>AUTOSAR</b>入門

    AUTOSAR-MemIf的功能

    AUTOSAR的架構(gòu)圖中可以看出,MemIf(Memory Abstraction Interface)模塊位于Memory Hardware Abstraction。?
    的頭像 發(fā)表于 05-26 16:35 ?1121次閱讀
    <b class='flag-5'>AUTOSAR</b>-MemIf的功能

    AUTOSAR UDP網(wǎng)絡(luò)管理策略

    UdpNm,AUTOSAR UDP Network Management,基于TCP/IP協(xié)議棧,主要目的是協(xié)調(diào)網(wǎng)絡(luò)在normal operation和bus-sleep mode之間的轉(zhuǎn)換。除了
    的頭像 發(fā)表于 09-27 16:51 ?546次閱讀
    <b class='flag-5'>AUTOSAR</b> UDP網(wǎng)絡(luò)管理<b class='flag-5'>策略</b>

    AUTOSAR OS操作系統(tǒng)功能特性

    汽車電子系統(tǒng)中的軟件任務(wù)和中斷。它提供了以下功能特性: 任務(wù)和中斷管理:AUTOSAR OS可以創(chuàng)建、啟動、停止和刪除任務(wù),并處理中斷請求。它可以根據(jù)任務(wù)的優(yōu)先級和調(diào)度策略來調(diào)度任務(wù)的執(zhí)行,確保任務(wù)
    的頭像 發(fā)表于 10-27 16:55 ?1851次閱讀