飞凌嵌入式丨NXP MFGTool软件烧录原理
在使用恩智浦公司i.MX6系列芯片時,會使用到MFGTool軟件通過連接PC和開發板的USB A型口轉Micro USB線來給相應的芯片燒錄程序,本文主要講解MFGTool軟件燒寫的原理。
一、軟件的構成
以官網下載的L4.1.15_2.0.0-ga_mfg-tools.tar.gz軟件包為例子。在官網下載好軟件包后在本地解壓,解壓后如下圖所示,其中紅色箭頭所指向的文件及文件夾為配置下載工具時需要修改及注意的地方。
文件說明:
cfg.ini文件:用來配置鏡像所在的文件夾位置、及ucl2.xml中執行哪個列表的指令、定義一些初始化參數。
UICfg.ini:定義MfgTool軟件能同時燒錄幾塊SoC,官方文檔說明最大設定值4,對應4塊。
Document/: 關于Mfgtool 的使用文檔;
Drivers/: USB iMX_BulkIO_Driver;
Profiles/: 存放要燒錄的image文件以及ucl.xml;
mfgtool.log:關于Mfgtool使用過程中的log記錄。
mfgtool2-***.vbs:.vbs文件是用來執行MfgTool2.exe的腳本并傳遞參數到軟件,如果cfg.ini文件中也定義了同樣的參數默認.vbs中的參數會覆蓋cfg.ini中的參數值。
二、Mfgtool工作原理
參考 517-MFGTOOLCustomizationGuide.pptx官方ppt里面介紹Mfgtool的啟動流程圖。
1、 當 i.MX6板子上電后,什么都沒有初始化,只有Chip ROM(芯片的內部ROM)可以運行。Chip ROM的默認程序會去初始化USB,并將其配置為HID設備。這就是為什么板子設置為Download模式并上電后在PC端的設備管理器可以看到HID-compliant device連上。
2、 一旦PC機檢測到HID設備連上,那么PC(USB Host)就會去枚舉設備并建立連接。建立連接后的第一件事就是傳送一個mini uboot(firmware)到目標板SoC的Chip RAM(芯片的內部RAM)中然后開始運行mini uboot(firmware)。mini uboot會對目標板進行初始化,主要是初始化 DDR/外部ROM等設備,所以之后DDR及外部ROM已經可以訪問了。mini uboot從mini uboot中提取內存初始化代碼或數據來執行任務。也可以使用內存初始化腳本來獲取初始化數據。
3、 初始化外部基本接口之后,PC端會將mini kernel(firmware)、mini system(firmware)、dtb(firmware)傳送給SoC并放到DDR(外部RAM)指定的地址。然后PC發送命令(ucl2.xml中 Jumping to OS image. )給Chip ROM讓其跳轉到DDR的kernel首地址去執行。
4、 跳轉到kernel之后,初始化USB驅動,并枚舉為一個MSC設備,此時SoC可以和主機進行高速數據傳輸。
5、 之后PC機MFGTool工具通過ucl2.xml中的腳本逐條執行剩下的指令直到最后遇到Done指令。
注:
-
上面提到的mini uboot、mini kernel、mini system、dtb文件均在軟件目錄下的\Profiles\Linux\OS Firmware\firmware文件夾下。
-
mini kernel必須要配置USB、USB大容量存儲驅動、SD卡、UTP等。詳見:mfgtools\Document\V2\Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx文檔。
-
mini kernel啟動linuxrc作為第一個進程,linuxrc其實是一個腳本,最終通過執行 uuc 來啟動UTP傳輸協議。UTP是作為USB Mass Storage(v4 Kernel)驅動的擴展,所以啟動 UTP 必須對 USB 進行復位然后重新枚舉。
到此MFGTool的工作原理基本就講解完。了解到MFGTool的工作機制之后會幫助開發人員在今后的開發過程中更容易的去發現問題,也可以為日后根據各自需要對MFGTool定制提供一個參考。
點擊進入飛凌嵌入式官網
總結
以上是生活随笔為你收集整理的飞凌嵌入式丨NXP MFGTool软件烧录原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能问答——小i机器人的pythonAP
- 下一篇: NRF51822开发笔记-1.搭建NRF