功能 #3415
由 稚媛 黄 更新于 3 个月 之前
参考软件DR-003701-708350 Managing NVM Updates
以下设计规则适用于所有使用非易失性存储器(NVM)的电子控制单元(ECU)。
1、当这些条件中的任何一个为真时,软件系统必须实现NVM管理器/监视器(以避免共享资源冲突并提供快速NVM更新):NVM(片上或片外)的访问/修改是非原子操作片外NVM的访问/修改是通过SPI/SCI/其他端口完成的,该端口也用于访问其他设备使用影子RAM
2、NVM管理器/监视器必须在被请求以每50毫秒一个NVM单元的最差情况速率更新数据项(从修改的映像RAM、设置的改变标志或发布的NVM请求测量)的50毫秒内开始更新物理NVM(但更快是强烈优选的)。
3、当电池正常时,不要在NVM修改挂起的情况下进入睡眠。更多信息,请参考RQT-003701023575“VRM电压范围监视器和电压范围分配”。
4、在等待NVM读取/擦除/写入完成时,软件不得执行自旋锁(重复检查状态的正确循环)。
5、确保所有NVM数据项在将ECU运送到福特之前初始化为正确的值。这包括第一个版本和由于硬件或软件更改而导致的任何后续版本。
6、当第一条规则中列出的这些条件中的任何一个在这些条件下,NVM的同时访问只能使用NVM管理器/监视器来控制。在不使用NVM管理器的情况下,通过多个操作符对给定NVM单元的错误访问/修改是可能的。大多数情况下,NVM是一种共享/资源;但是,如果有适当的理由,福特可以根据下面分析/讨论部分中规定的流程授予例外。
7、不要累积NVM更改,立即更新NVM:福特经历了许多累积NVM更改然后写入的问题。福特现在要求立即将NVM更改写入NVM(这意味着NVM管理器/监视器)。当NVM在影子RAM中更新时,NVM监视器会对更改进行验证,并且在50毫秒内开始修改。当影子RAM更新时,验证器会启动(设置改变标志)。
8、当修改多个字节时,管理器/监视器必须在50毫秒内开始更新NVM,最坏情况下每50毫秒更新一个NVM单元(如果NVM擦除/写入周期更长,则更新时间更长,但这需要福特批准)。
9、当NVM修改挂起时不要进入睡眠:这是“不要累积更改”的必然结果。如果有几个NVM更新挂起,并且很难进入睡眠,那么在进入睡眠之前等待NVM更新完成。只要电池电压正常,那么睡眠应该被推迟。
10、无NVM自旋锁:这与NVM管理器/监视器密切相关。为了从处理器获得最大的性能,不要浪费等待NVM访问完成的周期。相反,明智地使用NVM并允许另一个进程执行。
11、ECU的每次变更都要求供应商重新验证NVM的内容,包括配置参数。应对供应商装配线上生产的其中一个ECU进行内存转储,并验证内容是否正确。该内存转储清单还应发送给福特
返回