1. 背景
2. 準(zhǔn)備工作
2.1 硬件準(zhǔn)備
2.2 軟件準(zhǔn)備
3. PE工具腳本語法介紹
4. 操作實(shí)例
4.1 通用腳本的寫法
4.2 命令行的寫法
4.3 批處理文件的寫法
5. 總結(jié):
6. 免責(zé)聲明:
1. 背景
前段時(shí)間,內(nèi)部同事討論到使用Umultilink去批量燒錄的可能性,想起曾經(jīng)做過類似的嘗試,并被客戶批量生產(chǎn)所采用。想來也是一個(gè)經(jīng)濟(jì)實(shí)惠的操作,此處總結(jié)下,方便有需求的用戶加以應(yīng)用和擴(kuò)展。
USB Multilink Universal 是PEmicro的一款簡單易用的調(diào)試和編程工具,允許通過USB接口與NXP多種處理器進(jìn)行通信,包括S08、S12、ColdFire、MPC55xx/56xx、Kinetis以及S32K等多款MCU,同時(shí)其也支持ST、Cypress、Microchip、Nordic、Renesas等MCU廠商,甚至還支持國產(chǎn)的芯片公司如GD、Auto chips、MindMotion靈動(dòng)微、Zhixin等。Multilink的速度和可靠性非常適合產(chǎn)品開發(fā)階段,可以與市場(chǎng)上NXP主流的工具鏈無縫銜接,如CodeWarrior、S32DS、MCUXPresso、IAR、Keil、Cosmic和Mentor Graphics等,價(jià)格相對(duì)比較便宜(最常用的Multilink FX官網(wǎng)報(bào)價(jià)199刀),目前在市場(chǎng)上保有量很高。
而在量產(chǎn)階段,PEmicro也提供了一套工具叫做Cyclone Programmers,提供編程Image的板載存儲(chǔ)、為目標(biāo)提供電源,而且可以通過 PC 進(jìn)行控制,也可以脫機(jī)燒寫。在配置完成后產(chǎn)線工作人員只需要按一個(gè)啟動(dòng)按鈕即可完成程序的燒錄。當(dāng)然Cyclone 編程器也支持開發(fā)過程中用作調(diào)試器,并受到許多 IDE 的支持,但是鑒于其999刀的價(jià)格用來調(diào)試程序有點(diǎn)殺雞用牛刀的意思,所以大都是作為量產(chǎn)工具使用。
那么問題來了, 買不起999刀Cyclone Programmers,能否使用199刀Multilink作為量產(chǎn)工具呢?答案當(dāng)然是可以的,而且還是無需打開GUI界面悄無聲息的那種。本文的目標(biāo)就是讓大家不用拼夕夕,不用京冬冬,更不用淘寶寶,便可立省600美刀(最高立省800美刀),省錢的操作就是這么的樸素?zé)o華,卻熠熠生輝。
2. 準(zhǔn)備工作
2.1 硬件準(zhǔn)備
USB Multilink Universal、USB Multilink Universal FX 或者M(jìn)ultilink ACP,相信老Freescale的用戶對(duì)前面兩個(gè)不會(huì)陌生,最后一個(gè)倒是有些默認(rèn),簡單的來說它是一個(gè)cost down版本,只支持ARM Cortex-M 內(nèi)核產(chǎn)品的燒錄。
2.2 軟件準(zhǔn)備
Umultilink 驅(qū)動(dòng):USB Multilink Resources Install
序列號(hào)生成工具(Optional):Serialize Utility
Flash/EEPROM編程軟件:PROG Flash Programming Software
要指出的是第3個(gè)軟件不是完全免費(fèi)的,如下圖,對(duì)于DSC和NEXUS內(nèi)核是免費(fèi)的,妥妥立省800刀,而對(duì)于S08、S12、PowerPC5xx/8xx、Kinetis、LPC及S32K等ARM內(nèi)核的MCU都是需要額外收費(fèi)的,價(jià)格是統(tǒng)一的199刀,這也就是前文為何說立省600刀的原因。
Note: Flash/EEPROM編程軟件 LICENSE是和Umultilink的HW序列號(hào)綁定的,也就意味著不能一個(gè)軟件license不能同時(shí)用在多個(gè)Umultilink上。如果需要多個(gè)License,PE官網(wǎng)按照Quantity是有折扣的,譬如說10個(gè)License,價(jià)格降到139美刀了;

其實(shí)對(duì)于PROG-HL-ARM版本還是很劃算,它涵蓋了市場(chǎng)上不同MCU廠家的大部分ARM內(nèi)核處理器,如NXP、ST、Microchip、Nordic、Renesas等,甚至還有國產(chǎn)的芯片公司如Auto chips、MindMotion靈動(dòng)微、Zhixin等,可以說是一個(gè)License在手,各家MCU編程功能我有,秒變Cyclone,如下截圖是已經(jīng)支持的廠商列表。回想當(dāng)初,曾幾何時(shí),PEmicro的工具基本是Freescale芯片專屬,現(xiàn)如今支持的廠商越來越多,可見如今不僅MCU市場(chǎng)卷,工具市場(chǎng)也很卷啊。

除此之外,該版本甚至還支持對(duì)外部SPI nor Flash的編程,對(duì)于如IMXRT系列這類沒有內(nèi)部Flash,需要外掛Nor Flash的芯片來說也是支持的,已經(jīng)支持的比較常用的vendor包括華邦Winbond、Microchip、ISSI、Microchip、旺宏MXIC、Adesto等,以部分ISSI SPI Nor Flash的支持為例如下圖2。

當(dāng)然,鑒于不同Norflash廠家的Feature,譬如是否支持SFDP,是否支持8線,是否支持DDR,是否需要Byte Swap,QE位位置的差異等,其算法完全無縫支持市場(chǎng)上所有的Nor Flash型號(hào)也不現(xiàn)實(shí)(筆者在里面吃過不少苦頭,心累),所以PEmicro也承諾可以幫用戶去做定制,而且是免費(fèi)的,甚至可以提供源代碼讓客戶自己修改。

3. PE工具腳本語法介紹
在安裝完以上軟件后,下一步就可以開始去編寫自動(dòng)化燒錄的控制腳本程序了,在此之前還是需要了解下P&E工具腳本語法,本章節(jié)期望對(duì)關(guān)鍵信息點(diǎn)能夠簡明扼要的進(jìn)行介紹,需要進(jìn)一步擴(kuò)展應(yīng)用的可以參考PROGXXX_User_Manual。
P&E常用的調(diào)試工具包括Umultilink、Cyclone等, 但其腳本語法總體類似,如下以DSC內(nèi)核的MWCT1003為例做一介紹,其語法格式如下:
CPROGDSC[?][filename][/PARAMn=s][v][reset_delayn][bdm_speedn][hideapp][Interface=x][port=y][showports][-usebyteaddr][/logfilelogfilename]示例: CPROGDSC:ENGINE.CFGINTERFACE=USBMULTILINKPORT=PE5650030//燒錄DSC內(nèi)核器件 CPROGARM:ENGINE.CFGINTERFACE=USBMULTILINKPORT=PE5650030//燒錄ARM內(nèi)核器件
可以看到其包含很多參數(shù),對(duì)應(yīng)每個(gè)參數(shù)的含義如下:
[filename]-- 包含編程命令的配置腳本;default = prog.cfg,一個(gè)簡單的配置腳本的寫法如下。該腳本對(duì)于以前使用過999美刀的Cyclone或者Cyclone FX的用戶或許不會(huì)陌生,其和Cyclone GUI配置界面的操作步驟完全一樣。

[/PARAMn=s]-- 指定命令行參數(shù),用于替代可執(zhí)行腳本.CFG中的特殊標(biāo)號(hào),譬如說芯片的型號(hào),S19文件的位置,以及.CFG腳本中需要執(zhí)行的BM(Blank Check)/EM(Erase Flash)/VM(Verify)等步驟;
[v]-- 指示編程器在programming 或者verify之前不需要檢查S19文件的地址范圍,這個(gè)選項(xiàng)可以加快用戶編程速度,該選項(xiàng)不建議打開;
[reset_delay n]-- 指定在Reset MCU后多長時(shí)間去查看芯片是否進(jìn)入background debug,單位是ms。這個(gè)參數(shù)主要是用在外部有類似UM803/UM805等的延時(shí)復(fù)位芯片的場(chǎng)合,編程器需要等待這些延時(shí)復(fù)位芯片完全釋放才能嘗試去編程,否則會(huì)出錯(cuò);
[bdm_speed n]-- 指定BDM shift clock speed速度, 計(jì)算公式: USB Multilink (includes Universal): (1000000/(N+1)) Hz
[INTERFACE=x]-- X 可以是USBMULTILINK/CYCLONE/PARALLEL 三個(gè)參數(shù)中的一個(gè),其中PARALLEL 并口下載很陳舊,很少再用到,對(duì)于本文來說UMULTILINK 就選擇USBMULTILINK;
[PORT=y]-- y代表USBx,此處的x =1,2,3... 主要用于同時(shí)連接Cyclone, Tracelink, 或者 Multilink的場(chǎng)景,如果只連接其中一種硬件,就只有USB1。舉例來說,如果PC端只連接一種debug硬件,配置可以是: INTERFACE=USBMULTILINK PORT=USB1
[showports]-- 用于顯示PC端已連接的Debug端口,會(huì)保存在ports.txt并存儲(chǔ)在CPROG文件目錄中;
[?]-- 用于暫停命令行執(zhí)行,并顯示編程結(jié)果,使用時(shí)需要把該選項(xiàng)作為第一個(gè)參數(shù);
[hideapp]-- 指定是否顯示命令行窗口,通常在調(diào)試階段建議打開,方便查看錯(cuò)誤信息,量產(chǎn)時(shí)無需打開;
[-usebyteaddr]-- 指定S19文件時(shí)字節(jié)對(duì)齊還是word對(duì)齊,通常默認(rèn)word對(duì)齊方式 ;
[/logfile logfilename]-- 打開log輸出,使能該選項(xiàng)后可以把調(diào)試過程中執(zhí)行的命令以及錯(cuò)誤信息全部打印到名稱為logfilename的文件中,方便分析改進(jìn);
4. 操作實(shí)例
通過腳本命令控制Umultilink作為量產(chǎn)工具在實(shí)現(xiàn)上有兩種思路:一種是把所有對(duì)芯片的Selection、Reset、Flash algorithm selection、erase、blank check、待燒錄S19文件的選擇都手動(dòng)添加到.CFG腳本中,另外一種是使用一套通用的帶默認(rèn)參數(shù)的.CFG腳本,然后在執(zhí)行命令時(shí)傳入?yún)?shù)。
顯然第二種方式更加靈活,用戶可以直接在命令行中靈活替換通用腳本中的參數(shù),從而支持更多的芯片型號(hào),選擇燒寫算法以及指定燒錄文件位置,避免重復(fù)造輪子的工作。除此之外,第一種方式還一個(gè)缺點(diǎn)是CFG腳本中只支持絕對(duì)路徑,不支持相對(duì)路徑,更換電腦或者目錄都可能導(dǎo)致原有的配置無法工作,所以第二種方法是比較建議的,下文就以第二種方法進(jìn)行講解。
4.1 通用腳本的寫法
:DEVICE /PARAM1;Select target device to program RE ;Reset the MCU CM /PARAM2;Choose Flash Module EM ;Erase the module BM ;Blank Check the module SS /PARAM3 ;Specify the S19 to use PM ;Program the module with the S19 /PARAM4 ;Verify the module again
4.2 命令行的寫法
一個(gè)完整的示例如下,具體每個(gè)參數(shù)的含義可以參考上面的表述,只能說”很顯然“()
C:PEMICROCPROGDSC INTERFACE=CYCLONE PORT=USB1 BDM_SPEED 1 C:PROJECTGENERIC.CFG /PARAM1=MWCT1013A /PARAM2=C:PEMICROfreescale_mwct1013a_1x16x144k_all.dsp “/PARAM3=C:PEMICROEXAMPLE FILESTEST.S19” /PARAM4=VM
Note:1. 以上整個(gè)command是連續(xù)的,每個(gè)參數(shù)之間只有空格,不能有行break; 2. 如果其中參數(shù)有空格,需要引號(hào)引起來,例如 “/PARAM3=C:PEMICROEXAMPLE FILESTEST.S19"
4.3 批處理文件的寫法
對(duì)于產(chǎn)線來說,如果每次敲入命令行是比較繁瑣的,所以可以保存成.bat批處理文件,這樣就可以被產(chǎn)線自動(dòng)化測(cè)試的FCT站直接調(diào)用,悄無聲息的完成燒錄和驗(yàn)證的流程。
如下批處理文件的寫法,其中errorlevel是USBMULTILINK的返回值,用于判斷命令行是否正確執(zhí)行;
C:PEMicroPROGDSCcprogdsc.exe INTERFACE=USBMULTILINK PORT=USB1 D:YU_CustomerXXXGENERIC.CFG /PARAM1=MWCT1013A /PARAM2=C:PEMicroPROGDSCAlgorithmsfreescale_mwct1013a_1x16x144k_all.dsp /PARAM3=D:YU_CustomerXXXTEST.elf.S /PARAM4=VMif errorlevel 1 goto bad goto good :bad ECHO BAD BAD BAD BAD BAD BAD BAD BAD ECHO %errorlevel% :good ECHO done pause
完成以上步驟后,在電腦端可以直接執(zhí)行雙擊第三步的.bat文件即可實(shí)現(xiàn)對(duì)目標(biāo)板的燒錄,整個(gè)過程都是在后臺(tái)自動(dòng)執(zhí)行的(前提是在命令行中配置了hideapp選項(xiàng)),可以很方便的集成到自動(dòng)化生產(chǎn)線的FCT站中。當(dāng)然,考慮到程序燒錄的健壯性,建議額外加入一些錯(cuò)誤處理機(jī)制,如4.3章節(jié)中的批處理文件,就會(huì)對(duì)errorlevel返回值進(jìn)行判斷。如下是上面腳本出錯(cuò)時(shí)的執(zhí)行結(jié)果(沒有使能hideapp選項(xiàng)),可以看到會(huì)有出錯(cuò)的提示信息。

5. 總結(jié):
上文講解了Multilink作為量產(chǎn)工具所需要做的準(zhǔn)備工作,支持的器件,P&E工具腳本語法,并結(jié)合一個(gè)具體實(shí)例介紹了通用腳本的寫法、命令行的寫法以及批處理文件的寫法,方便有需要的用戶以Multilink作為量產(chǎn)工具,實(shí)現(xiàn)低成本的量產(chǎn)工具。除去離線燒錄和加密存儲(chǔ)之外,Cyclone能實(shí)現(xiàn)的基本功能U-Multilink大都能夠?qū)崿F(xiàn),真正的實(shí)現(xiàn)低成本。當(dāng)然,如果不差錢,Cyclone還是優(yōu)先推薦,畢竟其支持加密文件存儲(chǔ)這點(diǎn)還是很強(qiáng)大的,可以把binary文件生成加密的SAP格式,防止知識(shí)產(chǎn)權(quán)被非法竊取。
原文標(biāo)題:如何巧用U-Multilink作為量產(chǎn)工具最高立省800刀
文章出處:【微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
芯片
+關(guān)注
關(guān)注
462文章
53491瀏覽量
458380 -
文件存儲(chǔ)
+關(guān)注
關(guān)注
0文章
17瀏覽量
10755 -
腳本
+關(guān)注
關(guān)注
1文章
407瀏覽量
29044 -
調(diào)試程序
+關(guān)注
關(guān)注
0文章
10瀏覽量
2224
原文標(biāo)題:如何巧用U-Multilink作為量產(chǎn)工具最高立省800刀
文章出處:【微信號(hào):pzh_mcu,微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
所見即所得——Luban-Lite VS Code插件讓開發(fā)實(shí)現(xiàn)“命令行自由”
解析K8S實(shí)用命令
淺談wsl --update` 命令行選項(xiàng)無效的解決方案
【米爾-RK3562開發(fā)板試用評(píng)測(cè)】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-(綠色)RUN 燈、(紅色)User燈
請(qǐng)問如何通過S32K312命令行構(gòu)建代碼?
樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!
使用NXP MCX-N板卡新增命令控制
如何用幾條命令搞定Ubuntu系統(tǒng)的網(wǎng)絡(luò)配置

通用腳本的寫法以及命令行的寫法
評(píng)論