NXP MFGTool軟件燒錄原理

原創(chuàng) 2020-03-20 17:20:00 MFGTool軟件燒寫

在使用恩智浦公司i.MX6系列芯片時(shí),會(huì)使用到MFGTool軟件通過連接PC和開發(fā)板的USB A型口轉(zhuǎn)Micro USB線來給相應(yīng)的芯片燒錄程序,本文主要講解MFGTool軟件燒寫的原理。


一、軟件的構(gòu)成

以官網(wǎng)下載的L4.1.15_2.0.0-ga_mfg-tools.tar.gz軟件包為例子。在官網(wǎng)下載好軟件包后在本地解壓,解壓后如下圖所示,其中紅色箭頭所指向的文件及文件夾為配置下載工具時(shí)需要修改及注意的地方。

文件說明:

cfg.ini文件:用來配置鏡像所在的文件夾位置、及ucl2.xml中執(zhí)行哪個(gè)列表的指令、定義一些初始化參數(shù)。

UICfg.ini:定義MfgTool軟件能同時(shí)燒錄幾塊SoC,官方文檔說明最大設(shè)定值4,對(duì)應(yīng)4塊。

Document/: 關(guān)于Mfgtool 的使用文檔;

Drivers/: USB iMX_BulkIO_Driver;

Profiles/: 存放要燒錄的image文件以及ucl.xml;

mfgtool.log:關(guān)于Mfgtool使用過程中的log記錄。

mfgtool2-***.vbs:.vbs文件是用來執(zhí)行MfgTool2.exe的腳本并傳遞參數(shù)到軟件,如果cfg.ini文件中也定義了同樣的參數(shù)默認(rèn).vbs中的參數(shù)會(huì)覆蓋cfg.ini中的參數(shù)值。


二、Mfgtool工作原理

參考517-MFGTOOLCustomizationGuide.pptx官方ppt里面介紹Mfgtool的啟動(dòng)流程圖。

 

1、 當(dāng)i.MX6板子上電后,什么都沒有初始化,只有Chip ROM(芯片的內(nèi)部ROM)可以運(yùn)行。Chip ROM的默認(rèn)程序會(huì)去初始化USB,并將其配置為HID設(shè)備。這就是為什么板子設(shè)置為Download模式并上電后在PC端的設(shè)備管理器可以看到HID-compliant device連上。

2、 一旦PC機(jī)檢測(cè)到HID設(shè)備連上,那么PC(USB Host)就會(huì)去枚舉設(shè)備并建立連接。建立連接后的第一件事就是傳送一個(gè)mini uboot(firmware)到目標(biāo)板SoC的Chip RAM(芯片的內(nèi)部RAM)中然后開始運(yùn)行mini uboot(firmware)。mini uboot會(huì)對(duì)目標(biāo)板進(jìn)行初始化,主要是初始化 DDR/外部ROM等設(shè)備,所以之后DDR及外部ROM已經(jīng)可以訪問了。mini uboot從mini uboot中提取內(nèi)存初始化代碼或數(shù)據(jù)來執(zhí)行任務(wù)。也可以使用內(nèi)存初始化腳本來獲取初始化數(shù)據(jù)。

3、 初始化外部基本接口之后,PC端會(huì)將mini kernel(firmware)、mini system(firmware)、dtb(firmware)傳送給SoC并放到DDR(外部RAM)指定的地址。然后PC發(fā)送命令(ucl2.xml中<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>)給Chip ROM讓其跳轉(zhuǎn)到DDR的kernel首地址去執(zhí)行。

4、 跳轉(zhuǎn)到kernel之后,初始化USB驅(qū)動(dòng),并枚舉為一個(gè)MSC設(shè)備,此時(shí)SoC可以和主機(jī)進(jìn)行高速數(shù)據(jù)傳輸。

5、 之后PC機(jī)MFGTool工具通過ucl2.xml中的腳本逐條執(zhí)行剩下的指令直到最后遇到Done指令。

注:

* 上面提到的mini uboot、mini kernel、mini system、dtb文件均在軟件目錄下的\Profiles\Linux\OS Firmware\firmware文件夾下。

* mini kernel必須要配置USB、USB大容量存儲(chǔ)驅(qū)動(dòng)、SD卡、UTP等。詳見:mfgtools\Document\V2\Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx文檔。

* mini kernel啟動(dòng)linuxrc作為第一個(gè)進(jìn)程,linuxrc其實(shí)是一個(gè)腳本,最終通過執(zhí)行 uuc 來啟動(dòng)UTP傳輸協(xié)議。UTP是作為USB Mass Storage(v4 Kernel)驅(qū)動(dòng)的擴(kuò)展,所以啟動(dòng) UTP 必須對(duì) USB 進(jìn)行復(fù)位然后重新枚舉。

到此MFGTool的工作原理基本就講解完。了解到MFGTool的工作機(jī)制之后會(huì)幫助開發(fā)人員在今后的開發(fā)過程中更容易的去發(fā)現(xiàn)問題,也可以為日后根據(jù)各自需要對(duì)MFGTool定制提供一個(gè)參考。


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

  • FETMX6Q-C核心板

    i.MX6Q核心板板層出不窮,要如何選擇?飛凌解讀i.mx6Q芯片強(qiáng)性能為您推薦四核A9架構(gòu)的i.MX6Q產(chǎn)品精選,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工業(yè)級(jí)核心板,歡迎采購(gòu)。  i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架構(gòu)的i.MX6Q四核處理器設(shè)計(jì),核心板小尺寸核心板搭配獨(dú)特的薄款連接器,讓設(shè)計(jì)隨心所欲!

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

    雙千兆飛凌嵌入式iMX6Q開發(fā)板,板對(duì)板連接器,纖薄之際,次底板支持iMX6Q和iMX6DL核心板。i.MX6Q開發(fā)板與i.MX6DL開發(fā)板資源豐富,原理圖、PCB、軟件資源、硬件資源下載,技術(shù)支持等。歡迎選購(gòu)

    了解詳情
    OKMX6Q-C開發(fā)板
  • FETMX6Q-S核心板

    NXP iMX6Quad系列具有四個(gè)內(nèi)核,運(yùn)行頻率達(dá)1.2 GHz,帶有1 MB L2緩存和64位DDR3或2通道、32位LPDDR2支持。飛凌提供商業(yè)級(jí)iMX6Q核心板,工業(yè)級(jí)iMX6Q核心板,兼容一同底板。具有抗震,抗氧化,抗干擾,更快速升級(jí)產(chǎn)品等優(yōu)勢(shì)。保定飛凌嵌入式專注imx6,imx6開發(fā)板,飛思卡爾imx6等ARM嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn),是imx6,imx6開發(fā)板,飛思卡爾imx6提供者,imx6系列產(chǎn)品現(xiàn)已暢銷全國(guó),歡迎咨詢!
    了解詳情
    FETMX6Q-S核心板
  • OKMX6Q-S3開發(fā)板

    飛凌嵌入式提供iMX6Q開發(fā)板,iMX6解決方案,iMX6Q核心板,i.MX6Q開發(fā)板解決方案。iMX6Q穩(wěn)定、快速、性價(jià)比高,歡迎選購(gòu) NXP iMX6系列芯片全支持,升級(jí)簡(jiǎn)配無憂替換。 了解詳情
    OKMX6Q-S3開發(fā)板

推薦閱讀 換一批 換一批