i.MX 8MM如何在uboot運行M4程序

原創 2020-01-10 13:15:00 i.MX 8MM uboot M4

OKMX8MM-C 平臺內部有一個Cortex-M4內核,可以使用MCUXpresso SDK進行開發,MCUXpresso SDK是微控制器軟件支持的集合,它包含外圍驅動程序,RPMSG多核通信,以及FreeRTOS支持。可以查看SDK API文檔了解它實現的函數和結構體。

MCUXpresso SDK支持IAR或者armgcc兩種方式編譯鏡像,編譯可以生成三種鏡像,分別運行在QSPI flash、ram、DDR中。編譯方法參考飛凌Linux手冊或SDK_2.5.0_EVK-MIMX8MM使用手冊Getting Started with MCUXpresso SDK for i.MX 8M Mini。

下面介紹編譯出的三種鏡像如何在uboot啟動,以最簡單的hello world為例,程序啟動后會在uart4輸出“hello world.”。

一、如何在uboot啟動QSPI flash版本的M4程序

首先需要將M4程序燒寫到QSPI flash中,可以通過TF卡或者UUU工具(可以參考飛凌linux手冊)。

然后在uboot啟動QSPI flash中的M4核程序。

初始化QSPIflash

sf probe

M啟動M4核程序

bootaux 0x8000000

輸入命令




二、如何在uboot啟動ram版本的M4程序

首先需要在uboot將M4程序讀取到ram中。

如在M4程序在emmc固定位置中,假定存放位置為MMC的10M偏移處。選擇存放了M4程序的emmc作為當前mmc設備

mmc dev 1

將10M偏移處(0x2800 * 512 = 102400)讀取50K到ram中

mmc read 0x7e0000 2800 100

如果在M4程序在U盤的fat分區中,

usb start

fatload usb 0:1 0x7e0000 hello_world.bin

然后在uboot啟動ram版本的程序

bootaux 0x7e0000

0x7e0000為M4程序的地址

輸入命令后




查看結果




三、如何在uboot啟動DDR版本的程序

首先需要在uboot將M4程序讀取到DDR中。

如在M4程序在emmc固定位置中,假定存放位置為MMC的10M偏移處。選擇存放了M4程序的emmc作為當前mmc設備

mmc dev 1

將10M偏移處(0x2800 * 512 = 102400)讀取50K到DDR中

mmc read 0x80000000  2800 100

dcache flush

如果在M4程序在U盤的fat分區中,

usb start

fatload usb 0:1 0x80000000  hello_world.bin

然后在uboot啟動ram版本的程序

bootaux 0x80000000  

0x80000000為M4程序的地址

輸入命令


查看結果




特別注意:

編譯生成的不同版本的M4程序,要嚴格按照編譯版本進行加載,并跳轉到其加載地址運行。

如果編譯的鏡像沒有放到其需要運行的存儲空間內(ram版放到ram、DDR版放到DDR內,QSPIflash版放到QSPIflash內),M4程序程序是不能運行的。例如M4程序是編譯的QSPIflash版本的,把其放入到DDR或者ram內運行,程序無法運行。

希望大家看到有所收獲,指出問題共同進步,在飛凌的技術支持和分享中獲得更多的知識。



相關產品 >

  • FETMX8MM-C核心板

    NXP i.MX8系列分為iMX8I、i.MX8M、i.MX8Mini、iMX8M Nano、iMX 8X等,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,搭配實時任務處理的Cortex-M4和Cortex M7的解決方案,適用于從消費家庭音頻到工業樓宇自動化及移動計算機等。飛凌嵌入式近期推出的iMX8系列i.MX8Mmini核心板基于四核Cortex-A53、單核Cortex-M4架構的i.MX 8Mmini 處理器設計,現已全面上市,更多i.MX8M核心板產品、解決方案詳情,歡迎致電飛凌嵌入式了解。

    了解詳情
    FETMX8MM-C核心板
  • OKMX8MM-C開發板

    多數字音頻接口,多核異構A53+M4,10年+生命周期|NXP公司 i.MX8系列應用處理器根據不同配置有i.MX8I、iMX8M、i.MX8Mini、iMX8M Mini、iMX8M Nano、iMX 8X ,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,此外還提供實時任務處理的Cortex-M核心(Cortex-M4和Cortex M7)的解決方案,因此,NXP i.MX8系列應用處理器在高級圖形、高級成像、高級機器視覺、高端音頻、高端語音、高端視頻和高安全的嵌入式應用等跨領域的多種應用場景非常適用。飛凌嵌入式i.MX8M Mini開發板基于NXP 公司的i.MX8M Mini 四核64位處理器設計,主頻最高1.8GHz,ARM Cortex-A53架構。IMX8開發板是一款高性能,低功耗產品,歡迎選購。更多IMX8芯片介紹,IMX8系列軟硬件資料,i.MX8M mini方案定制,請聯系飛凌嵌入式

    了解詳情
    OKMX8MM-C開發板

推薦閱讀 換一批 換一批