新聞中心
想了解更多內(nèi)容,請訪問:

創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)成都定制網(wǎng)頁設(shè)計方案、改版、費用等問題,行業(yè)涉及成都垃圾桶等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
上周在研究Hi3861平臺的軟總線組件,周末的時候,購買的Hi3516開發(fā)板到貨,就著手研究了一下Hi3516開發(fā)板。
在Linux下的DevEco新建Hi3516工程并通過HPM下載代碼,一鍵build,out目錄有三個重要文件:
OHOS_Image.bin(size 5M)、rootfs.img(size 14M)、userfs.img(size 50M),加上 //vendor/hisi/hi35xx/hi3516dv300/uboot/out/boot/u-boot-hi3516dv300.bin(size 231K)共計4個文件,可以燒錄到開發(fā)板上。
在動手燒錄之前,一定要先仔細(xì)研究一下官網(wǎng)的“Hi3516系列開發(fā)板燒錄”說明。
去潤和官網(wǎng)下載windows下的串口驅(qū)動(“USB-to-Serial Comm Port”+”PL2303_Prolific_DriverInstaller_v1_12_0”)并安裝起來。
這里還有一個Hi3516-HiTool工具可以用來在windows下燒錄,不需要的話可不下載。
這里往后翻一下,還有一個HiUSBBurnDriver驅(qū)動可以下載,通過USB口來燒錄需要安裝這個驅(qū)動。
1. USB轉(zhuǎn)串口線連接開發(fā)板與虛擬機(jī)里的DevEco
開發(fā)板配送的USB轉(zhuǎn)串口線,默認(rèn)是直接接到windows主機(jī)上的,要切換連接到Linux虛擬機(jī)里去,如下圖,選擇“連接(與主機(jī)斷開連接)”。
在Linux的DevEco,Hi3516工程的配置中的“upload_port”選中對應(yīng)的設(shè)備即可將開發(fā)平臺與DevEco連接在一起了。
2. 不推薦串口燒錄
上面的upload_protocol 選擇“hiburn-serial”模式就可以啟動串口燒錄了,這種模式下,開發(fā)板只要連接電源線和USB轉(zhuǎn)串口線(接入Linux虛擬機(jī)DevEco),按官網(wǎng)提供的步驟操作燒錄就可以了。
但是非常不推薦串口燒錄,速度太慢了,燒錄一次半個小時以上,迫不得已的燒錄辦法。
3. USB燒錄還沒成功
官網(wǎng)上說只需要連接USB線(包含了供電)和串口線即可,按照官方文檔操作,中間需要給平臺“重啟開發(fā)板(下電再上電)”,這總不能拔掉USB線再插上吧,開發(fā)板串口線座子邊上倒是有一個SW3按鍵(原理圖上是UPDATE_MODE),但目前實際按下去是沒有反應(yīng)的,估計是還需要先做一些配置。
所以目前還沒有成功通過USB進(jìn)行燒錄,先放下,待后面再研究一下。
4. 網(wǎng)口燒錄
虛擬機(jī)的網(wǎng)絡(luò)設(shè)置成橋接模式,可以讓虛擬機(jī)、windows主機(jī)、Hi3516開發(fā)板三者并列位于當(dāng)前局域網(wǎng)環(huán)境中,開發(fā)板需要通過網(wǎng)線接入當(dāng)前局域網(wǎng),這樣操作起來會比較簡單?!綨AT模式我還沒試過,不知道行不行】
如上上圖,upload_protocol 選擇“hiburn-net”模式,這時DevEco會自動生成:
分別是虛擬機(jī)的IP地址、掩碼、網(wǎng)關(guān)和將要為Hi3516開發(fā)板分配的IP(這個可以自己改成別的地址,不與局域網(wǎng)內(nèi)的設(shè)備產(chǎn)生沖突就可以了)。
至此,Hi3516開發(fā)板連接有電源線、網(wǎng)線接入局域網(wǎng)、USB轉(zhuǎn)串口線連入Linux虛擬機(jī)。
先看下一節(jié)“不要燒錄fastboot”,去掉燒錄fastboot的燒錄后,按官方操作說明進(jìn)行操作即可,要是燒錄不成功,可能需要先看看網(wǎng)絡(luò)配置是否正常。
網(wǎng)口燒錄一般在兩三分鐘內(nèi)就可以燒錄完成,缺點是需要網(wǎng)絡(luò)。
5. 不要燒錄fastboot
平常開發(fā)沒有修改到fastboot的話,就沒必要去燒錄fastboot了。
要是用Windows下的Hi3516-HiTool工具來燒錄,不要勾選fastboot就可以了。
要是通過Linux下的DevEco來燒錄,就要手動刪掉這個fastboot。
DevEco創(chuàng)建并通過HPM下載安裝Hi3516工程時,默認(rèn)是勾選燒錄fastboot的,這是一個坑。
可以在Hi3516工程的配置里的“hi3516dv300”標(biāo)簽下的“upload_partitions”項目里,把“partition:hi3516dv300_fastboot”刪除掉,這樣左手邊的“PROJECT TASKS”下就沒有“hi3516dv300_fastboot”的燒錄選項了,一鍵燒錄時就避免燒錄fastboot了。需要燒錄的時候,再加上去就可以了。
要是不刪除“partition:hi3516dv300_fastboot”,那燒錄時,就不要點擊“Upload”進(jìn)行一鍵燒錄,可以通過下面的kernel/rootfs/userfs標(biāo)簽單獨燒錄某個partition就可以了。
6. 燒錄fastboot之后
要是修改了uboot代碼,必須要燒錄fastboot,或者誤燒錄了fastboot,之后的開機(jī)會停留在:
- Hit any key to stopautoboot: 0
- ## Error:"distro_bootcmd" not defined
- hisilicon #
這一步,需要重新設(shè)置bootcmd和bootargs。
可以參考官方說明進(jìn)行操作,需要特別注意的是:
- setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
我們之前已經(jīng)將OHOS_Image.bin燒寫到FLASH(emmc)中去了(燒寫地址是和大小就是下圖中的Address和Length)。
這條 bootcmd 是 uboot 引導(dǎo)啟動鴻蒙內(nèi)核的指令,意思就是:從FLASH(emmc)地址為 0x800(單位為512B,即1MByte)的地方開始,讀取大小為 0x4800(單位為512B,即9MByte)的內(nèi)容(包含了整個OHOS_Image.bin和部分空余空間)到地址為0x80000000的內(nèi)存(DDR)里去,并從內(nèi)存的0x80000000地址開始執(zhí)行指令,由此進(jìn)入?yún)R編代碼引導(dǎo)LiteOS-A內(nèi)核啟動階段(見《鴻蒙系統(tǒng)的啟動流程》第二階段)。
這里的 0x4800 的大小(9MB)與 DevEco 中所填寫的 OHOS_Image.bin 文件大小(注意不是實際大小,而是下面的Length )必須相同。如下:
如本文開頭所述,編譯出來的OHOS_Image.bin(size 5M),這里給的9M空間足夠了,不要隨便修改。
未來如果修改內(nèi)核編譯出來的OHOS_Image.bin超過9M大小,那就需要修改這里的Length參數(shù)里,具體可在“New Option”中選擇“partition_length”再進(jìn)行設(shè)置,改了這個之后,后面的rootfs/userfs的起始地址也必須要跟著往后挪相應(yīng)的值。
- setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=15M rw";
表示設(shè)置啟動參數(shù),輸出模式為串口輸出,波特率為115200,數(shù)據(jù)位8,rootfs掛載于emmc器件,文件系統(tǒng)類型為vfat,“rootaddr=10M rootsize=15M rw”處對應(yīng)填入rootfs.img的燒寫起始位置與長度,此處與DevEco中填寫的 rootfs.img 文件大小必須相同。
前面 fastboot 占了1M空間,kernel占了9M空間(雖然OHOS_Image.bin實際只用了5M),所以rootfs的起始地址就從10M處開始,size 的話,按DevEco的配置(0x1400000),這里的rootsize=15M 是要改成rootsize=20M的,如下圖:
本文開頭rootfs.img(size 14M),實際只占用了這20M中的前面14M,暫沒有必要修改這個參數(shù)。
以后修改系統(tǒng)代碼,增加了一些庫文件等等,rootfs超過了20M,也需要修改Length參數(shù),同時會影響到后面的userfs的起始地址。
目前userfs默認(rèn)50M,其余也都先按默認(rèn)值來處理就可以了。
確認(rèn)無誤后,執(zhí)行:
- saveenv
- reset
進(jìn)行保存設(shè)置和重啟,應(yīng)該就可以正常啟動了。
要是仍然沒法正常啟動,那就需要看log分析是到哪一步出現(xiàn)了異常。
7. uboot命令行 hisilicon#
uboot啟動到
- Hit any key to stopautoboot: 2
在這一步時,按任意鍵可以中斷Uboot對鴻蒙系統(tǒng)內(nèi)核的引導(dǎo),進(jìn)入uboot命令行模式【uboot引導(dǎo)鴻蒙系統(tǒng)內(nèi)核出現(xiàn)異常如上一節(jié),也會導(dǎo)致進(jìn)入uboot的命令行模式】。
在hisilicon# 下,敲入“?”或者“help”,可以查看支持的指令。
8. Windows Hi3516-HiTool燒錄
上面說到的都是在Linux虛擬機(jī)的DevEco上燒錄的,這里我們也可以在windows下用Hi3516-HiTool來進(jìn)行燒錄。
需要先做一些準(zhǔn)備工作:Linux下按照上一節(jié)的操作進(jìn)入uboot的命令行,寫入指令:
- setenv serverip 192.168.1.114
- setenv ipaddr 192.168.1.55
- saveenv
windows主機(jī)作為server端,它的ip地址是 192.168.1.114,Hi3516開發(fā)板地址為 192.168.1.55。
然后拷貝linux編譯出來的OHOS_Image.bin、rootfs.img、userfs.img、u-boot-hi3516dv300.bin到windows目錄下。
再按第一節(jié)中描述的,斷開USB轉(zhuǎn)串口與linux的連接,回到windows主機(jī)的 com6 口。
Windows下打開Hi3516-HiTool,確認(rèn)下面的配置與實際相符,特別是四個文件的起始地址和大小,一定要與上面setenv bootcmd、setenv bootargs 的參數(shù)匹配,否則燒錄后重啟,會啟動失敗的。確認(rèn)無誤后,點擊燒寫,開發(fā)板斷電再重新上電即可開始燒寫。
想了解更多內(nèi)容,請訪問:
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.
當(dāng)前文章:Hi3516開發(fā)板燒錄總結(jié)
新聞來源:http://m.5511xx.com/article/dhgpphg.html


咨詢
建站咨詢
