痞子衡嵌入式:MCUXpresso IDE下使用J-Link下載算法在Flash調試注意事項(i.MXRT500爲例)


  你們好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給你們介紹的是MCUXpresso IDE下使用J-Link下載算法在Flash調試注意事項html

  痞子衡前段時間寫過一篇小文《爲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)。git

一、準備測試環境

  首先須要準備好測試環境,包含必要的軟件和硬件,痞子衡的環境以下:github

  • 集成開發環境: 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包有必定的捆綁關係。算法

二、新生成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算法文件)。app

  有了新flash算法文件,將其放到 \SEGGER\JLink_V672b\Devices\NXP\iMXRT5xx 路徑下,爲了跟默認flash算法區分開來,能夠將其從新命名爲MIMXRT5XX_FLEXSPI_IS25WP064.FLM,順便更新JLinkDevices.xml文件。ide

  將板卡供電,連上Jlink調試器,使用JlinkCommander的loadbin命令試一下新flash算法是否有效,在確保新flash算法沒問題時再進入IDE調試。函數

三、進入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例程,編譯這個工程確保沒問題。測試

  在安裝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上去接管調試,因此根據這個流程,咱們須要作兩點必要的改動:

  1. 更新flash_config頭(將hyper flash配置改成QSPI Flash配置),須要與板卡鏈接的flash相匹配
  2. 設置ISP模式爲從Flash啓動,保證reset以後ROM能引導App從Flash正常啓動

  改動完以後,咱們終於能夠愉快地單步調試了。

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

歡迎訂閱

文章會同時發佈到個人 博客園主頁CSDN主頁知乎主頁微信公衆號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就能夠在手機上第一時間看了哦。

相關文章
相關標籤/搜索