GET_UNIQUE_ID读取出来的数据跟WCHISPTOOL显示的不相同,请问是什么原因?
CH573/CH571 跟wchisptool 对应的id 是GetMACAddress:
GetMACAddress(Buffer)
GET_UNIQUE_ID 是内部flash的序列号
拿了两块芯片,发现读出来的GET_UNIQUE_ID 是一样的,这个是正常的?所以唯一的id应该是GetMACAddress吗?
请用官网最新的SDK, /downloads/CH573EVT_ZIP.html
关于GET_UNIQUE_ID 重复是个已知问题,官网放出的SDK从1.3 就已经解决.
GetMACAddress 是在生产阶段烧录进去的,理论上,是唯一的.
那如何升级呢,主要替换哪些文件?
文档上MAC地址是6字节,为何WCPISPTool v3.1识别出来是8个或者7个字节呢?
引导的时候WSPISPTool显示是8个字节,烧录固件时MAC地址是7字节。
目前我使用官网下载的1.6版本EVT,libISP573.a的MD5为:
6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a
使用GET_UNIQUE_ID()返回的8个字节的UID都是重复的。
这种二进制方式的库建议官方将库版本硬编码进去,然后提供一个API返回版本信息。
GetMACAddress(Buffer) 获取芯片唯一ID使用上面这个函数
因为MCU是32位的,Falsh操作都是4字节为一个写单位,实际ID是6字节有效位,其他字节是填充位和校验位,可以忽略。
.A文件加版本返回这个我们下个版本会增加,谢谢。
目前1.6版本的EVT,5片芯片,通过GET_UNIQUE_ID()获取到的8个字节唯一ID仍然是重复的。请问应该如何解决?
请帮忙测试,.a文件的md5校验值前面贴了。
ISP库读这个ID有问题,更新一下文件,替换原来的SRC里面的.a文件和INC里面的.h文件。
测试了下,这个库是可以的,UID不再重复,.a文件的md5校验值为:
3d5a906753df36518feb610971272efe *libISP573.a
文件尺寸是5226字节,还是尽快把版本号硬编码到.a文件里面吧,这样不用md5就可以区分库的不同版本了。
之前有问题的版本尺寸小一些,只有4978字节,md5校验值为:
6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a
好的,下次更新会加。