大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是MCUXpresso IDE下使用J-Link下載算法在Flash調試注意事項。
痞子衡前段時間寫過一篇小文《為i.MXRT設計更新Segger J-Link Flash下載算法文件》,介紹了痞子衡在github上的開源i.MXRT下載算法項目,這個項目收集了幾乎所有i.MXRT型號的J-Link flash下載算法源工程,基於這個源工程可以很輕松修改生成不同flash的算法文件用於各大IDE以及J-Flash。今天痞子衡就來介紹一下如何使用新生成的flash算法文件配合J-Link調試器在MCUXpresso IDE下XIP調試(基於i.MXRT500)。
一、准備測試環境
首先需要准備好測試環境,包含必要的軟件和硬件,痞子衡的環境如下:
其中集成開發環境和軟件開發包需要有如下版本對應關系,因為MCUXpresso IDE是恩智浦基於GCC和Eclipse而設計的免費IDE,而且主要是為恩智浦MCU設計的,所以跟恩智浦MCU SDK包有一定的捆綁關系。
二、新生成flash算法
我們測試的板卡是MIMXRT595-EVK (Rev.C1),這個板卡默認是在FlexSPI0上連接的八線Flash(MX25UM51345),J-Link驅動里如果支持i.MXRT500的話默認flash算法也是這個八線flash,為了測試新生成的flash算法,我們將板卡rework一下,FlexSPI0連接到四線Flash(IS25WP064)。
我們現在需要為這個四線Flash(IS25WP064)做一個新flash算法,打開痞子衡的github開源項目如下源工程,確保工程添加的is25wp064相關的源文件,然后編譯生成新的MIMXRT5XX_FLEXSPI.FLM(即flash算法文件)。
有了新flash算法文件,將其放到 \SEGGER\JLink_V672b\Devices\NXP\iMXRT5xx 路徑下,為了跟默認flash算法區分開來,可以將其重新命名為MIMXRT5XX_FLEXSPI_IS25WP064.FLM,順便更新JLinkDevices.xml文件。
將板卡供電,連上Jlink調試器,使用JlinkCommander的loadbin命令試一下新flash算法是否有效,在確保新flash算法沒問題時再進入IDE調試。
三、進入MCUXpresso IDE調試
使用MCUXpresso IDE導入SDK_2.8.0_EVK-MIMXRT595_PRC包里demo_apps下的hello_world工程。
3.1 更新J-Link Server路徑
在安裝MCUXpresso IDE時會同時安裝一個默認Jlink驅動(一般路徑在C:\Program Files (x86)\SEGGER\JLink),這個驅動版本不一定新,MCUXpresso會默認調用這個驅動,但很多時候我們都是手動安裝新Jlink驅動來使用的(痞子衡裝在了C:\tools_mcu\SEGGER\JLink_V672b),前面我們新生成的flash算法也是放在手動安裝的Jlink驅動目錄下的,因此我們需要在MCUXpresso里重設J-Link Server路徑,指向手動安裝的Jlink驅動。
3.2 借助J-Link在線調試
看起來一切就緒了,讓我們開始在flash調試吧,點擊Debug按鈕,會看到MCUXpresso彈出了調試器類型選擇,並且識別到了我們連接的J-Link,點擊OK確認。
如果出現下載失敗,需要查看一下自動生成的jlink的.launch文件里的設置,尤其是下面的Device設置,要確保與前面更新的JLinkDevices.xml文件里改動的腳本代碼里Name一欄相一致。
這時候可以看到MCUXpresso調用了J-Link驅動完成了代碼燒寫(這時候去讀flash,里面的內容是燒錄正確的),但是界面並沒有停在main函數里,並且沒法單步調試,這是為什么?
3.3 滿足MCUXpresso調試流程
然后痞子衡去咨詢了MCUXpresso IDE研發團隊,得知它默認的在Flash調試流程是不主動引導App,而是復位后讓App自然啟動,然后嘗試Attach上去接管調試,所以根據這個流程,我們需要做兩點必要的改動:
- 更新flash_config頭(將hyper flash配置改為QSPI Flash配置),需要與板卡連接的flash相匹配
- 設置ISP模式為從Flash啟動,保證reset之后ROM能引導App從Flash正常啟動
改動完之后,我們終於可以愉快地單步調試了。
至此,MCUXpresso IDE下使用J-Link下載算法在Flash調試注意事項痞子衡便介紹完畢了,掌聲在哪里~~~
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平台上。
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。