痞子衡嵌入式:MCUXpresso IDE下線上聯合調試i.MXRT1170雙核工程的三種方法

来源:https://www.cnblogs.com/henjay724/p/18331325
-Advertisement-
Play Games

大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下線上聯合調試i.MXRT1170雙核工程的三種方法。 兩年前痞子衡寫過一篇《i.MXRT1170下線上聯合調試雙核工程的三種方法(IAR篇)》,那篇文章詳細介紹了 IAR 下調試 RT1170 雙核工程的幾 ...



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下線上聯合調試i.MXRT1170雙核工程的三種方法

  兩年前痞子衡寫過一篇《i.MXRT1170下線上聯合調試雙核工程的三種方法(IAR篇)》,那篇文章詳細介紹了 IAR 下調試 RT1170 雙核工程的幾種方法。現如今,免費的 MCUXpresso IDE 用戶越來越多,而且說實話,MCUXpresso IDE 也確實功能越來越完善,日常嵌入式開發的幾乎所有需求都能夠滿足。今天痞子衡就繼續給大家介紹 MCUXpresso IDE 下雙核工程聯調的三種方法:

一、測試準備

  按 《i.MXRT1170下線上聯合調試雙核工程的三種方法(IAR篇)》 一文里第一節的測試準備,痞子衡這次的環境如下:

  • 集成開發環境: MCUXpresso IDE v11.10.x,點此下載
  • 軟體開發包: SDK_2_16_000_MIMXRT1170-EVKB(Toolchain要包含MCUXpresso IDE),點此下載
  • 軟體驅動: J-Link driver v7.96k,點此下載
  • 硬體工具: J-Link Plus調試器
  • 硬體開發板: MIMXRT1170-EVKB (Rev.A),含板載 DAP-Link 調試器

二、在MCUXpresso IDE下調試

2.1 通用辦法:雙核工程無關聯,調試器分別載入

  第一種方法依舊是單純藉助外部調試器來做載入,主核工程和從核工程之間無任何依賴關係(一般情況下主核是 XIP 工程,從核是 Non-XIP 工程)。我們選擇 SDK 包里如下兩個 hello_world 普通工程來做測試(SDK 包里並沒有現成的 MCUXpresso IDE 工程文件,需要自己導出,詳情參考 《MCUXpresso IDE下SDK工程導入與workspace管理機制》 一文):

主核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkbmimxrt1170\demo_apps\hello_world\cm7
從核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkbmimxrt1170\demo_apps\hello_world\cm4

  上次測試 IAR 工具鏈時,SDK 版本還是 2.11,如今已經演化到了 2.16,現在配套腳本設計得更完善了,主核工程和從核工程下載先後順序無限制。痞子衡使用了板載 DAP-Link 調試器分別調試雙核工程,過程非常絲滑。這主要得益於如下兩個 .scp 腳本文件(完成主從核連接與激活工作):

  有小伙伴可能會疑惑,這兩個 .scp 文件到底是放在哪裡的?因為在 MCUXpresso IDE 安裝目錄下以及導出的 hello world 工程目錄下都找不到它們的身影,其實它們就藏在安裝 MCUXpresso IDE 時自動同步安裝的 LinkServer 驅動裡面(\LinkServer_1.6.114\binaries\Scripts),這些腳本是共用的,如果你想修改為專用腳本,可以拷貝到工程目錄下,然後啟用下圖裡的 Custom Path

2.2 專用方法:雙核工程有關聯,IDE多核組件鏈接,主核載入從核

  第二種方法需要藉助主核代碼來給從核做載入,此時主核工程和從核工程之間有互相鏈接關係(依舊為主核 XIP 工程,從核 Non-XIP 工程),這裡需要藉助 MCUXpresso IDE 軟體里自帶的多核組件。我們首先從 SDK 里導出 hello world 多核常式:

主核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkmimxrt1170\multicore_examples\hello_world\cm7
從核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkmimxrt1170\multicore_examples\hello_world\cm4

  可以分別打開主核和從核常式的工程選項,找到 Multicore 設置,可以看到從核配置為 M4SLAVE,主核勾選了 M4SLAVE 工程對應的 axf 文件路徑,此為兩個工程的鏈接關係:

  至於從核代碼載入過程,可以打開主核工程的鏈接文件,相比一般獨立工程鏈接文件,其多了對從核工程編譯出來的二進位數據(包含text和data)的鏈接處理,拷貝動作是在主核工程 startup_mimxrt1176_cm7.c 文件 ResetISR() 函數中的 data bss 段初始化過程中一起完成的,激活從核動作則是 main 函數里 MCMGR_StartCore() 函數實現的。

2.3 通用方法:雙核工程無關聯,主核激活從核

  目前 v2.16 SDK 包里相比之前增加瞭如下兩個 hello_world_secondary_core_boot 多核常式,以往的多核常式,從核均是 Non-XIP 工程,而這個新增常式里從核工程也是 XIP 常式:

主核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkmimxrt1170\demo_apps\hello_world_secondary_core_boot\cm7
從核常式導出源路徑:\SDK_2_16_000_MIMXRT1170-EVKB\boards\evkmimxrt1170\demo_apps\hello_world_secondary_core_boot\cm4

  因為主從核工程均是 XIP 工程,在調試時需要先將從核工程下載進 Flash,然後再下載主核工程進 Flash 並且沿用主核工程里的 XIP 頭做啟動配置。因為代碼載入是調試器完成的,所以兩個工程間並無直接關聯,不過因為最終還是需要主核執行代碼去完成從核激活工作,因此從核程式存放地址(CORE1_BOOT_ADDRESS)是需要 hardcode 在主核代碼里的。

  至此,MCUXpresso IDE下線上聯合調試i.MXRT1170雙核工程的三種方法痞子衡便介紹完畢了,掌聲在哪裡~~~

歡迎訂閱

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

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

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於某全球頂級半導體原廠MCU系統部門,擔任高級嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...