背景:
最近在做仪表的时候,发现仪表EEPROM中存放的指针式输入输出校验表的数据有问题,和软件中的校验表信息存在差别,就打算去改下,因为之前有老前辈已经教过怎么去改了。但是当时没明白为什么这么去改,今天空闲静下来就理了理。
我当时拿到的EEPROM烧写文件是.bin的二进制文件:通过十六进制查看器查看到烧录数据如下:
Address 0 1 2 3 4 5 6 7 8 9 a b c d e f
0000 0000 55 ff fff ff ff ff ff ff ff ff ff ff ff ff ff ff
.............
若对0x0地址下的数据进行改动:
若从0x00地址开始连续两个字节地址的数据改变为55F和6689,那么上面的EEPROM的改动为:
Address 0 1 2 3 4 5 6 7 8 9 a b c d e f
0000 0000 5f 05 89 66 ff ff ff ff ff ff ff ff ff ff ff ff
解释:
这里是因为一个字节是8位,而EEPROM是按照字节访问的(一个地址数据),所以对于16进制数据0x55f,从低地址到高地址来说, 数据存储本来就应该是5f 05,对于后面的16进制数据来说也是按照这个规律来进行的,所以按照增地址来说,这里EEPROM中的数据就应该是5f 05 89 66