大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是 MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調試注意事項。
介紹一下如何使用新生成的 flash 算法文件配合 J-Link 調試器在 MCUXpresso IDE 下 XIP 調試(基于 i.MXRT500)。
1、準備測試環境
首先需要準備好測試環境,包含必要的軟件和硬件,痞子衡的環境如下:
集成開發環境:MCUXpresso IDE v11.2.0_4120
軟件開發包:SDK_2.8.0_EVK-MIMXRT595_PRC(Toolchain 需包含 MCUXpresso IDE)
軟件驅動:J-Link driver v6.72b
硬件工具:J-Link Plus 調試器
硬件開發板:MIMXRT595-EVK (Rev.C1)
其中集成開發環境和軟件開發包需要有如下版本對應關系,因為 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 一下,FlexSPI0 連接到四線 Flash(IS25WP064)。
我們現在需要為這個四線 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 算法文件,將其放到 /SEGGER/JLink_V672b/Devices/NXP/iMXRT5xx 路徑下,為了跟默認 flash 算法區分開來,可以將其重新命名為 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,選中它然后繼續操作來導入 example,我們就選 demo_apps 下的 hello_world 例程,編譯這個工程確保沒問題。
3.2 更新 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.3 借助 J-Link 在線調試
看起來一切就緒了,讓我們開始在 flash 調試吧,點擊 Debug 按鈕,會看到 MCUXpresso 彈出了調試器類型選擇,并且識別到了我們連接的 J-Link,點擊 OK 確認。
如果出現下載失敗,需要查看一下自動生成的 jlink 的 .launch 文件里的設置,尤其是下面的 Device 設置,要確保與前面更新的 JLinkDevices.xml 文件里改動的腳本代碼里 Name 一欄相一致。
這時候可以看到 MCUXpresso 調用了 J-Link 驅動完成了代碼燒寫(這時候去讀 flash,里面的內容是燒錄正確的),但是界面并沒有停在 main 函數里,并且沒法單步調試,這是為什么?
3.4 滿足 MCUXpresso 調試流程
然后痞子衡去咨詢了 MCUXpresso IDE 研發團隊,得知它默認的調試流程跟一般的通用 IDE(Keil,IAR)不太一樣,一般的 IDE 可以直接引導 App 啟動來調試,但 MCUXpresso IDE 不主動引導 App,而是復位后讓 App 自然啟動,然后嘗試 Attach 上去接管調試,所以根據這個流程,我們需要做兩點必要的改動:
更新 flash_config 頭(將 hyper flash 配置改為 QSPI Flash 配置),需要與板卡連接的 flash 相匹配
設置 ISP 模式為從 Flash 啟動,保證 reset 之后 ROM 能引導 App 從 Flash 正常啟動
改動完之后,我們終于可以愉快地單步調試了。
至此,MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調試注意事項痞子衡便介紹完畢了,掌聲在哪里~~~
審核編輯 黃昊宇
-
mcu
+關注
關注
146文章
17149瀏覽量
351216 -
FlaSh
+關注
關注
10文章
1635瀏覽量
148035 -
調試
+關注
關注
7文章
578瀏覽量
33943
發布評論請先 登錄
相關推薦
評論