加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
申請入駐 產業(yè)圖譜

MCUXpresso IDE在Flash調試注意事項

2020/08/05
326
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

大家好,我是痞子衡,是正經(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)境:MCUXpresso IDE v11.2.0_4120,點此下載
  • 軟件開發(fā)包:SDK_2.8.0_EVK-MIMXRT595_PRC(Toolchain 需包含 MCUXpresso IDE),點此下載
  • 軟件驅動:J-Link driver v6.72b,點此下載
  • 硬件工具:J-Link Plus 調試器
  • 硬件開發(fā)板:MIMXRT595-EVK (Rev.C1)

?

其中集成開發(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ù)這個流程,我們需要做兩點必要的改動:

  1. 更新 flash_config 頭(將 hyper flash 配置改為 QSPI Flash 配置),需要與板卡連接的 flash 相匹配
  2. 設置 ISP 模式為從 Flash 啟動,保證 reset 之后 ROM 能引導 App 從 Flash 正常啟動

改動完之后,我們終于可以愉快地單步調試了。

?

至此,MCUXpresso IDE 下使用 J-Link 下載算法在 Flash 調試注意事項痞子衡便介紹完畢了,掌聲在哪里~~~

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

碩士畢業(yè)于蘇州大學電子信息學院,目前就職于恩智浦(NXP)半導體MCU系統(tǒng)部門,擔任嵌入式系統(tǒng)應用工程師。痞子衡會定期分享嵌入式相關文章