加入星計劃,您可以享受以下權(quán)益:

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

如何在 SDRAM 里調(diào)試一個 dual core project

01/02 16:16
181
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

i.MX RT117x 與 RT10xx 系列相比,一個很明顯的區(qū)別就是多了一個 M4 的內(nèi)核,從而是多核協(xié)作成為可能。多核操作一般的做法是在各自獨立的程序數(shù)據(jù)空間運行,通過一塊共享的內(nèi)存空間進(jìn)行通訊,例如官方的 SDK 例程中,M7 的代碼運行在 Flash 里面,而 M4 的代碼則運行在 SRAM 里面,這樣可以確保performance 的最大化,不過在開發(fā)階段,客戶也許需要把 M7 和 M4 的代碼放在外部的 SDRAM 里面調(diào)試,這樣雖然會影響一部分 performance,但是不會對flash 進(jìn)行過多的擦寫操作,也有一定的現(xiàn)實意義。下面就對如何把一個 dual core 的 project 加載到 SDRAM 上調(diào)試進(jìn)行詳細(xì)的解說。下面的樣例來自與官方的 dual core rpmsg_lite_pingpong demo。

因為默認(rèn)系統(tǒng)是從 M7 core 啟動,所以通常的做法是通過 M7 實現(xiàn) M4 代碼的加載,然后 M7 啟動 M4。所以大部分的設(shè)置都是在 M7 project 里完成。具體
步驟如下:

1. M7 project 的設(shè)置
a) 添加 BOARD_SDRAM 和 SDRAM 兩個內(nèi)存空間定義,其中 BOARD_SDRAM 是給 M7放代碼數(shù)據(jù)用的,而 SDRAM 則是給 M4。這里需要注意的是BOARD_SDRAM 的位置要緊挨這 BOARD_FLASH。

b) 添加宏定義,使能 SDRAM 初始化代碼

c) 選中下列選項,把原本放入 BOARD_FLASH 的應(yīng)用代碼放入 BOARD_SDRAM。

d)在多核設(shè)置中,將 M4 的代碼位置設(shè)為前面定義的 SDRAM 空間。

e)在 debugger 配置里替換啟動腳本為帶 SDRAM 初始化的版本。

并添加下列這個調(diào)試選項:--cachelib libm7_cache.so

f) 最后在代碼里更新 M4 core 啟動地址為前面定義的 SDRAM 的起始地址:

2. M4 project 的改動則簡單的多。
a)添加 SDRAM 內(nèi)存空間定義,起始地址和大小與 M7 project 里的 SDRAM 空間定
義保持一致。

完成上述步驟后,你就可以在 SDRAM 里同時調(diào)試 M7 和 M4 的代碼啦!

相關(guān)推薦

電子產(chǎn)業(yè)圖譜