大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是 MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調試注意事項。
?
介紹一下如何使用新生成的 flash 算法文件配合 J-Link 調試器在 MCUXpresso IDE 下 XIP 調試(基于 i.MXRT500)。
?
1、準備測試環(huán)境
首先需要準備好測試環(huán)境,包含必要的軟件和硬件,痞子衡的環(huán)境如下:
?
其中集成開發(fā)環(huán)境和軟件開發(fā)包需要有如下版本對應關系,因為 MCUXpresso IDE 是恩智浦基于 GCC 和 Eclipse 而設計的免費 IDE,而且主要是為恩智浦 MCU 設計的,所以跟恩智浦 MCU SDK 包有一定的捆綁關系。
?
2、新生成 flash 算法
我們測試的板卡是 MIMXRT595-EVK (Rev.C1),這個板卡默認是在 FlexSPI0 上連接的八線 Flash(MX25UM51345),J-Link 驅動里如果支持 i.MXRT500 的話默認 flash 算法也是這個八線 flash,為了測試新生成的 flash 算法,我們將板卡 rework 一下,F(xiàn)lexSPI0 連接到四線 Flash(IS25WP064)。
?
我們現(xiàn)在需要為這個四線 Flash(IS25WP064)做一個新 flash 算法,打開痞子衡的 github 開源項目如下源工程,確保工程添加的 is25wp064 相關的源文件,然后編譯生成新的 MIMXRT5XX_FLEXSPI.FLM(即 flash 算法文件)。
?
算法源工程:https://github.com/JayHeng/imxrt-tool-flash-algo/tree/master/boards/nxp_evkmimxrt595_rev.a-c/flash_algo_b0_silicon/Keil_JLink
有了新 flash 算法文件,將其放到 SEGGERJLink_V672bDevicesNXPiMXRT5xx 路徑下,為了跟默認 flash 算法區(qū)分開來,可以將其重新命名為 MIMXRT5XX_FLEXSPI_IS25WP064.FLM,順便更新 JLinkDevices.xml 文件。
?
將板卡供電,連上 Jlink 調試器,使用 JlinkCommander 的 loadbin 命令試一下新 flash 算法是否有效,在確保新 flash 算法沒問題時再進入 IDE 調試。
?
3、進入 MCUXpresso IDE 調試
?
3.1 導入 SDK 及打開示例工程
打開 MCUXpresso IDE,默認 Installed SDKs 界面框里沒有 RT500,我們直接將下載好的 SDK_2.8.0_EVK-MIMXRT595_PRC.zip 包拖到 Installed SDKs 界面框中即可。
?
這時候 Installed SDKs 界面框里可以看到 RT500,選中它然后繼續(xù)操作來導入 example,我們就選 demo_apps 下的 hello_world 例程,編譯這個工程確保沒問題。
?
3.2 更新 J-Link Server 路徑
在安裝 MCUXpresso IDE 時會同時安裝一個默認 Jlink 驅動(一般路徑在 C:Program Files (x86)SEGGERJLink),這個驅動版本不一定新,MCUXpresso 會默認調用這個驅動,但很多時候我們都是手動安裝新 Jlink 驅動來使用的(痞子衡裝在了 C:tools_mcuSEGGERJLink_V672b),前面我們新生成的 flash 算法也是放在手動安裝的 Jlink 驅動目錄下的,因此我們需要在 MCUXpresso 里重設 J-Link Server 路徑,指向手動安裝的 Jlink 驅動。
?
3.3 借助 J-Link 在線調試
看起來一切就緒了,讓我們開始在 flash 調試吧,點擊 Debug 按鈕,會看到 MCUXpresso 彈出了調試器類型選擇,并且識別到了我們連接的 J-Link,點擊 OK 確認。
?
如果出現(xiàn)下載失敗,需要查看一下自動生成的 jlink 的 .launch 文件里的設置,尤其是下面的 Device 設置,要確保與前面更新的 JLinkDevices.xml 文件里改動的腳本代碼里 Name 一欄相一致。
?
這時候可以看到 MCUXpresso 調用了 J-Link 驅動完成了代碼燒寫(這時候去讀 flash,里面的內容是燒錄正確的),但是界面并沒有停在 main 函數(shù)里,并且沒法單步調試,這是為什么?
?
3.4 滿足 MCUXpresso 調試流程
然后痞子衡去咨詢了 MCUXpresso IDE 研發(fā)團隊,得知它默認的調試流程跟一般的通用 IDE(Keil,IAR)不太一樣,一般的 IDE 可以直接引導 App 啟動來調試,但 MCUXpresso IDE 不主動引導 App,而是復位后讓 App 自然啟動,然后嘗試 Attach 上去接管調試,所以根據(jù)這個流程,我們需要做兩點必要的改動:
改動完之后,我們終于可以愉快地單步調試了。
?
至此,MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調試注意事項痞子衡便介紹完畢了,掌聲在哪里~~~