1. 概述
写内存服务允许诊断仪向指定地址处写入指定长度的数据。该服务通常被用于修改或清除Flash中的数据,或修改标定数据等。
该服务通常也要经过安全访问才能执行,因为修改内存数据是比较危险的行为。
当ECU中存在地址重叠的情况时,同样允许用指令中内存地址参数的一个字节来表示内存ID。
ECU要对指令中想要写入的地址和长度做校验,主要有以下三方面:
① 地址要对齐,要以最小写入单位为基准进行对齐,例向PFlash中写入数据,最小写入单位是32字节,地址就要32字节对齐。
② 写入地址应在有效范围内,起始地址应不小于最低有效内存地址,起始地址+数据长度应不大于最高有效内存地址。
③ 写入的数据长度应为最小写入单位长度的倍数。这个也可以根据实际情况自定义,比如允许不为整数倍,不足一个写入单位的填充0等均可。
2. 请求报文格式
请求报文格式相比读取内存服务就是多了想要写入的数据:
3. 肯定响应报文格式
肯定响应报文把请求报文中的数据复制了一遍: