溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

S5PV210-uboot-fastboot原理

發(fā)布時間:2020-07-27 17:00:20 來源:網(wǎng)絡(luò) 閱讀:9930 作者:小溢 欄目:開發(fā)技術(shù)


1、什么是fastboot

(1)fastboot是android使用的一種刷機方法。

因為Android、的底層是Linux

(2)fastboot使用usb作為物理傳輸

(3)fastboot是uboot中的一個命令

在uboot下輸入fastboot命令,就可以讓uboot進(jìn)入fastboot模式,刷機就是在fastboot模式下進(jìn)行刷機。

(4)fastboot需要主機端的fastboot軟件相配合

(5)fastboot在開發(fā)板和主機之間定義了一套協(xié)議



2、當(dāng)我們在uboot中輸入fastboot時,有時會出現(xiàn)不正常的現(xiàn)象,我們在uboot下輸入 fdisk -c 0 ,完了之后再輸入fastboot就好使了。因為我們SD/MMC設(shè)備第0扇區(qū)是空閑的,0扇區(qū)一般放的都是我們SD/MMC設(shè)備的分區(qū)信息的,所以這個扇區(qū)為空閑的,沒有用的話,fastboot命令執(zhí)行時,就讀取不到這個設(shè)備的分區(qū)信息,所以我們在uboot下輸入fdisk -c 0就是給我們SD/MMC的0扇區(qū)中,弄上分區(qū)信息的。

這時就進(jìn)入了fastboot模式,這時的uboot就相當(dāng)于了一個USB設(shè)備,和我們主機進(jìn)行通信了,在主機中的fastboot軟件中,文件就可以download到開發(fā)板中的inand或者其他。


3、uboot的fastboot命令將開發(fā)板偽裝了一個usb從設(shè)備(主機的usb是主設(shè)備,從設(shè)備是被主設(shè)備識別的),開發(fā)板本身不是usb設(shè)備,所以當(dāng)我們的開發(fā)板直接通過usb線和主機的usb接口連接時,主機是識別不到一個usb設(shè)備的。當(dāng)我們在uboot下輸入fastboot命令時,主機就會識別到一個usb設(shè)備,并且我們沒有驅(qū)動的話,還告訴我們裝驅(qū)動。所以uboot的fastboot命令將開發(fā)板偽裝成了一個usb從設(shè)備。所以主機中就會識別到一個android手機設(shè)備,因為當(dāng)初谷歌在做android的時候發(fā)明的fastboot,所以當(dāng)時主要是用來做手機的,所以會把這個fastboot模式下的設(shè)備當(dāng)成一個手機設(shè)備


4、uboot中只要輸入fastboot命令,進(jìn)入到fastboot模式就可以了,認(rèn)為協(xié)議都是規(guī)定好的,我們只需要在主機端運行fastboot這個軟件,完了就可以和我們的開發(fā)板進(jìn)行通信了,主機可以通過fastboot命令與帶的參數(shù)和開發(fā)板進(jìn)行通信。比如fastboot flash kernel xxxx 就是fastboot命令攜帶的一些參數(shù)和開發(fā)板通過usb線的傳輸進(jìn)行通信了,會將這個xxxkernel燒錄到開發(fā)板的SD/MMC設(shè)備上的kernel分區(qū)中。


5.我們學(xué)習(xí)fastboot的思路就是,

在主機端的fastboot軟件,我們是不去做什么分析的

我們在開發(fā)板段去分析fastboot,看uboot是如何通過fastboot命令進(jìn)入到fastboot模式下的,是如何響應(yīng)主機通過usb線發(fā)送過來的命令的。



6、uboot中的fastboot代碼分析

(1)因為fastboot是uboot的一個命令,所以在uboot的源碼中找的時候,肯定是通過do_fastboot這函數(shù)去找。


(2)當(dāng)我們用fastboot命令燒錄鏡像等文件時,有時會出現(xiàn)燒錄錯誤,說文件太大了,那是因為我們從主機端通過usb線將要燒錄到開發(fā)板中的鏡像文件,先放到開發(fā)板的內(nèi)存中去緩沖,uboot在從這個內(nèi)存的緩沖區(qū)去將文件燒錄到SD/MMC設(shè)備中,在uboot的關(guān)于fastboot的操作中,會將給fastboot設(shè)置一個緩沖區(qū),因為向著寫download操作,fastboot會用到內(nèi)存的,在配置頭文件中有一個fastboot_transbuff_size類似的宏 ,這個宏就是來配置fastboot緩沖區(qū)的大小的。如果要燒錄的鏡像傳輸?shù)竭@個內(nèi)存區(qū)域后,如果鏡像太大了,就會出現(xiàn)p_w_picpath太大了的問題。所以要改動的話,要解決這個問題的話。就可以將這個fastboot的緩沖區(qū)的大小加大即可




















































向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI