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

原創 作者 imx6ULL 2020-12-18 15:23:00 iMX6ULL

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

一、 SD卡燒寫系統

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

設置撥碼開關:

燒寫/啟動

序號1

序號2

序號3

序號4

序號5

序號6

序號7

序號8

SD卡燒寫

0

0

1

0

1

0

0

1

EMMC啟動

0

0

1

0

0

0

0

0

NAND啟動

0

0

0

1

1

0

0

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盤沒有被虛擬機識別,可以使用如下箭頭指向圖標將優盤連接到虛擬機)。

使用如下箭頭指向圖標將優盤連接到虛擬機 

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


neo@ubuntu:~/work/nand-burnsd$ sudo ./6ullsdburn.sh

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

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

這里以我們的操作為例:

選擇 1 ,回車

選擇 1 回車 

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

選擇y回車 

若打印信息中沒有下圖紅框中標識的信息,則SD卡掛載失敗,則需要使用Ubuntu重新卸載并掛載。

 

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

2、SD卡燒寫系統

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

撥碼開關設置 


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!!!!!!!

同時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電源供電如圖,開關撥到供電口端:

5V電源供電

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

撥碼開關設置 

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

雙擊 mx6ull-256mnand-256mddr-cmd.vbs

⑤、插入USB OTG,如下圖:

插入USB OTG

自動識別為HID,如圖:

自動識別為HID 

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

點擊stop 

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

二、單步更新內核

1、 eMMC單步更新內核

系統啟動后,將待替換設備樹放于u盤中,插入到iMX6ULL開發板上,在超級終端輸入命令:

root@fl-imx6ull:~# cp /run/media/sda1/imx6ull-S-gpmi-1024x600c7.dtb  /run/media/mmcblk1p1/imx6ull-S-gpmi-1024x600c7.dtb
root@fl-imx6ull:~# cp /run/media/sda1/zImage  /run/media/mmcblk1p1/zImage
root@fl-imx6ull:~# sync
root@fl-imx6ull:~# reboot

重啟后,到uboot階段選擇對應dtb即可。

2、 Nand單步更新內核

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

root@fl-imx6ull:~# flash_erase /dev/mtd4 0 0
Erasing 128 Kibyte @ 7e0000 -- 100 % complete
root@fl-imx6ull:~# 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
…

更新內核:

更新dtb:

root@fl-imx6ull:~# flash_erase /dev/mtd3 0 0
Erasing 128 Kibyte @ 2e0000 -- 100 % complete
root@fl-imx6ull:~# nandwrite -p /dev/mtd3 /run/media/sda1/target/imx6ull-S-gpmi-800x480c7.dtb
Writing data to block 0 at offset 0x0

更新logo:

root@fl-imx6ull:~# flash_erase /dev/mtd1 0 0
Erasing 128 Kibyte @ 1e0000 -- 100 % complete
root@fl-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


相關產品 >

  • OKMX6ULL-S開發板

    iMX6ULL是飛凌新近推出的一款開發板,iMX6ULL與iMX6UL開發板相比,功能無區別完全兼容,配置升級,性能高,價格低。根據介紹可看出i.MX6ULL參數豐富 ,采用NXP i.MX6ULL處理器芯片,郵票孔封裝,支持Linux系統,i.MX6ULL開發板資料豐富,方便二次開發設計。

    了解詳情
    OKMX6ULL-S開發板
  • FETMX6ULL-S核心板

    飛凌新出的一款采用NXP高性能、高效、低成本處理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用郵票孔連接方式,ARM Cortex-A7內核,原生兩路網口,兩路Can和八路串口,可以和多種設備同時通訊。i.MX6ULL核心板支持工業級和擴展商業級兩種配置,并且經過了高低溫測試的檢驗,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系統,方便開發自己的應用程序。 了解詳情
    FETMX6ULL-S核心板
  • FETMX6ULL-C核心板

    FETMX6ULL-C核心板采用NXP i.MX6ULL處理器開發設計,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架構,運行速度高達800MHz。iMX6ULL核心板29*40mm  ,iMX6ULL這款處理器功能接口資源豐富,供貨周期長。

    了解詳情
    FETMX6ULL-C核心板
  • OKMX6ULL-C開發板

    40*29mm,雙網雙CAN,8路串口| i.MX6ULL開發板是基于NXP i.MX6ULL設計開發的的一款Linux開發板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應場景豐富。 了解詳情
    OKMX6ULL-C開發板

推薦閱讀 換一批 換一批