燒寫固件
啟動模式說明
前言
AIO-3399JD4 有靈活的啟動方式。一般情況下,除非硬件損壞,AIO-3399JD4 開發板是不會變磚的。
如果在升級過程中出現意外,bootloader 損壞,導致無法重新升級,此時仍可以進入 MaskRom 模式來修復。
加載方式
AIO-3399JD4 有 32KB 的 BootRom 和 200KB 的內部 SRAM,支持從以下設備加載系統:
SPI 接口
eMMC 接口
SDMMC 接口
另外 AIO-3399JD4 支持從 USB OTG 接口下載系統代碼。
啟動次序
啟動的次序是這樣的:
主控上電初始化
BootRom 代碼在 SRAM 上運行,校驗存儲設備里的 bootloader
校驗通過,加載并運行 bootloader 引導代碼
bootloader 引導代碼負責初始化 DDR 內存,加載 bootloader 完整代碼到 DDR 內存中并運行
bootloader 加載存儲設備上的 Linux 內核,并將執行權交給 Linux 內核
啟動模式
AIO-3399JD4 有三種啟動模式:
Normal 模式
Loader 模式
MaskRom 模式
Normal 模式
Normal 模式就是正常的啟動過程,各個組件依次加載,正常進入系統。
Loader 模式
在 Loader 模式下,bootloader 會進入升級狀態,等待主機命令,用于固件升級等。要進入 Loader 模式,必須讓 bootloader 在啟動時檢測到 RECOVERY(恢復)鍵按下,且 USB 處于連接狀態。使設備進入升級模式方法如下:
斷開電源適配器
雙公頭 USB 線連接好設備和主機。
按住設備上的 RECOVERY (恢復)鍵并保持。
插上電源。
大約兩秒鐘后,松開 RECOVERY 鍵。
MaskRom 模式
MaskRom 模式用于 bootloader 損壞時的系統修復。
一般情況下是不用進入 MaskRom 模式的,只有在 bootloader 校驗失敗(讀取不了 IDB 塊,或 bootloader 損壞) 的情況下,BootRom 代碼 就會進入 MaskRom 模式。此時 BootRom 代碼等待主機通過 USB 接口傳送 bootloader 代碼,加載并運行之。
燒寫工具下載地址(根據下表下載對應版本)
upgrade_tool
Android_tool
固件
官方固件:官方云盤提供的Ubuntu固件中,帶MBR字樣的為舊版本SDK編譯出來的MBR固件,帶GPT字樣的為新SDK編譯出來的GPT固件.
請認真閱讀下表,再進行燒寫:
升級固件
前言
本文介紹了如何將主機上的固件文件,通過公對公USB線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
準備工作
AIO-3399JD4 開發板
固件
主機
公對公USB線
固件文件一般有兩種:
單個統一固件 update.img, 將啟動加載器、參數和所有分區鏡像都打包到一起,用于固件發布。
多個分區鏡像,如 kernel.img, rootfs.img, recovery.img 等,在開發階段生成。
可以在這里找到已編譯好的統一[AIO-3399JD4固件(提取碼:jbmd)]https://pan.baidu.com/s/1pSJTa3EarQCBpYniZAGprQ,下載后解壓。也可以參考編譯固件的說明自行編譯。
主機操作系統支持:
Windows XP (32/64位)
Windows 7 (32/64位)
Windows 8 (32/64位)
Linux (32/64位)
Windows
工具: Androidtool_xxx(版本號)
注意:不同固件使用的工具版本可能不同,請根據燒寫須知下載對應的版本
安裝 RK USB 驅動
下載 Release_DriverAssistant.zip ,解壓,然后運行里面的 DriverInstall.exe 。為了所有設備都使用更新的驅動,請先選擇”驅動卸載”,然后再選擇”驅動安裝”。
連接設備
按照以下方式可以使設備進入升級模式
先斷開電源適配器連接:
公對公USB線一端連接主機,一端連接開發板
按住設備上的 RECOVERY (恢復)鍵并保持。
接上電源
大約兩秒鐘后,松開 RECOVERY 鍵。
主機應該會提示發現新硬件并配置驅動。打開設備管理器,會見到新設備”Rockusb Device” 出現,如下圖。如果沒有,則需要返回上一步重新安裝驅動。
燒寫固件
下載 AndroidTool,解壓,運行 AndroidTool_Release_xx 目錄里面的 AndroidTool.exe(注意,如果是 Windows 7/8,需要按鼠標右鍵,選擇以管理員身份運行),如下圖:
燒寫統一固件 update.img
燒寫統一固件 update.img 的步驟如下:
切換至”升級固件”頁。
按”固件”按鈕,打開要升級的固件文件。升級工具會顯示詳細的固件信息。
按”升級”按鈕開始升級。
如果升級失敗,可以嘗試先按”擦除Flash”按鈕來擦除 Flash,然后再升級。一定要根據 燒寫須知 進行擦除燒寫
注意:如果你燒寫的固件laoder版本與原來的機器的不一致,請在升級固件前先執行”擦除Flash”。
燒寫分區映像
每個固件的分區可能不相同,請注意以下兩點:
使用Androidtool_2.38燒寫ubuntu(MBR)和Android7.1固件時使用默認配置即可;
使用Androidtool_2.58燒寫ubuntu(GPT)使用默認配置即可,燒寫Android8.1固件請先執行以下操作:
切換至”下載鏡像頁面”; 右鍵點擊表格,選擇”導入配置”; 選擇rk3399-Android81.cfg
燒寫分區映像的步驟如下:
切換至”下載鏡像”頁。
勾選需要燒錄的分區,可以多選。
確保映像文件的路徑正確,需要的話,點路徑右邊的空白表格單元格來重新選擇。
點擊”執行”按鈕開始升級,升級結束后設備會自動重啟。
Linux
Linux 下無須安裝設備驅動,參照 Windows 章節連接設備則可。
工具:upgrade_tool_xxx(版本號)
注意:不同固件使用的工具版本可能不同,請根據燒寫須知下載對應的版本
upgrade_tool
下載 Linux_Upgrade_Tool, 并按以下方法安裝到系統中,方便調用:
unzip Linux_Upgrade_Tool_xxxx.zip cd Linux_UpgradeTool_xxxx sudo mv upgrade_tool /usr/local/bin sudo chown root:root /usr/local/bin/upgrade_tool sudo chmod a+x /usr/local/bin/upgrade_tool
燒寫統一固件 update.img:
sudo upgrade_tool uf update.img
如果升級失敗,可以嘗試先擦除后再升級。一定要根據燒寫須知的表格(upgrade_table.md)進行擦除燒寫
# 擦除flash 使用ef參數需要指定loader文件或者對應的update.img sudo upgrade_tool ef update.img #update.img :你需要燒寫的ubuntu固件 # 重新燒寫 sudo upgrade_tool uf update.img
燒寫分區鏡像:Ubuntu(MBR)、Android7.1、Android8.1,使用以下方式:
sudo upgrade_tool di -b /path/to/boot.img sudo upgrade_tool di -k /path/to/kernel.img sudo upgrade_tool di -s /path/to/system.img sudo upgrade_tool di -r /path/to/recovery.img sudo upgrade_tool di -m /path/to/misc.img sudo upgrade_tool di resource /path/to/resource.img sudo upgrade_tool di -p paramater #燒寫 parameter sudo upgrade_tool ul bootloader.bin # 燒寫 bootloader
Ubuntu(GPT),使用以下方式
sudo upgrade_tool ul $LOADER sudo upgrade_tool di -p $PARAMETER sudo upgrade_tool di -uboot $UBOOT sudo upgrade_tool di -trust $TRUST sudo upgrade_tool di -b $BOOT sudo upgrade_tool di -r $RECOVERY sudo upgrade_tool di -m $MISC sudo upgrade_tool di -oem $OEM sudo upgrade_tool di -userdata $USERDATA sudo upgrade_tool di -rootfs $ROOTFS
如果因 flash 問題導致升級時出錯,可以嘗試低級格式化、擦除 nand flash:
sudo upgrade_tool lf update.img # 低級格式化 sudo upgrade_tool ef update.img # 擦除
常見問題
如何強行進入 MaskRom 模式
如果板子進入不了 Loader 模式,此時可以嘗試強行進入 MaskRom 模式。操作方法見《如何進入 MaskRom 模式》。
MaskRom模式
MaskRom 模式是設備變磚的最后一條防線。強行進入 MaskRom 涉及硬件操作,有一定風險,因此僅在設備進入不了 Loader 模式的情況下,方可嘗試 MaskRom 模式。
請小心閱讀,并謹慎操作! 操作步驟如下:
設備斷開所有電源。
拔出 SD 卡。
用公對公USB線連接好設備和主機。
用金屬鑷子接通核心板上的如下圖所示的兩個測試點,并保持。
設備插入電源。
稍候片刻,之后松開鑷子。
這時,設備應該就會進入 MaskRom 模式。
-
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35337 -
安卓
+關注
關注
5文章
2130瀏覽量
57198 -
Firefly
+關注
關注
2文章
538瀏覽量
7045
發布評論請先 登錄
相關推薦
評論