背景:DEM block分为Admin block, Status block,Primary block等形式,这些block的存储方式,可以总结为以下几种:
1.数据立即写
在DemGeneral中,下面选项要打开
在DemDTCClass中打开下面选项
enable:有数据改变后,DTC将会被写入
disable:DTC将会在shutdown的时候写入
2.调用 Dem_Nvm_SetSynchronizationFlag来实现,
需要打开下面功能
enable:提供 API Dem_RequestNvSynchronization,可以用来请求完整的 NV 同步。对于 SWC,该 API 在端口接口 DemServices 中作为操作 SynchronizeNvData 提供。
注意:
- 频繁调用 Dem_RequestNvSynchronization() 可能会导致 NvM 写入频率增加。因此,在使用此 API 时,必须仔细考虑由此产生的 NvM 块写入频率。
- 即使内容未修改,每次调用 Dem_RequestNvSynchronization 时,admin block仍会被写入。
- 其他 DEM block仅在内容修改时才会存储。
- 同步过程可能需要几秒钟,具体取决于配置和 ECU 负载。
3.在dem_shutdown的时候
- 在 正常ECU下电流程中,会调用Dem_shutdown。
- 当未启用立即的 Nv 写入时,在 Dem_shutdown -->Dem_Nvm_Shutdown--->NvM_SetRamBlockStatus期间,它将修改块的 RAM 块状态更新为 TRUE。
- DEM 需要完整的关机阶段,包括 NvM_WriteAll,才能正常工作。
如果有更多的问题需要咨询,可以加入问题咨询群与我们进行讨论,qq群号:531159112
关注公众号“奥先生学Autosar”查看更多文章