1、调用周期
NVM的NvM_MainFunction();使用需要在周期比较块的任务里面,例如1ms,针对于CLASS3类别。
常见问题:
和诊断一起存在时,有时候存储不了,或者产生复位,问题点解析,假设诊断服务也在1ms里面,在此刻需要存储大量的DTC,NvM_MainFunction();放置在10ms的话,存储不及时,后面的就会存储不了。
2、Job深度
NVM的JOB配置选项:配置项
NvMSizeStandardJobQueue |
当连续写入或者读取NVM的BLOCK时刻,这个点非常重要,牵涉问题,假如深度为3,我们连续写10个block,那么只能写入3个BLOCK,因为我们的JOB深度为3。
3、读写尝试次数
有时候可能一次读取或者写入不成功,需要多次。配置项
4、复位前处理
复位之前,需要注意,NVM是否已经处理完成,否则需要在处理完成才可以进行复位,类似于检查
do
{
NvM_MainFunction();
FEE_MainFunction();
FLS_MainFunction();
}
while ( (States_NvM == NVM_RB_STATUS_BUSY ) || (StateMemIf == MEMIF_BUSY))
有时候是非预期复位的操作,例如突然断电,需要考虑加个大电容进行延时掉电。