GET_UNIQUE_ID讀取出來的數(shù)據(jù)跟WCHISPTOOL顯示的不相同,請(qǐng)問是什么原因?
CH573/CH571 跟wchisptool 對(duì)應(yīng)的id 是GetMACAddress:
GetMACAddress(Buffer)
GET_UNIQUE_ID 是內(nèi)部flash的序列號(hào)
拿了兩塊芯片,發(fā)現(xiàn)讀出來的GET_UNIQUE_ID 是一樣的,這個(gè)是正常的?所以唯一的id應(yīng)該是GetMACAddress嗎?
請(qǐng)用官網(wǎng)最新的SDK, http://www.findthetime.net/downloads/CH573EVT_ZIP.html
關(guān)于GET_UNIQUE_ID 重復(fù)是個(gè)已知問題,官網(wǎng)放出的SDK從1.3 就已經(jīng)解決.
GetMACAddress 是在生產(chǎn)階段燒錄進(jìn)去的,理論上,是唯一的.
那如何升級(jí)呢,主要替換哪些文件?
文檔上MAC地址是6字節(jié),為何WCPISPTool v3.1識(shí)別出來是8個(gè)或者7個(gè)字節(jié)呢?
引導(dǎo)的時(shí)候WSPISPTool顯示是8個(gè)字節(jié),燒錄固件時(shí)MAC地址是7字節(jié)。
目前我使用官網(wǎng)下載的1.6版本EVT,libISP573.a的MD5為:
6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a
使用GET_UNIQUE_ID()返回的8個(gè)字節(jié)的UID都是重復(fù)的。
這種二進(jìn)制方式的庫(kù)建議官方將庫(kù)版本硬編碼進(jìn)去,然后提供一個(gè)API返回版本信息。
GetMACAddress(Buffer) 獲取芯片唯一ID使用上面這個(gè)函數(shù)
因?yàn)镸CU是32位的,F(xiàn)alsh操作都是4字節(jié)為一個(gè)寫單位,實(shí)際ID是6字節(jié)有效位,其他字節(jié)是填充位和校驗(yàn)位,可以忽略。
.A文件加版本返回這個(gè)我們下個(gè)版本會(huì)增加,謝謝。
目前1.6版本的EVT,5片芯片,通過GET_UNIQUE_ID()獲取到的8個(gè)字節(jié)唯一ID仍然是重復(fù)的。請(qǐng)問應(yīng)該如何解決?
請(qǐng)幫忙測(cè)試,.a文件的md5校驗(yàn)值前面貼了。
ISP庫(kù)讀這個(gè)ID有問題,更新一下文件,替換原來的SRC里面的.a文件和INC里面的.h文件。
測(cè)試了下,這個(gè)庫(kù)是可以的,UID不再重復(fù),.a文件的md5校驗(yàn)值為:
3d5a906753df36518feb610971272efe *libISP573.a
文件尺寸是5226字節(jié),還是盡快把版本號(hào)硬編碼到.a文件里面吧,這樣不用md5就可以區(qū)分庫(kù)的不同版本了。
之前有問題的版本尺寸小一些,只有4978字節(jié),md5校驗(yàn)值為:
6c988fba76fc39811d6e0f11fc0e91d1 *libISP573.a
好的,下次更新會(huì)加。