一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-18 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

系統(tǒng)燒寫初探

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

1. MfgTool工具介紹

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

圖片

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

圖片

其中:

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

mfg_tools可以燒寫I.MX6U、I.MX7、I.MX6Q等芯片,所以燒寫前必須要進行配置,指定燒寫芯片,燒寫到哪里去。 mfgtools文件夾中有很多.vbs文件就是配置腳本,燒寫時通過雙擊這些腳本文件來打開燒寫工具

圖片

2. MfgTool原理介紹

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

2.1 燒寫方式

連接 USB線:通過 USB OTG接口將系統(tǒng)燒寫進 EMMC中

圖片

撥碼開關撥到 USB下載模式:撥碼到如下圖所示模式,注意要彈出TF

圖片

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

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

圖片

那么 uboot、Linux kernel、. dtb和 rootfs這四個文件應該放到哪個文件夾里,才可以被 MfgTool訪問到呢。 進入如下目錄中:

mfgtools/Profiles/Linux/OS 固件

圖片

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

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

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

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

圖片

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

圖片

ucl2.xml文件:用來選擇燒寫文件,以UCL開始,/UCL結束,整體框架如下

CFG和/CFG之間是配置相關內(nèi)容,判斷給 I.MX系列的哪個芯片燒寫系統(tǒng)。 通過讀取芯片的VID和PID即可判斷出當前要燒寫什么處理器的系統(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>

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

Set wshShell = CreateObject("WScript.shell")
#調(diào)用了mfgtool2.exe這個軟件,并給出了相應的參數(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中燒寫系統(tǒng)后,返回到 ucl2.xml中找到相應的燒寫命令。 以 uboot 燒寫為例,通過 USB OTG向 DDR下載 uboot的命令如下:

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

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

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

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

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

    關注

    61

    文章

    1346

    瀏覽量

    189215
  • Linux
    +關注

    關注

    87

    文章

    11508

    瀏覽量

    213658
  • WINDOWS
    +關注

    關注

    4

    文章

    3612

    瀏覽量

    91358
  • Linux系統(tǒng)

    關注

    4

    文章

    605

    瀏覽量

    28562
  • 燒寫
    +關注

    關注

    0

    文章

    58

    瀏覽量

    14615
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ok2440linux系統(tǒng)

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

    【OK210試用體驗】SDLinux系統(tǒng)

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

    3399 開發(fā)板Linux 系統(tǒng)

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

    Linux系統(tǒng)DNW報錯這是什么問題

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

    如何linux鏡像

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

    ucos方法

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

    單片機軟件

    單片機軟件,單片機軟件,單片機軟件
    發(fā)表于 12-09 18:40 ?17次下載

    最新插件

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

    NXP PMIC芯片步驟

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

    什么是單片機軟件?如何

    什么是單片機軟件? 什么是單片機軟件? 簡單點說,就是把你寫好代碼(C或者是匯編)專程的機器語言通過一定的方式下載到單片機中。稱為
    發(fā)表于 04-14 11:04 ?3.5w次閱讀

    stm32使用flymcu程序

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

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

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

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

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇2:STM32MP1微處理器之系統(tǒng)鏡像第 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'>寫</b>

    Linux系統(tǒng)寫實操

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

    Linux固件中的陷阱:文件系統(tǒng)異步寫入引發(fā)的問題

    在工業(yè)生產(chǎn)中,固件是確保產(chǎn)品正常運行的關鍵環(huán)節(jié)。本文通過一個實際案例,揭示了Linux系統(tǒng)下因文件寫入異步性導致的固件
    的頭像 發(fā)表于 03-07 11:34 ?361次閱讀
    <b class='flag-5'>Linux</b>固件<b class='flag-5'>燒</b><b class='flag-5'>寫</b>中的陷阱:文件<b class='flag-5'>系統(tǒng)</b>異步寫入引發(fā)的問題