大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調(diào)試注意事項(xiàng)。
介紹一下如何使用新生成的 flash 算法文件配合 J-Link 調(diào)試器在 MCUXpresso IDE 下 XIP 調(diào)試(基于 i.MXRT500)。
1、準(zhǔn)備測(cè)試環(huán)境
首先需要準(zhǔn)備好測(cè)試環(huán)境,包含必要的軟件和硬件,痞子衡的環(huán)境如下:
集成開發(fā)環(huán)境:MCUXpresso IDE v11.2.0_4120
軟件開發(fā)包:SDK_2.8.0_EVK-MIMXRT595_PRC(Toolchain 需包含 MCUXpresso IDE)
軟件驅(qū)動(dòng):J-Link driver v6.72b
硬件工具:J-Link Plus 調(diào)試器
硬件開發(fā)板:MIMXRT595-EVK (Rev.C1)
其中集成開發(fā)環(huán)境和軟件開發(fā)包需要有如下版本對(duì)應(yīng)關(guān)系,因?yàn)?MCUXpresso IDE 是恩智浦基于 GCC 和 Eclipse 而設(shè)計(jì)的免費(fèi) IDE,而且主要是為恩智浦 MCU 設(shè)計(jì)的,所以跟恩智浦 MCU SDK 包有一定的捆綁關(guān)系。
2、新生成 flash 算法
我們測(cè)試的板卡是 MIMXRT595-EVK (Rev.C1),這個(gè)板卡默認(rèn)是在 FlexSPI0 上連接的八線 Flash(MX25UM51345),J-Link 驅(qū)動(dòng)里如果支持 i.MXRT500 的話默認(rèn) flash 算法也是這個(gè)八線 flash,為了測(cè)試新生成的 flash 算法,我們將板卡 rework 一下,F(xiàn)lexSPI0 連接到四線 Flash(IS25WP064)。
我們現(xiàn)在需要為這個(gè)四線 Flash(IS25WP064)做一個(gè)新 flash 算法,打開痞子衡的 github 開源項(xiàng)目如下源工程,確保工程添加的 is25wp064 相關(guān)的源文件,然后編譯生成新的 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 路徑下,為了跟默認(rèn) flash 算法區(qū)分開來,可以將其重新命名為 MIMXRT5XX_FLEXSPI_IS25WP064.FLM,順便更新 JLinkDevices.xml 文件。
將板卡供電,連上 Jlink 調(diào)試器,使用 JlinkCommander 的 loadbin 命令試一下新 flash 算法是否有效,在確保新 flash 算法沒問題時(shí)再進(jìn)入 IDE 調(diào)試。
3、進(jìn)入 MCUXpresso IDE 調(diào)試
3.1 導(dǎo)入 SDK 及打開示例工程
打開 MCUXpresso IDE,默認(rèn) Installed SDKs 界面框里沒有 RT500,我們直接將下載好的 SDK_2.8.0_EVK-MIMXRT595_PRC.zip 包拖到 Installed SDKs 界面框中即可。
這時(shí)候 Installed SDKs 界面框里可以看到 RT500,選中它然后繼續(xù)操作來導(dǎo)入 example,我們就選 demo_apps 下的 hello_world 例程,編譯這個(gè)工程確保沒問題。
3.2 更新 J-Link Server 路徑
在安裝 MCUXpresso IDE 時(shí)會(huì)同時(shí)安裝一個(gè)默認(rèn) Jlink 驅(qū)動(dòng)(一般路徑在 C:/Program Files (x86)/SEGGER/JLink),這個(gè)驅(qū)動(dòng)版本不一定新,MCUXpresso 會(huì)默認(rèn)調(diào)用這個(gè)驅(qū)動(dòng),但很多時(shí)候我們都是手動(dòng)安裝新 Jlink 驅(qū)動(dòng)來使用的(痞子衡裝在了 C:/tools_mcu/SEGGER/JLink_V672b),前面我們新生成的 flash 算法也是放在手動(dòng)安裝的 Jlink 驅(qū)動(dòng)目錄下的,因此我們需要在 MCUXpresso 里重設(shè) J-Link Server 路徑,指向手動(dòng)安裝的 Jlink 驅(qū)動(dòng)。
3.3 借助 J-Link 在線調(diào)試
看起來一切就緒了,讓我們開始在 flash 調(diào)試吧,點(diǎn)擊 Debug 按鈕,會(huì)看到 MCUXpresso 彈出了調(diào)試器類型選擇,并且識(shí)別到了我們連接的 J-Link,點(diǎn)擊 OK 確認(rèn)。
如果出現(xiàn)下載失敗,需要查看一下自動(dòng)生成的 jlink 的 .launch 文件里的設(shè)置,尤其是下面的 Device 設(shè)置,要確保與前面更新的 JLinkDevices.xml 文件里改動(dòng)的腳本代碼里 Name 一欄相一致。
這時(shí)候可以看到 MCUXpresso 調(diào)用了 J-Link 驅(qū)動(dòng)完成了代碼燒寫(這時(shí)候去讀 flash,里面的內(nèi)容是燒錄正確的),但是界面并沒有停在 main 函數(shù)里,并且沒法單步調(diào)試,這是為什么?
3.4 滿足 MCUXpresso 調(diào)試流程
然后痞子衡去咨詢了 MCUXpresso IDE 研發(fā)團(tuán)隊(duì),得知它默認(rèn)的調(diào)試流程跟一般的通用 IDE(Keil,IAR)不太一樣,一般的 IDE 可以直接引導(dǎo) App 啟動(dòng)來調(diào)試,但 MCUXpresso IDE 不主動(dòng)引導(dǎo) App,而是復(fù)位后讓 App 自然啟動(dòng),然后嘗試 Attach 上去接管調(diào)試,所以根據(jù)這個(gè)流程,我們需要做兩點(diǎn)必要的改動(dòng):
更新 flash_config 頭(將 hyper flash 配置改為 QSPI Flash 配置),需要與板卡連接的 flash 相匹配
設(shè)置 ISP 模式為從 Flash 啟動(dòng),保證 reset 之后 ROM 能引導(dǎo) App 從 Flash 正常啟動(dòng)
改動(dòng)完之后,我們終于可以愉快地單步調(diào)試了。
至此,MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調(diào)試注意事項(xiàng)痞子衡便介紹完畢了,掌聲在哪里~~~
審核編輯 黃昊宇
-
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358363 -
FlaSh
+關(guān)注
關(guān)注
10文章
1656瀏覽量
150638 -
調(diào)試
+關(guān)注
關(guān)注
7文章
602瀏覽量
34415
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在MCUxpresso IDE中收到錯(cuò)誤:檢測(cè)到0個(gè)可用的SWD設(shè)備,怎么解決?
依托raksmart服務(wù)器在多種系統(tǒng)上本地部署deepseek注意事項(xiàng)
555電路調(diào)試技巧和注意事項(xiàng)
TMS320C6000板設(shè)計(jì):調(diào)試注意事項(xiàng)

脈沖式充電器的使用注意事項(xiàng)
繞線電感定制的注意事項(xiàng)
調(diào)試SsitaraAM2x單片機(jī)注意事項(xiàng)

共模電感定制的注意事項(xiàng)
LiFePO4設(shè)計(jì)注意事項(xiàng)

MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

評(píng)論