Autosar NVM調試幾點心得

Autosar NVM(non-volatile memory)在汽車電子電控軟件中經常會用到的,但是非常不容懂。由於手頭上一個項目在讀寫DID以及在Application中需要存儲一些重要數據到DataFlash中,調試時經常碰到些奇怪的問題,但是BSW的配置是由德國同事做的,因此碰到問題很難調試。把碰到問題總結的幾點心得列出來:

1、ECU 模式分爲Fixed和Flexed,Autosar4.0以前版本用Fixed的較多,Flexed在4.0版本之後用得多。

2、ReadAll函數在System Startup啓動時調用,作用是把所有的Block中的數據從NV Block中拷貝到Ram中。

3、WriteAll函數在ECU state manage裏System Shutdown的時候被調用,作用是把要寫到Block中的數據從Ram中拷貝到NV Block        中。

4、在NVM Queue Job執行出錯時,應該讀取NVM 中的默認值。

5、當完成某一個Block ID的寫操作後,將NV Block中的數據拷貝到Ram Block中,但是在應用程序重修改了Ram Block的值,如果        調用NvM_SetRamBlockStatus函數設置這個Block ID爲TRUE,並且在NVM_cfg.c中設置了參數               NVM_SELECT_BLOCK_FOR_WRITEALL_ON,那麼ECU在進入sleep(ECU ShutDown)期間會調用WriteAll函數,把完成前述     設置的block全部寫到NVM中。

6、當Ram Block中的數據寫到NV Block中後,要有回讀驗證的過程,即把NVM中的數據與Ram block中的original數據進行比較

7、調用NvM_RestoreBlockDefaults函數可以把相應的Block的內容設置爲默認值。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章