亲爱的对话,
我试图在命令行模式下使用Smartsnippets编程批量生产的OTP头。我这里有几个关于生成OTP头文件的问题。
1.我是否可以得到一个模板OTP头文件,并且只修改每个板的MAC地址和XTAL修剪值(选项a)?或者我必须从每个芯片读取OTP内容,然后修改MAC地址和XTAL微调值(选项B)?我们可以看到从芯片读取OTP报头中的很多字段。这些字段是每个芯片(批)独有的,还是它们都是相同的?如果它们是唯一的,那么我们必须读取然后修改(选项B),否则我们可以复制和修改模板头文件(选项A)。
2.我注意到在Smartsnippets GUI模式,你可以导出OTP头在HEX格式和BIN格式。我认为十六进制格式更好,因为它有校验和,支持完整性校验。为了自动生成头文件,这意味着我们必须更新十六进制文件中的每个MAC地址/修剪的XTAL值的CRC。我认为。HEX格式是标准的英特尔HEX格式?如果不是,你有一些描述,关于CRC应该如何生成?
谢谢你的帮助。
uta_lc
设备:
与上述问题2相关:
对于以下使用GUI导出的十六进制文件,第一行和最后一行是什么?你能破译一下吗?
对于任何像":047F1000000000006D"这样的行:
地址:047F10
0000000000为什么是5字节的数据?
6D应该是校验和
c:\Users\腐烂>猫固件\ read_otp_header.hex
: 020000040004 f6
: 047 f0000000000007d
: 047 f04000000000079
: 047 f08000035688850
: 047 f0c00000066c04b
: 047 f1000000000006d
: 047 f14000000000069
: 047 f18000000000065
: 047 f1c000000000061
: 047 f2000000000005d
: 047 f24000000000059
: 047 f28000000000055
: 047 f2c000000000051
: 047 f3000000000004d
: 047 f34000000000049
: 047 f38000000000045
: 047 f3c000000000041
: 047 f4000000000003d
: 047 f44000000000039
: 047 f48000000000035
: 047 f4c000000000031
: 047 f5000000000002d
: 047 f54000000000029
: 047 f58000000000025
: 047 f5c000000000021
: 047 f6000000000001d
: 047 f64000af37d7e21
: 047 f6800000200ab68
: 047 f6c000000000011
: 047 f700055555555b9
: 047 f74000000000009
: 047 f7800a5a5002d8e
: 047 f7c000742620f47
: 047 f800000000000fd
: 047 f840000002a745b
: 047 f880000000007ee
: 047 f8c0000000000f1
: 047 f900000000001ec
: 047 f940000000000e9
: 047 f980000000000e5
: 047 f9c0000000000e1
: 047 fa00000000000dd
: 047 fa40000000000d9
: 047 fa80000000000d5
: 047 fac0000000000d1
: 047 fb00000000000cd
: 047 fb40000000000c9
: 047 fb80000000000c5
: 047 fbc0000000000c1
: 047 fc00000000000bd
: 047 fc40000000000b9
: 047 fc80000000000b5
: 047 fcc0000000000b1
: 047 fd00000000000ad
: 047 fd40000000000a9
: 047 fd80000000000a5
: 047 fdc0000000000a1
: 047 fe000000000009d
: 047 fe4000000000099
: 047 fe8000000000095
: 047 fec000000000091
: 047 ff000000000008d
: 047 ff4000000000089
: 047 ff8000000000085
: 047 ffc000000000081
: 00000001 ff
嗨uta_lc,
1)我不确定我得到确切的问题,关于OTP头580的结构是相同的,SoC的让我们从工厂和一些预排程序的价值在特定领域例如RF_Trim场,时间戳字段等;提出值对于每一个芯片,是独特的,在生产测试程序的对话框。所以不能使用相同的OTP头烧所有的设备,因为这些预编程的值是不同的每个设备。
2)对于字段,你改变一个新的CRC校验和应该被应用(因为你正在改变当前行的值在.hex文件),如果你不改变CRC,那么工具将指出一个错误。是的,hex是标准的intel .hex格式,您可以使用下面的在线工具生成它http://easyonlineconverter.com/converters/checksum_converter.html.
关于解读:
第一行F6是:(起始码),02(字节数),0000(地址),04(记录类型,扩展线性地址标签),0004(数据,这是实际文件将以偏移量开始,这是40000),F6(校验和02 000 000 04 0004)
最后一行:00000001FF声明了文件的结尾
您在中间看到的行:04 7F10 00 00000000 6D是:(起始代码),04(字节数),7F10(地址),00(数据标签),00000000(实际数据),6D(校验和04 7F10 000000 000000 000000)
由于MT_dialog
谢谢MT,这真的很有帮助。