說到燒錄程序,我最(zui)開(kai)始接(jie)觸學習(xi)的是STC的51單片機,通過(guo) STC-ISP 燒錄軟件連接(jie)串口下(xia)載程序。后來學習(xi)STM32,也可(ke)以通過(guo)串口下(xia)載,為了(le)方便在機調試,使用 J-Link 連接(jie) JTAG/SWD 下(xia)載和調試程序。
現在來(lai)整理下(xia)單片機下(xia)載程序方(fang)式。
單片機(ji)燒錄方式主要分(fen)為三種:ICP、IAP、ISP。
ICP (In Circuit Programing) - 在(zai)線電路編程
ISP (In System Programing) - 在線系統編程
IAP (In applicating Programing) - 在線應用編程
常用的下載方式有
JTAG編程:通過JTAG協(xie)議進行編程
SWD編程:通過(guo)SWD協議進(jin)行(xing)編程
UART編程(cheng):通過UART進行編程(cheng)
ICP是(shi)指“在電路編程”。一般需要 xx-Link 燒錄工具,連接PC和MCU。
常用(yong)的(de)燒錄工具為(wei)J-Link、ST-Link、Nu-Link。與(yu)之配(pei)套的(de)燒錄軟件(jian)為(wei)J-Flash、st-link utility、NuMicro_ICP_Programming_Tool。通過SWD接口進行(xing)燒錄。這種方式某些情況下可以(yi)重寫LDROM(也就是BootLoader,啟動引導程序或(huo)引導區)
比如新唐單片(pian)機,PC上(shang)運(yun)行(xing)的(de)軟件“NuMicro ICP編程工具”透過SWD的(de)端口更新晶片(pian)內部LDROM、APROM、數據(ju)閃(shan)存(DataFlash)和(he)目標(biao)用(yong)戶配置(zhi)字(Config)芯片(pian)。
image.png
ISP是(shi)指“在系統上(shang)編程(cheng)”。一般通過PC串口(kou)就可以下載程(cheng)序(通常(chang)需要(yao)串口(kou)轉換模(mo)塊,比如PL2303、RS-485等)。
比如(ru)新唐單片(pian)(pian)機,目標芯片(pian)(pian)使用USB/UART/SPI/I2C/RS-485/CAN周邊接口的(de)LDROM引導代碼去更新晶片(pian)(pian)內部(bu)APROM、數(shu)據閃存(DataFlash)和用戶配置(zhi)字(zi)(Config)。
image.png
這種方式需要單片機首先要已寫入 LDROM / BootLoader
。比如8051單片機出(chu)廠(chang)就(jiu)(jiu)已經(jing)寫入(ru),所以方便(bian)新手通過(guo)ISP+串口(kou)下(xia)載(zai)程(cheng)序(xu)。新唐51單片機出(chu)廠(chang)就(jiu)(jiu)沒有寫入(ru),第一次需要(yao)購買 Nu-Link,通過(guo)ICP寫入(ru)LDROM。
IAP是指(zhi)“在(zai)應用上程(cheng)序設計”,通過(guo)軟件實現在(zai)線(xian)電擦除和編程(cheng)的方法。IAP技術(shu)是從結構上將Flash存(cun)儲(chu)器(qi)映(ying)射為(wei)兩個(ge)(ge)存(cun)儲(chu)體(ti)(ti),當(dang)運行(xing)一(yi)個(ge)(ge)存(cun)儲(chu)體(ti)(ti)上的用戶程(cheng)序時,可(ke)對(dui)另(ling)一(yi)個(ge)(ge)存(cun)儲(chu)體(ti)(ti)重新編程(cheng),之后將程(cheng)序從一(yi)個(ge)(ge)存(cun)儲(chu)體(ti)(ti)轉向另(ling)一(yi)個(ge)(ge)。
在線系統/程序升級就是使用該功能。
適用于所有電(dian)子電(dian)路制造行業、及半(ban)導(dao)體相(xiang)關產業