0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux系統(tǒng)燒寫(xiě)初探

CHANBAEK ? 來(lái)源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-18 15:24 ? 次閱讀

系統(tǒng)燒寫(xiě)初探

嵌入式 Linux開(kāi)發(fā)中通常是用網(wǎng)絡(luò)來(lái)進(jìn)行測(cè)試,但最終的產(chǎn)品中可能不會(huì)通過(guò)網(wǎng)絡(luò)來(lái)運(yùn)行。 因此需要將 uboot、linux kernel、. dtb(設(shè)備樹(shù)) 和 rootfs這四個(gè)文件燒寫(xiě)到開(kāi)發(fā)板的 EMMC、NAND或 QSPI Flash等存儲(chǔ)設(shè)備上,這樣不管有沒(méi)有網(wǎng)絡(luò)都可以正常運(yùn)行。 本文將介紹 NXP官方提供的 I.MX系列 CPU燒寫(xiě)軟件MfgTool及其工作原理

1. MfgTool工具介紹

MfgTool工具是 NXP提供的專門(mén)用于給 I.MX系列 CPU燒寫(xiě)系統(tǒng)的軟件,可以在 NXP官網(wǎng)下載,該軟件在 Windows下使用,本文中使用的是 L4.1.15_2.0.0-ga_mfg-tools.tar.gz,解壓后的文件夾內(nèi)容如下圖:

圖片

選擇 with-rootfs的壓縮包繼續(xù)解壓,解壓完后,進(jìn)入 mfgtools文件夾,其內(nèi)容如下圖示:

圖片

其中:

  • Profiles文件夾:存放要燒寫(xiě)的文件
  • MfgTool2.exe:燒寫(xiě)軟件

mfg_tools可以燒寫(xiě)I.MX6U、I.MX7、I.MX6Q等芯片,所以燒寫(xiě)前必須要進(jìn)行配置,指定燒寫(xiě)芯片,燒寫(xiě)到哪里去。 mfgtools文件夾中有很多.vbs文件就是配置腳本,燒寫(xiě)時(shí)通過(guò)雙擊這些腳本文件來(lái)打開(kāi)燒寫(xiě)工具

圖片

2. MfgTool原理介紹

下面以 I.MX6U-ALPHA EMMC開(kāi)發(fā)板為平臺(tái),介紹 MfgTool的工作原理,了解其工作流程

2.1 燒寫(xiě)方式

連接 USB線:通過(guò) USB OTG接口將系統(tǒng)燒寫(xiě)進(jìn) EMMC中

圖片

撥碼開(kāi)關(guān)撥到 USB下載模式:撥碼到如下圖所示模式,注意要彈出TF

圖片

2.2 系統(tǒng)燒寫(xiě)原理

開(kāi)發(fā)板連接電腦以后雙擊mfgtool2-yocto-mx-evk-emmc.vbs,若出現(xiàn)“符合HID標(biāo)準(zhǔn)的供應(yīng)商定義設(shè)備”就說(shuō)明連接正常,可以進(jìn)行燒寫(xiě),若出現(xiàn)其他字符就需要檢查連接是否正確。 點(diǎn)擊“Start”按鈕即可開(kāi)始燒寫(xiě)

圖片

那么 uboot、Linux kernel、. dtb和 rootfs這四個(gè)文件應(yīng)該放到哪個(gè)文件夾里,才可以被 MfgTool訪問(wèn)到呢。 進(jìn)入如下目錄中:

mfgtools/Profiles/Linux/OS 固件

圖片

OS Firmware文件夾就是存放系統(tǒng)固件的,重點(diǎn)關(guān)注 files和 firmware文件夾,以及 ucl2.xml文件。 MfgTool 工作過(guò)程主要分兩個(gè)階段:

  • 將firmware目錄中的uboot、kernel和.dtb三個(gè)文件,通過(guò)USB OTG下載到開(kāi)發(fā)板的DDR中,并在DDR中啟動(dòng)系統(tǒng),為后面的燒寫(xiě)做準(zhǔn)備
  • 系統(tǒng)啟動(dòng)后,完成對(duì)EMMC的格式化、分區(qū)等操作,分區(qū)建好后就可以從files中讀取要燒寫(xiě)的uboot、kernel、. dtb和 rootfs這四個(gè)文件,并將其燒寫(xiě)到EMMC中

下面介紹 files文件夾、firmware文件夾、ucl2.xml文件

firmware文件夾:存放第一階段需要的三個(gè)文件,注意燒寫(xiě)自已的系統(tǒng)時(shí),需要將自己的文件名字改為和下表中一致,否則 ucl2.xml識(shí)別不出來(lái)

圖片

files文件夾:存放第二階段需要的四個(gè)文件,將其燒寫(xiě)到 EMMC 中,燒寫(xiě)自已的系統(tǒng)時(shí),需將自己的文件名字改為和下表中一致,否則 ucl2.xml 無(wú)法識(shí)別

圖片

ucl2.xml文件:用來(lái)選擇燒寫(xiě)文件,以UCL開(kāi)始,/UCL結(jié)束,整體框架如下

CFG和/CFG之間是配置相關(guān)內(nèi)容,判斷給 I.MX系列的哪個(gè)芯片燒寫(xiě)系統(tǒng)。 通過(guò)讀取芯片的VID和PID即可判斷出當(dāng)前要燒寫(xiě)什么處理器的系統(tǒng)




    name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/>
    name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
    name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
    name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/>
    name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
    name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
    name="BootStrap" dev="MX6ULL" vid="15A2" pid="0080"/>
    name="Updater" dev="MSC" vid="066F" pid="37FF"/>
  class="hljs-name"CFG>
	
  name="SDCard" desc="Choose SD Card as media">
  
class="hljs-name"LIST>
	
  name="eMMC" desc="Choose eMMC as media">

class="hljs-name"LIST>

name="Nor Flash" desc="Choose Nor flash as media">

class="hljs-name"LIST>

name="Quad Nor Flash" desc="Choose Quad Nor flash as media">

class="hljs-name"LIST>

name="NAND Flash" desc="Choose NAND as media">

class="hljs-name"LIST>

name="SDCard-Android" desc="Choose SD Card as media">

class="hljs-name"LIST>

name="eMMC-Android" desc="Choose eMMC as media">

class="hljs-name"LIST>

確定了處理器后,就要確定向什么存儲(chǔ)設(shè)備燒寫(xiě)系統(tǒng),這時(shí)需要再次用到 mfgtool2-yocto-mx-evk-emmc.vbs文件,此文件內(nèi)容如下:

Set wshShell = CreateObject("WScript.shell")
#調(diào)用了mfgtool2.exe這個(gè)軟件,并給出了相應(yīng)的參數(shù)
wshShell.run "mfgtool2.exe -c ""linux"" -l ""eMMC"" -s
""board=sabresd"" -s ""mmc=1"" -s ""6uluboot=14x14evk"" -s
""6uldtb=14x14-evk"""
Set wshShell = Nothing

確定是向 EMMC中燒寫(xiě)系統(tǒng)后,返回到 ucl2.xml中找到相應(yīng)的燒寫(xiě)命令。 以 uboot 燒寫(xiě)為例,通過(guò) USB OTG向 DDR下載 uboot的命令如下:

# mfgtools文件夾下找到cfg.ini文件,該文件里包含了開(kāi)發(fā)板的一些信息
# 可知 “%lite%”和“%6uluboot%”分別表示取lite和6uluboot的值
# 而lite=l,6uluboot=14x14evk,因此代入以后就是:
# u-boot-imx6ull14x14evk _emmc.imx

按上面的方法將.dtb 和 zImage都下載到 DDR中以后就會(huì)跳轉(zhuǎn)去運(yùn)行OS,這時(shí)在MfgTool工具中會(huì)有“Jumping to OS image”提示語(yǔ)句,ucl2.xml中的跳轉(zhuǎn)命令如下:

type="jump" > Jumping to OS image. class="hljs-name"CMD>

啟動(dòng) Linux 系統(tǒng)以后就可以在 EMMC 上創(chuàng)建分區(qū),然后燒寫(xiě) uboot、 zImage、 .dtb(設(shè)備樹(shù)) 和根文件系統(tǒng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NXP
    NXP
    +關(guān)注

    關(guān)注

    60

    文章

    1265

    瀏覽量

    182979
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11215

    瀏覽量

    208741
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3523

    瀏覽量

    88330
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    590

    瀏覽量

    27320
  • 燒寫(xiě)
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    14241
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ok2440寫(xiě)linux系統(tǒng)

    用u***寫(xiě)linux系統(tǒng)的時(shí)候,寫(xiě)linux
    發(fā)表于 04-27 18:34

    【OK210試用體驗(yàn)】SD寫(xiě)Linux系統(tǒng)

    的。WinPM.EXE在我win7 64位上打開(kāi)失敗,后來(lái)在虛擬機(jī)中用xp系統(tǒng)寫(xiě)成功。搞開(kāi)發(fā)還是得用xp??!寫(xiě)過(guò)程中可以使用串口查看寫(xiě)過(guò)程的。
    發(fā)表于 07-26 08:36

    3399 開(kāi)發(fā)板Linux 系統(tǒng)寫(xiě)

    `` Linux 鏡像寫(xiě) 平臺(tái):iTOP-3399開(kāi)發(fā)板系統(tǒng)Linux 系統(tǒng) 1 RKTo
    發(fā)表于 02-14 15:22

    Linux系統(tǒng)寫(xiě)DNW報(bào)錯(cuò)這是什么問(wèn)題

    按照Linux 3.0.1用戶手冊(cè)“一鍵寫(xiě)Linux系統(tǒng)”相關(guān)內(nèi)容,在最后一步
    發(fā)表于 01-13 06:41

    如何寫(xiě)linux鏡像

    使用tftp下載方式進(jìn)行鏡像的驗(yàn)證,以及使用scp方式來(lái)更新linux內(nèi)核與設(shè)備樹(shù)。STM32CubeProgrammer寫(xiě)方式STM32CubeProgrammer工具已經(jīng)在前面的章節(jié)進(jìn)行了安裝,現(xiàn)在我們可以通過(guò)使用這個(gè)工具
    發(fā)表于 02-16 06:18

    寫(xiě)ucos方法

    在OK6410上寫(xiě)ucos ii 方法
    發(fā)表于 10-29 10:55 ?0次下載

    單片機(jī)寫(xiě)軟件

    單片機(jī)寫(xiě)軟件,單片機(jī)寫(xiě)軟件,單片機(jī)寫(xiě)軟件
    發(fā)表于 12-09 18:40 ?16次下載

    最新寫(xiě)插件

    最新寫(xiě)插件,有興趣的同學(xué)可以下載學(xué)習(xí)
    發(fā)表于 04-27 17:12 ?9次下載

    NXP PMIC芯片寫(xiě)步驟

      如果用戶打算查看芯片是否已經(jīng)programed,可以通過(guò)Blankcheck進(jìn)行空片檢查。需要特別提醒的是,因?yàn)镺TP是只能寫(xiě)一次的,所以建議先寫(xiě)幾片,測(cè)試確保
    發(fā)表于 09-18 09:50 ?21次下載
    NXP PMIC芯片<b class='flag-5'>燒</b><b class='flag-5'>寫(xiě)</b>步驟

    什么是單片機(jī)寫(xiě)軟件?如何寫(xiě)

    什么是單片機(jī)寫(xiě)軟件? 什么是單片機(jī)寫(xiě)軟件? 簡(jiǎn)單點(diǎn)說(shuō),就是把你寫(xiě)好代碼(C或者是匯編)專程的機(jī)器語(yǔ)言通過(guò)一定的方式下載到單片機(jī)中。稱為
    發(fā)表于 04-14 11:04 ?3.4w次閱讀

    stm32使用flymcu寫(xiě)程序

    文章目錄一、使用flymcu寫(xiě)程序一、使用flymcu寫(xiě)程序寫(xiě)程序之前要使ASP指示燈保持
    發(fā)表于 10-26 11:06 ?18次下載
    stm32使用flymcu<b class='flag-5'>燒</b><b class='flag-5'>寫(xiě)</b>程序

    STM32MP157 Linux系統(tǒng)移植開(kāi)發(fā)篇2:寫(xiě)linux鏡像

    使用tftp下載方式進(jìn)行鏡像的驗(yàn)證,以及使用scp方式來(lái)更新linux內(nèi)核與設(shè)備樹(shù)。 STM32CubeProgrammer寫(xiě)方式 STM32CubeProgrammer工具已經(jīng)在前面的章節(jié)進(jìn)行了安裝,現(xiàn)在我們可以通過(guò)使用這
    發(fā)表于 12-17 18:22 ?11次下載
    STM32MP157 <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>移植開(kāi)發(fā)篇2:<b class='flag-5'>燒</b><b class='flag-5'>寫(xiě)</b><b class='flag-5'>linux</b>鏡像

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇2:STM32MP1微處理器之系統(tǒng)鏡像寫(xiě)

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇2:STM32MP1微處理器之系統(tǒng)鏡像寫(xiě)第 1 章
    發(fā)表于 12-17 18:22 ?14次下載
    STM32MP157系列教程連載-<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>移植篇2:STM32MP1微處理器之<b class='flag-5'>系統(tǒng)</b>鏡像<b class='flag-5'>燒</b><b class='flag-5'>寫(xiě)</b>

    Linux系統(tǒng)寫(xiě)實(shí)操

    Linux系統(tǒng)寫(xiě)初探一文中介紹了mfgtool寫(xiě)
    的頭像 發(fā)表于 04-18 15:20 ?1201次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>燒</b>寫(xiě)實(shí)操

    TI、DSP寫(xiě)方法介紹

    由于 TI 的 DSP 寫(xiě)要比單片機(jī)略微復(fù)雜,很多客戶對(duì)寫(xiě)不是很熟悉,所以我們將寫(xiě)方法做一
    發(fā)表于 10-07 14:22 ?1359次閱讀
    TI、DSP<b class='flag-5'>燒</b><b class='flag-5'>寫(xiě)</b>方法介紹