類似前段時間我寫的兩篇關于知識產權保護芯片加密的文章,這次再聊一聊產品量產時常需要考慮的另一個問題——燒寫序列號。貌似最近跟“量產”杠上了,呵呵,作為產品生產周期的最后一環,需要考慮的問題很多,不著急,咱以后慢慢聊,哈哈~
在產品批量生產的時候,很多人會有這樣的需求,即將每個芯片燒寫一個唯一的ID號(Serial Number),以方便對產品進行跟蹤和管理或者滿足對芯片進行綁定ID號加密的需要。而為了提高整個批量生產過程的效率,選擇一個好的燒寫工具則至關重要。對飛思卡爾的Kinetis系列來說,可用的燒寫方案包括P&E官方的Cyclone MAX(支持在線燒寫和脫機燒寫,當然價格較貴)和J-Link(僅支持在線燒寫,需要仿真器+上位機配合)等,本篇就以最近比較火的Freescale M0+ Kinetis L系列為例詳細介紹一下J-Link+J-Flash批量燒寫串號的方案(說到此,不得不感嘆J-Link的強大,高速的下載和調試,豐富的IDE支持和調試組件和強有力的調試功能,再加上……咳咳(大家都懂的),不是土豪人家是金啊,怎一個NB了得):
開發平臺:Kinetis L系列KL15Z128
燒寫工具:J-Link + J-Flash(v4.76f)
(1) 這里我就不單獨對J-Flash多作介紹了,可以參考我之前的一篇文章《教你用J-Flash ARM工具單獨燒寫程序到Kinetis》,至于包括J-Flash在內的軟件包可以直接到SEGGER官網下載http://www.segger.com/jlink-software.html,建議下載最新版的,支持的芯片系列較全,相應的組件功能也更強大;
(2) 打開J-Flash(路徑為Start->All Programs->SEGGER->J-Link ARM V4.76f->J-Flash),在最新版本中會直接彈出選擇已有工程選項卡,根據需要在路徑"安裝路徑\SEGGER\JLinkARM_V476f\Samples\JFlash\ProjectFiles\Freescale”下選擇自己的目標芯片(我這里選擇MKL15Z128xxx4.jflash,木辦法,手里只有這個),選擇如下圖:
(3) 點擊“start J-Flash”進入工程管理界面,然后點擊File->Open data file,找到需要下載的bin文件或者S19文件,將其加載到jflash工程里面,加載之后的界面如下圖:
(4) 萬事具備,接下來就開始進行燒寫序列號的設置。點擊“Options->Project Settings->Production”,選中“Program Serial Number”,設置如下:
(5) 點擊“OK”,設置完畢(只設置一次即可),然后連接目標芯片“Target->Connect”,連接成功,點擊“Auto”,系統會自動將設置好的序列號添加到s19文件相應的地址,然后啟動下載,同時也會在Jflash的工程目錄(之前加載的sample prject的目錄)下生成一個“<JFlashProjectName>_Serial.txt”,內容如下圖,其中“12345679”為下次要寫入的數據,系統自動為其加1了(由“Increment”決定):
(6) 我們回讀燒寫到片子中的數據(Target->Read Back->Entire chip),然后跳轉到“0x2000”地址,可以看到序列號(12345678的十六進制)已經寫入,如下圖:
注意事項:
(1) 在燒寫的時候,必須點擊“Auto”下載,這樣才會生成“<JFlashProjectName>_Serial.txt”文件,且會把序列號自動添加到s19文件然后燒進去,直接點擊“Program”或者“Program&Verify”等燒寫功能只會燒寫原始S19文件,不會添加序列號;
(2) J-Flash燒寫序列號最多支持4個字節,高于四個字節的數據J-Flash會將前四個字節取反再燒進去,所以實際上起作用的還是4個字節,不過單純作為序列號的話肯定是足夠了,4個字節32個比特位,IPv4的地址也就這些吧,呵呵,想不到會有什么產品會超過這個范圍,那樣的話Freescale超越當年的Motorola也不是問題了啊,哈哈;
(3) 關于燒寫地址的問題,理論上只要在目標芯片的Code Flash地址范圍內并且不與原始運行代碼地址重疊即可,因為J-Flash燒寫的原理是先添加數據到原始bin或者S19文件相應的位置然后整個文件一塊燒寫進去,所以寫序列號的時候不需要額外的再擦寫扇區一次也就是不會破壞同在一個扇區的原始數據,不過當然如果flash空間足夠大的話不建議將序列號燒寫地址挨著原始代碼太近,建議將序列號寫到Flash的最后,規避風險;
(4) 實際上采用J-Flash也可以燒寫多余4個字節的數據,不過這需要手動添加編輯txt文件,這里就不多說了,可以參考附件中文檔。
最近忙的不可開交,抽空終于把這篇文檔完成了,不容易啊不容易,下次再聊,未完待續~
UM08003_JFlashARM.pdf
(559.81 KB, 下載次數: 37)
2015-6-24 16:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|