i.MX 8MM如何在uboot運(yùn)行M4程序

原創(chuàng) 2020-01-10 13:15:00 i.MX 8MM uboot M4

OKMX8MM-C 平臺(tái)內(nèi)部有一個(gè)Cortex-M4內(nèi)核,可以使用MCUXpresso SDK進(jìn)行開發(fā),MCUXpresso SDK是微控制器軟件支持的集合,它包含外圍驅(qū)動(dòng)程序,RPMSG多核通信,以及FreeRTOS支持??梢圆榭碨DK API文檔了解它實(shí)現(xiàn)的函數(shù)和結(jié)構(gòu)體。

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

下面介紹編譯出的三種鏡像如何在uboot啟動(dòng),以最簡(jiǎn)單的hello world為例,程序啟動(dòng)后會(huì)在uart4輸出“hello world.”。

一、如何在uboot啟動(dòng)QSPI flash版本的M4程序

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

然后在uboot啟動(dòng)QSPI flash中的M4核程序。

初始化QSPIflash

sf probe

M啟動(dòng)M4核程序

bootaux 0x8000000

輸入命令




二、如何在uboot啟動(dòng)ram版本的M4程序

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

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

mmc dev 1

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

mmc read 0x7e0000 2800 100

如果在M4程序在U盤的fat分區(qū)中,

usb start

fatload usb 0:1 0x7e0000 hello_world.bin

然后在uboot啟動(dòng)ram版本的程序

bootaux 0x7e0000

0x7e0000為M4程序的地址

輸入命令后




查看結(jié)果




三、如何在uboot啟動(dòng)DDR版本的程序

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

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

mmc dev 1

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

mmc read 0x80000000  2800 100

dcache flush

如果在M4程序在U盤的fat分區(qū)中,

usb start

fatload usb 0:1 0x80000000  hello_world.bin

然后在uboot啟動(dòng)ram版本的程序

bootaux 0x80000000  

0x80000000為M4程序的地址

輸入命令


查看結(jié)果




特別注意:

編譯生成的不同版本的M4程序,要嚴(yán)格按照編譯版本進(jìn)行加載,并跳轉(zhuǎn)到其加載地址運(yùn)行。

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

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



相關(guān)產(chǎn)品 >

  • FETMX8MM-C核心板

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

    了解詳情
    FETMX8MM-C核心板
  • OKMX8MM-C開發(fā)板

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

    了解詳情
    OKMX8MM-C開發(fā)板

推薦閱讀 換一批 換一批