1. 市面上的常用仿真器對 SWD 模式支持情況
2. SWD 硬件接口上的不同
測試環境
MDK 開發環境 版本號:V4.22
J-Flash ARM 燒寫軟件版本號:V4.02e
接線模式
功能狀態 |
VCC、SWDIO、SWCLK GND (2根信號線對電源上拉10K電阻,此電阻在我們的小轉接板上) |
VCC、SWDIO、SWCLK GND (2根信號線對電源無上拉10K電阻,此電阻在我們的小轉接板上未焊接) |
VCC、SWDIO、SWCLK RST、GND |
SWDIO、SWCLK 、GND |
VCC、SWDIO、SWCLK |
MDK 下載及仿真 |
正常 |
正常 |
正常 |
不能下載 |
不能下載 |
MDK |
正常 |
正常 |
正常 |
不能下載 |
不能下載 |
MDK |
不穩定 |
不穩定 |
不穩定 |
不能下載 |
不能下載 |
下載時目標板是否需手動重啟 |
不需要 |
不需要 |
不需要 |
\ |
\ |
J-Flash ARM 下載 |
正常 |
正常 |
正常 |
不能下載 |
不能下載 |
MDK\options\Debug\setting \SW device 窗口 |
能正常識別芯片ID |
能正常識別芯片ID |
能正常識別芯片ID |
未能識別出芯片ID |
未能識別出芯片ID |
備注:我用2個編程器對以上情況分別進行了測試,一個編程器是未進行升級的,另一個編程器進行了升級(升級到了4.80b),但升級最后時出現點小問題在4.7.3的MDK下仿真有問題。未升級的編程器按照上述方法進行SWD下載,功能正常,但是那個升級過的編程器無法采用SWD下載,在MDK\options\Debug\setting\SW device 窗口 識別器件ID時總出現如下圖片:
原因分析:可能是升級過的編程器自身有問題,但這個編程器在4.22的MDK下用JTAG方式能夠正常下載及仿真。
二、使用J-Flash ARM 下載時一些問題
原因分析:出現此類情況,表明軟件與J-Link仿真器未能成功連接,但此時J-Link 在MDK 下卻仍能正常使用。解決此類問題的最有效方法是重啟電腦,有時多插拔幾次J-Link 編程器也能解決,有時把同時開著的MDK 關閉后,重新插拔J-Link也能解決。判斷此種故障一方面是編程器自身原因,一方面是電腦安裝的SEGGER 公司的J-Link 驅動軟件版本低,還有一種可能就是J-Link被MDK 占用了。
正常連接時,如下圖:
未正常連接時如下圖: