色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

i.MX6ULL系統燒寫指南

玩轉單片機 ? 來源:玩轉單片機 ? 作者:noah ? 2022-10-24 10:58 ? 次閱讀

前幾篇移植都是通過網絡來測試的,在實際的產品開發中肯定不可能通過網絡來運行,否則沒網的時候產品豈不是就歇菜了。因此需要將 uboot、linux kernel(內核)、.dtb(設備樹)和 rootfs 這四個文件燒寫到板子上的 EMMC、NAND 或 QSPI Flash 等其他存儲設備上,這樣不管有沒有網絡產品都可以正常運行,可以借助NXP 官方提供的 MfgTool 工具通過 USB OTG 口來燒寫系統,此軟件在 Windows 下使用,對新手非常友好; mfg_tools 這個工具本意是給 NXP 自己的開發板設計的燒寫軟件,所以肯定帶有自家開發板對應的 uboot、linux kernel 和 rootfs 的文件。

| 獲取MfgTool

讀者可以直接去官網下載,這里使用的是原子提供的,可以在原子公開資料包中獲取,具體路徑如下:

5、開發工具->3、NXP官方原版MFG_TOOL燒寫工具->L4.1.15_2.0.0-ga_mfg-tools.tar.gz。

解壓后的文件如下:

29469b18-51a6-11ed-a3b6-dac502259ad0.png

|準備工具

解壓后里面還有2個.gz 壓縮包,一個是帶rootfs,一個是不帶rootfs,我們是需要燒寫文件系統的,所以選擇 mfgtools-with-rootfs.tar.gz 這個壓縮包并解壓,然后進入目錄 mfgtools-with-rootfsmfgtools 中, 在此目錄下有幾個文件夾和很多的.vbs 文件:

296b3504-51a6-11ed-a3b6-dac502259ad0.png

相關解析:

Profiles文件夾:要燒寫文件就放到這個文件夾中;
MfgTool2.exe:燒寫軟件,一般不會直接打開這個軟件燒寫;
眾多的.vbs 文件:就是配置腳本,燒寫的時候通過雙擊這些.vbs 文件來打開燒寫工具;
注意:mfg_tools 不僅能燒寫I.MX6U,而且也能給 I.MX7、I.MX6Q 等芯片燒寫,所以在燒寫之前必須要進行配置,指定燒寫的是什么芯片,燒寫到哪里去,就需要依靠不同的.vbs 配置腳本進行配置;

299d602e-51a6-11ed-a3b6-dac502259ad0.png

眾多的.vbs 燒寫腳本是可以刪除的,但是避免不必要的麻煩就不刪除;本人使用的開發板是EMMC 版核心板,因此只會用到 mfgtool2-yocto-mx-evk-emmc.vbs 這個燒寫腳本,如果用其他的核心板請參考相應的燒寫腳本。

| 燒寫步驟

連接USB OTG

MfgTool 是通過 USB OTG 接口將系統燒寫進 EMMC 中的,需要使用USB線連接電腦

29bc4e44-51a6-11ed-a3b6-dac502259ad0.png

撥碼開關撥到 USB 下載模式

需要根據實際開發板進行切換,下圖是野火開發板的撥碼開關真值表;

29f543de-51a6-11ed-a3b6-dac502259ad0.png

如果插了 TF 卡,請彈出 TF 卡,否則電腦不能識別 USB!等識別出來以后再插上 TF 卡!

第一次連接會有提示,一旦第一次設置好設備以后,后面每次連接都不會有任何提示了;

2a01c0fa-51a6-11ed-a3b6-dac502259ad0.png

系統燒寫

開發板連接電腦以后雙擊“mfgtool2-yocto-mx-evk-emmc.vbs”,就會出現下面那個窗口:

2a16c0a4-51a6-11ed-a3b6-dac502259ad0.png

如果出現“符合 HID 標準的供應商定義設備”就說明連接正常,可以進行燒寫,如果出現其他的字符那么就要檢查連接是否正確。點擊“Start”按鈕即可開始燒寫;

|系統燒寫原理

需要燒寫uboot、kernel、.dtb 和 rootfs這四個文件,它們一起構成了linux系統。 進入如下目錄中:

L4.1.15_2.0.0-ga_mfg-tools/mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware
目錄文件如下:

2a2d1e3a-51a6-11ed-a3b6-dac502259ad0.png

文件夾“OS Firmware”看名字就知道是存放系統固件的,重點還是關注 files、firmware 這兩個文件夾,以及 ucl2.xml 這個文件。

MfgTool 工作過程主要分兩個階段:

①、將 firmware 目錄中的 uboot、linux kernel 和.dtb(設備樹),然后通過 USB OTG 將這個文件下載到開發板的 DDR 中,目的就是在 DDR 中啟動 Linux 系統,為后面的燒寫做準備。

②、經過第①步的操作,此時 Linux 系統已經運行起來了,系統運行起來以后就可以很方便的完成對 EMMC 的格式化、分區等操作。EMMC 分區建立好以后就可以從 files 中讀取要燒寫的 uboot、linux kernel、.dtb(設備樹)和 rootfs 這 4 個文件,然后將其燒寫到 EMMC 中,這個就是 MfgTool 的大概工作流程。

firmeare 文件夾

打開 firmware 文件夾,里面有很多的.imx 結尾的 uboot 文件、一個 zImage 鏡像文件、很多.dtb結尾的設備樹文件。這些文件都是NXP官方開發板使用的,不同的板子使用不同的文件,其中需要關心這三個文件:

2a35b018-51a6-11ed-a3b6-dac502259ad0.png

這三個文件就是 I.MX6ULL EVK 開發板燒寫系統的時候第一階段所需的文件。如果要燒寫自己的系統,就需要給編譯出來的文件改成上表的名稱;

files 文件夾

上圖三個文件下載到開發板的 DDR 上以后燒寫的第一階段就完成了,第二階段就是從 files 目錄中讀取整個系統文件,并將其燒寫到 EMMC 中。files 目錄中的文件和firmware 目錄中的基本差不多,都是不同板子對應的 uboot、設備樹文件,同樣,只關心下圖的四個文件:

2a50261e-51a6-11ed-a3b6-dac502259ad0.png

如果要燒寫自己編譯出來的系統,就需要用編譯出來的文件替換上面四個文件;

ucl2.xml 文件

ucl2.xml用來指定files和firmware目錄要燒寫的uboot和設備樹文件。ucl2.xml 以“”開始,以“”結束。“”和“”之間是配置相關內容,主要是判斷當前是給 I.MX 系列的哪個芯片燒寫系統。“”和“”之間的是針對不同存儲芯片的燒寫命令。整體框架如下:


    
    ......
     
    ......
    


    
     
    


    
     
    
    
     
    
    
     
    
    
     
    
    
     
    


    
     
    


    
     
    


    
     
    
ucl2.xml 首先會判斷當前要向 I.MX 系列的哪個芯片燒寫系統,代碼如下:

2a5d5168-51a6-11ed-a3b6-dac502259ad0.png

通過讀取芯片的VID和 PID 即可判斷出當前要燒寫什么處理器的系統,如果 VID=0X15A2,PID=0080,那么就表示要給 I.MX6ULL 燒寫系統。

mfgtool2-yocto-mx-evk-emmc.vbs 文件

ucl2.xml文件中確定了要燒寫的處理器型號以后,還要確定向什么存儲設備燒寫系統,這是在mfgtools/mfgtool2-yocto-mx-evk-emmc.vbs中配置;

Set wshShell = CreateObject("WScript.shell")
wshShell.run "mfgtool2.exe -c ""linux"" -l ""eMMC"" -s ""board=sabresd"" -s ""mmc=1"" -s ""6uluboot=14x14evk"" -s ""6uldtb=14x14-evk"""
Set wshShell = Nothing
重點是“wshShell.run”這一行,這里一行調用了 mfgtool2.exe 這個軟件,并且還給出了一堆的參數,其中就有“eMMC”字樣,說明是向 EMMC 燒寫系統,要燒寫的存儲設備就這樣確定下來了。 繼續分析ucl2.xml文件中的燒寫過程 前面說了燒寫分兩個階段,第一步是通過 USB OTG 向 DDR中下載系統,第二步才是正常的燒寫。通過 USB OTG 向 DDR 下載 uboot 的命令如下:
Loading U-boot 
“file”表示要下載的文件位置,在firmware目錄下,文件名字為:
u-boot-imx6ul%lite%%6uluboot%_emmc.imx
“%lite%”和“%6uluboot%” 分別表示取lite和6uluboot的值,在cfg.ini文件中有定義。

cfg.ini文件

mfgtools/cfg.ini文件是一個配置文件,內容如下:

[profiles]
chip = Linux


[platform]
board = SabreSD


[LIST]
name = SDCard


[variable]
board = sabresd
mmc = 0
sxuboot=sabresd
sxdtb=sdb
7duboot=sabresd
7ddtb=sdb
6uluboot=14x14ddr3arm2
6uldtb=14x14-ddr3-arm2
6ulldtb=14x14-ddr3-arm2
ldo=
plus=
lite=l
initramfs=fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
seek = 1
sxnor=qspi2
7dnor=qspi1
6ulnor=qspi1
nor_part=0

“%lite%”和“%6uluboot%”分別表示取 lite 和 6uluboot 的值,而 lite=l,6uluboot=14x14evk,因此將這個值代入以后就是:

u-boot-imx6ull14x14evk _emmc.imx
這里向 DDR 中下載的是 firmware/ u-boot-imx6ull14x14evk _emmc.imx 這個 uboot 文件。同樣的方法將.dtb(設備樹)和 zImage 都下載到 DDR 中以后就會跳轉去運行 OS,這個時候會在 MfgTool 工具中會有“Jumping to OS image”提示語句,ucl2.xml 中的跳轉命令如下:
 Jumping to OS image. 
啟動 Linux 系統以后就可以在 EMMC 上創建分區,然后燒寫 uboot、zImage、.dtb(設備樹)和根文件系統。

|燒寫 NXP 官方系統

燒寫步驟如下:

1、連接好 USB,撥碼開關撥到 USB 下載模式。

2、彈出 TF 卡,然后按下開發板復位按鍵。

3、打開 串口工具。

4、雙擊“mfgtool2-yocto-mx-evk-emmc.vbs”,打開下載軟件,如果出現“符合 HID 標準的供應商定義設備”等字樣就說明下載軟件已經準備就緒。點擊“Start”按鈕開發燒寫 NXP 官方系統,燒寫過程如圖所示:

2a8b4596-51a6-11ed-a3b6-dac502259ad0.png

燒錄過程會輸出一些信息

2a994f24-51a6-11ed-a3b6-dac502259ad0.png

等待好幾分鐘,串口沒輸出就是下載完:

2af72086-51a6-11ed-a3b6-dac502259ad0.png

燒寫完成以后點擊“Stop”按鈕停止燒寫,然后點擊“Exit”鍵退出。拔出 USB 線,將開發板上的撥碼開關撥到 EMMC 啟動模式,然后重啟開發板,此時就會從 EMMC 啟動。只是啟動以后的系統是 NXP 官方給 I.MX6ULL EVK 開發板制作的,這個系統需要輸入用戶名,用戶名為“root”,沒有密碼:

2b10c45a-51a6-11ed-a3b6-dac502259ad0.png

成功進入系統:

2b3da57e-51a6-11ed-a3b6-dac502259ad0.png

|燒寫自己的系統

準備要燒寫的文件: 自己移植編譯出來的uboot文件(u-boot.imx),自己移植編譯出來的zImage鏡像文件,開發板對應的.dtb(設備樹)mx6ull-myboard.dtb,自己構建的根文件系統rootfs; rootfs需要先打包成rootfs.tar.bz2,進入Ubuntu中的nfs目錄下的rootfs目錄,使用tar命令打包:

cd rootfs/ 
tar -vcjf rootfs.tar.bz2 *

全部復制到windows桌面,然后修改一下名稱;

2be2c522-51a6-11ed-a3b6-dac502259ad0.png

文明名稱一定要和下面的名稱一致;

原名稱 修改替換的名稱
u-boot.imx u-boot-imx6ull14x14evk_emmc.imx
zImage zImage(不需要重命名)
imx6ull-myboard-emmc.dtb zImage-imx6ull-14x14-evk-emmc.dtb
rootfs.tar.bz2 rootfs_nogpu.tar.bz2

先將上圖中的 zImage、u-boot-imx6ull14x14evk_emmc.imx 和 zImage-imx6ull-14x14-evk-emmc.dtb 這三個文件拷貝到 mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware 目錄中,替換掉原來的文件。然后將上圖中的所有 4 個文件都拷貝到 mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/files目錄中,這兩個操作完成以后就可以進行燒寫了。雙擊“mfgtool2-yocto-mx-evk-emmc.vbs”,打開燒寫軟件,按照燒錄流程燒錄,點擊“Start”按鈕開始燒寫;

燒錄完成,切換到EMMC啟動,成功進入系統;

2c00617c-51a6-11ed-a3b6-dac502259ad0.png

|網絡開機自啟動設置

用 NFS 掛載根文件系統的時候因為要使用 NFS服務,因此 Linux 內核會打開 eth0 這個網卡,現在不使用 NFS 掛載根文件系統,因此 Linux內核也就不會自動打開 eth0 網卡了,可以手動打開網卡;

//查看eth0和eth1是否都存在
ifconfig -a


// 打開 eth0 網卡
ifconfig eth0 up


//查看網卡,會看到eth0網卡
ifconfig


//自動設置IP地址
udhcpc -i eth0 // 通過路由器分配 IP 地址


// 手動設置 IP 地址
ifconfig eth0 192.168.1.251 netmask 255.255.255.0 //設置 IP 地址和子網掩碼
route add default gw 192.168.1.1 //添加默認網關
開機自動打開網卡 設置網卡 IP 地址的命令添加到/etc/init.d/rcS 文件中:
#!/bin/sh 
 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib 
export PATH LD_LIBRARY_PATH  


mount -a 
mkdir /dev/pts 
mount -t devpts devpts /dev/pts 


echo /sbin/mdev > /proc/sys/kernel/hotplug 
mdev -s


#網絡開機自啟動設置
ifconfig eth0 up
#udhcpc -i eth0 
ifconfig eth0 192.168.2.50 netmask 255.255.255.0
route add default gw 192.168.2.1
修改了根文件系統就需要重新壓縮,然后燒錄到EMMC中,再從EMMC啟動系統,再ping百度來驗證網絡是否能用:

2c140420-51a6-11ed-a3b6-dac502259ad0.png

移植工作就到這里,后續學習 Linux驅動開發!

審核編輯:湯梓紅

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

    關注

    87

    文章

    11342

    瀏覽量

    210140
  • 移植
    +關注

    關注

    1

    文章

    382

    瀏覽量

    28161
  • 開發板
    +關注

    關注

    25

    文章

    5121

    瀏覽量

    97973
  • 燒寫
    +關注

    關注

    0

    文章

    57

    瀏覽量

    14331

原文標題:i.MX6ULL|系統燒寫

文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    i.MX6ULL 驅動開發7—按鍵輸入捕獲與GPIO輸入配置與高低電平讀取

    本篇主要介紹了i.MX6ULL的按鍵檢測的使用,主要的知識點是設備樹的修改,以及GPIO的輸入配置與高低電平的讀取。
    的頭像 發表于 05-24 09:11 ?6321次閱讀
    <b class='flag-5'>i.MX6ULL</b> 驅動開發7—按鍵輸入捕獲與GPIO輸入配置與高低電平讀取

    使用i.MX6ULL開發板進行Linux根文件系統的完善

    上一篇推文講了怎么移植根文件系統,并在i.MX6ULL開發板中運行起來,但是會出現一些提示,現在來進行根文件的完善。
    發表于 10-17 11:13 ?821次閱讀

    移植NXP官方linux 5.4內核到i.MX6ULL開發板

    本文描述移植NXP官方 linux 5.4 內核到i.MX6ULL開發板。
    發表于 12-19 11:10 ?2101次閱讀

    i.MX6UL/i.MX6ULL開發常見問題】單獨編譯內核,uboot生成很多文件,具體用哪一個?

    i.MX6UL/i.MX6ULL開發常見問題》基于米爾電子 i.MX6UL/i.MX6ULL產品(V.10)2.3單獨編譯內核,uboot生成很多文件,具體用哪一個?答:內核編譯出來
    發表于 07-01 17:50

    i.MX6ULL開發板硬件資源

    迅為i.MX6ULL 終結者開發板硬件資源非常豐富,幾乎將 i.MX6ULL 芯片的所有資源都擴展引出到底板上了,底板提供了豐富的外設接口,開發板的尺寸是 190mm*125mm,充分考慮了人性化設計,整體顯得十分大。
    發表于 12-29 06:18

    i.MX6ULL核心板資源

    操作系統鏡像&工具提供資料提供相關的 BSP 源代碼、文件系統源代碼其它默認配置i.MX6ULL、512MB DDR3、4GB
    發表于 07-12 17:50

    初識 i.MX6ULL 寄存器

    裸機開發_L1_匯編LED實驗0. 本節目標1. 硬件層電路2. 初識 i.MX6ULL 寄存器2.1 i.MX6ULL 時鐘控制寄存器2.2 i.MX6ULL IO復用寄存器2.3
    發表于 12-20 07:13

    I.MX6ULL UART傳輸問題求解

    I.MX6ULL UART傳輸問題
    發表于 04-21 08:09

    珠海明遠智睿科技聯合NXP強勢推出i.MX6ull核心板

    NXP I.MX6ULL是一個高性能、低功耗、高性價比處理器系列,基于ARM Cortex-A7內核,主頻可達900MHz。i.MX 6ULL應用處理器包括一個集成的電源管理模塊,可以省掉外部
    發表于 04-24 14:10 ?566次閱讀

    飛凌i.MX6ULL開發板的評測,再次進階擁有更高的性價比

    處理器MCIMX6Y2開發設計,采用先進的ARMCortex-A7內核,運行速度高達800MHz。i.MX6ULL應用處理器包括一個集成的電源管理模塊,降低了外接電源的復雜性,并簡化了上電時序。 i.MX6ULL
    發表于 10-27 11:55 ?1503次閱讀
    飛凌<b class='flag-5'>i.MX6ULL</b>開發板的評測,再次進階擁有更高的性價比

    基于NXP i.MX6ULL處理器的FETMX6ULL-C核心板

    “性價比高,功能接口豐富,資料齊全,穩定性強”這是許多用戶對飛凌FETMX6ULL-S核心板的評價。作為NXP公司一顆經典的MPU,i.MX6ULL的市場認可度無需多言。而作為NXP公司的金牌
    發表于 04-11 15:05 ?1168次閱讀
    基于NXP <b class='flag-5'>i.MX6ULL</b>處理器的FETMX<b class='flag-5'>6ULL</b>-C核心板

    i.MX6ULL】驅動開發4——點亮LED(寄存器版)

    本篇主要介紹了如何通過操作寄存器來點亮i.MX6ULL開發板上的led,通過編寫LED對應的驅動程序和應用程序,實現程序設計的分層。
    的頭像 發表于 05-21 21:26 ?3015次閱讀
    【<b class='flag-5'>i.MX6ULL</b>】驅動開發4——點亮LED(寄存器版)

    【北京迅為】i.MX6ULL開發板移植 Debian 文件系統

    【北京迅為】i.MX6ULL開發板移植 Debian 文件系統
    的頭像 發表于 02-10 15:34 ?1200次閱讀
    【北京迅為】<b class='flag-5'>i.MX6ULL</b>開發板移植 Debian 文件<b class='flag-5'>系統</b>

    基于i.MX6ULL的掉電檢測設計與軟件測試

    基于i.MX6ULL的掉電檢測設計與軟件測試基于i.MX6ULL平臺設計實現掉電檢測功能,首先選擇一路IO,利用IO電平變化觸發中斷,在編寫驅動時捕獲該路GPIO的中斷,然后在中斷響應函數中發
    的頭像 發表于 11-09 10:40 ?903次閱讀
    基于<b class='flag-5'>i.MX6ULL</b>的掉電檢測設計與軟件測試

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區別與開發板對比
    的頭像 發表于 11-28 14:31 ?539次閱讀
    【迅為電子】<b class='flag-5'>i.MX6</b>UL和<b class='flag-5'>i.MX6ULL</b>芯片區別與開發板對比
    主站蜘蛛池模板: 三级貂蝉艳史 在线观看 | 亚洲人成人毛片无遮挡 | 亚洲综合色在线视频久 | 成人国产精品玖玖热色欲 | 亚洲AV人无码综合在线观看蜜桃 | 久草热在线 | 99视频久久精品久久 | 双腿打开揉弄高潮H苏安安秦慕深 | 97久久精品人人槡人妻人 | 内射少妇36P九色 | 国产午夜理论片YY8840Y | 免费在线看视频 | 麻豆精品一区二正一三区 | 微拍秒拍99福利精品小视频 | 免费看黄色小说 | 99人精品福利在线观看 | 国内精品九九视频 | 教室里的激情电影 | 黄色a一级视频 | 无码丰满人妻熟妇区 | 国产三级精品三级男人的天堂 | 婷婷亚洲五月色综合久久 | 精品国产麻豆AV无码 | 日本一卡2卡3卡四卡精品网站 | 9久久免费国产精品特黄 | 亚洲男人在线观看 | 亚洲国产五月综合网 | 护士被老头边摸边吃奶的视频 | 在线看片福利无码网址 | 人妻中文字幕乱人伦在线 | 狠狠人妻久久久久久综合九色 | 91麻豆国产精品91久久久 | 亚洲免费一区 | 色琪琪无码成人AV视频 | 小箩莉奶水四溅小说 | 国产在线亚洲精品观看不卡 | 亚洲偷偷自拍免费视频在线 | 亚洲不卡高清免v无码屋 | 国产成人aaa在线视频免费观看 | 国产 日韩 欧美 高清 亚洲 | 18国产精品白浆在线观看免费 |