天天看點

iMX6ULL基礎操作-系統燒寫指南

本文以飛淩嵌入式OKMX6ULL-S開發闆為基礎講解,本文分為三個部分,主要講解了iMX6ULL SD卡燒寫系統及OTG燒寫系統的以及單步更新核心的步驟。通過本文您可以快速實作飛淩iMX6ULL開發闆系統燒寫。

一、 SD卡燒寫系統

以nand- sdburn為例,燒寫NAND進行操作說明,飛淩iMX6ULL撥碼開關設定參考如下。

設定撥碼開關:

燒寫/啟動 序号1 序号2 序号3 序号4 序号5 序号6 序号7 序号8
SD卡燒寫 1 1 1
EMMC啟動 1
NAND啟動 1 1 1
OTG燒寫 1 1 X X X X X X

注意:上表中“1”代表ON,“0”代表OFF,“X”代表無關。

1、 制作SD卡

将檔案nand-burnsd拷貝到Ubuntu 系統的任一目錄,假設為/home/neo/work。

使用者資料\Linux\燒錄工具\nand-sdburn.zip   為256M NAND檔案系統。

使用者資料\Linux\燒錄工具\ emmc-sdburn.zip   為4G EMMC檔案系統。

步驟1:nand-burnsd.zip解壓後拷貝到/home/neo/work。

步驟2:使用 USB 讀卡器把SD 卡插入到電腦的USB 端口(VMware 虛拟機使用者如果U盤沒有被虛拟機識别,可以使用如下箭頭指向圖示将優盤連接配接到虛拟機)。

iMX6ULL基礎操作-系統燒寫指南

步驟3:待虛拟機識别到SD卡後彈出目錄再進行下邊燒寫操作。進入/home/neo/work/nand-burnsd目錄,執行腳本:

<span style="color:#333333">[email protected]<a data-cke-saved-href="https://www.forlinx.com/index.html" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  href="https://www.forlinx.com/index.html" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  class="tag-link">ubuntu</a>:~/work/nand-burnsd$ sudo ./6ullsdburn.sh</span>           

執行上述指令後,終端會列出電腦的硬碟或U盤,對應選擇自己的SD 卡,回車。

注意:判定自己的U盤是 sda/sdb/sdc 可以根據容量進行判斷,比如自己的優盤容量為4G,則其size 為3872256 KB≈ 4G,建議使用者執行此操作時不要同時插入多個優盤,以免混淆。

這裡以我們的操作為例:

選擇 1 ,回車

iMX6ULL基礎操作-系統燒寫指南

選擇y,回車,等待至制卡完成。

iMX6ULL基礎操作-系統燒寫指南

若列印資訊中沒有下圖紅框中辨別的資訊,則SD卡挂載失敗,則需要使用Ubuntu重新解除安裝并挂載。

iMX6ULL基礎操作-系統燒寫指南

卡制作完成後可以看到boot 分區包含sdrun和target兩個目錄。sdrun 檔案夾内容用于引導系統燒寫,無需修改;target目錄内容會燒寫到flash晶片。如果需要替換鏡像檔案,隻需将target目錄中的對應檔案替換掉,并保持同樣的命名,之後再重新進行系統燒寫。

2、SD卡燒寫系統

将上一節中制作好的SD卡插入,同時将撥碼開關置于下圖所示。3、5、8 均為ON,1、2、4、6、7均為 OFF,如下圖。此時将SD卡中target的内容燒寫到NAND中。

iMX6ULL基礎操作-系統燒寫指南
<span style="color:#333333">lib/modules/4.1.15-00026-g407ada6-dirty/modules.softdep
lib/modules/4.1.15-00026-g407ada6-dirty/source
lib/modules/4.1.15-00026-g407ada6-dirty/modules.dep.bin
lib/modules/4.1.15-00026-g407ada6-dirty/modules.symbols
Update Complete!!!!!!!</span>           

同時iMX6ULL底闆上的LED閃爍。燒寫時間較長,等待系統燒寫完成之後,序列槽列印資訊:

燒寫完成之後,斷電,将撥碼開關撥到4、5、8均為ON,1、2、3、6、7均為OFF,重新上電iMX6ULL開發闆,NAND啟動。

3、OTG燒寫系統

注意:使用OTG燒寫時,iMX6ULL開發闆不能插入SD卡。

mx6ull-4gemmc-512mddr-qt5.6.vbs        燒寫4GeMMC+512MDDR的系統

mx6ull-256mnand-256mddr-cmd.vbs       燒寫256MNAND+256MDDR系統

①、 首先将燒寫工具Mfg工具拷貝到 windows 下解壓,燒寫工具路徑如下所示:使用者資料\Linux\燒錄工具\ mfgtools.zip

②、5V電源供電如圖,開關撥到供電口端:

iMX6ULL基礎操作-系統燒寫指南

③、撥碼開關設定為 1、2為ON,其他狀态任意。如圖:

iMX6ULL基礎操作-系統燒寫指南

④、輕按兩下“ mx6ull-256mnand-256mddr-cmd.vbs ”(已寫好腳本,直接燒寫),如下圖:

iMX6ULL基礎操作-系統燒寫指南

⑤、插入USB OTG,如下圖:

iMX6ULL基礎操作-系統燒寫指南

自動識别為HID,如圖:

iMX6ULL基礎操作-系統燒寫指南

⑥、點選start,開始燒寫系統,中間彈出格式化對話框,點選“取消”格式化選項,或者不管它,直到燒寫完成。如圖:

iMX6ULL基礎操作-系統燒寫指南

⑦、系統燒寫完成之後,出現“Done”,之後點選“stop”,停止。再點選“Exit”,關閉燒寫燒寫工具。斷電,将撥碼開關撥到4、5、8均為ON,1、2、3、6、7均為OFF,重新上電iMX6ULL開發闆,NAND啟動。

二、單步更新核心

1、 eMMC單步更新核心

系統啟動後,将待替換裝置樹放于u盤中,插入到開發闆上,在超級終端輸入指令:

<span style="color:#333333">[email protected]:~# cp /run/media/sda1/imx6ull-S-gpmi-1024x600c7.dtb  /run/media/mmcblk1p1/imx6ull-S-gpmi-1024x600c7.dtb
[email protected]:~# cp /run/media/sda1/zImage  /run/media/mmcblk1p1/zImage
[email protected]:~# sync
[email protected]:~# reboot</span>           

重新開機後,到uboot階段選擇對應dtb即可。

2、 Nand單步更新核心

更新dtb以及核心,logo,可以使用nandwrite指令,該指令也已經打包在檔案系統中。使用時,要将待燒寫的dtb、logo、 zImage檔案複制到檔案系統的某個目錄下(本文示例為/root),然後擦除掉對應分區中的舊固件,再分别使用nandwrite指令将新的固件寫到對應的分區中。參考指令如下所示:

<span style="color:#333333">[email protected]:~# flash_erase /dev/mtd4 0 0
Erasing 128 Kibyte @ 7e0000 -- 100 % complete
[email protected]:~# nandwrite -p /dev/mtd4 /run/media/sda1/target/zImage
Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
Writing data to block 2 at offset 0x40000
…</span>           

更新核心:

更新dtb:

<span style="color:#333333">[email protected]:~# flash_erase /dev/mtd3 0 0
Erasing 128 Kibyte @ 2e0000 -- 100 % complete
[email protected]:~# nandwrite -p /dev/mtd3 /run/media/sda1/target/imx6ull-S-gpmi-800x480c7.dtb
Writing data to block 0 at offset 0x0</span>           

更新logo:

<span style="color:#333333">[email protected]:~# flash_erase /dev/mtd1 0 0
Erasing 128 Kibyte @ 1e0000 -- 100 % complete
[email protected]imx6ull:~# nandwrite -p /dev/mtd1 /run/media/sda1/target/logo.bmp
Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
Writing data to block 2 at offset 0x40000</span>           

繼續閱讀