XMC1402使用Jlink調試記錄

工作需要自己畫了一塊基於XMC1402-T038-X0128芯片的板子。第一次自己畫英飛凌,記錄一下配置調試環境的過程。

使用的調試軟件是memtool和DAVE,計劃採用的接口爲SWD,這是根據英飛凌自己的一塊評估板定的,用到一個8pin的接口(其實不算是接口,沒有這樣的標準接口,實際是杜邦線插的)

首先瞭解到芯片出廠狀態是ASC_BSL即串口的啓動模式,這是由BMI寄存器決定的。在ASC_BSL模式下,燒寫需要通過串口進行,並且軟件不會運行。可以在英飛凌論壇上搜索“XMC調試”找到一些相關的說法。BMI可以通過英飛凌的memtool通過串口連接進行修改。我使用了CH340連接上位機和單片機。默認的串口是0.14-RX,0.15-TX或者1.3-RX,1.2-TX。上圖1.2和1.3這兩個口似乎抄XMC4700評估板的作業錯了,也有可能是4700和1402不同,實際應以1402的數據手冊2.2.2爲準。

打開memtool,由於是自己畫的板子,沒有默認的目標配置,自己新建一個。下圖點new

   

Controller0 如下圖配置。(這裏的Type不知爲什麼選上1402T038,返回之後又會變回F064,在本例中沒有影響。)

 

CORTEX 選擇Minimonitor,即串口的接口。

 

保存配置。再打開Setup。

 

選擇CH340

 

完成後點擊連接就顯示已連接至目標。將hex讀取到FLASH中,就可以燒寫了。

 

但如之前所說,串口模式下程序不會運行,所以需要修改BMI爲UMD(用戶調試)模式。燒寫之前點擊上圖右下角的Setup,在Program選項卡中勾選Set boot mode after program。我選擇了1.3和1.2的SWD接口。

 

這樣燒寫之後BMI就變成了SWD模式,燒寫可能會顯示失敗,同時報連接錯誤。現在可以退出memtool。理論上memtool也能用SWD連上單片機,但我沒有成功,原因未知,可能和下面用到的Jlink-OB有關,不知道換成英飛凌的調試器會不會好。

換上Jlink連接好對應引腳。使用的Jlink是某寶20塊錢的Jlink-OB。在進行下一步之前,確認Jlink的驅動版本不要太老,否則不支持XMC1400系列,如商家提供的V4.92。可以自行到Segger網站下載更新的版本,我下載了V5.12。

Jlink安裝好以後可以打開Commander看看SWD連接是否正常。下圖是4.92的界面,可以看到已經連接到了目標,識別到Cortex-M0。這裏的interface speed應該不正確,是1000kHz。

 

現在打開DAVE(版本4.4.2)。先配置debbuger,選擇configurations

雙擊GDB SEGGER J-Link Debbuging,新建一個配置。Browse一下elf的路徑,然後在Debugger選項卡中確認一下是否是USB、SWD。

 

Apply之後直接Debug報錯,原因是找不到GDBServer(可能和我Jlink安裝位置有關,不知道默認安裝位置會不會報錯)。在DAVE的Window-Preferences-Run/Debug-SEGGER J-Link中,Browse一下Jlink的安裝目錄。

 

不出意外現在點小蟲子就可以進入調試模式了!

如果出現如下錯誤,更新一下Jlink驅動的版本

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章