0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS的燒錄方法介紹

h1654155282.3538 ? 來源:張飛實(shí)戰(zhàn)電子 ? 作者:張飛實(shí)戰(zhàn)電子 ? 2020-10-19 11:02 ? 次閱讀

1.燒錄工具

理解HarmonyOS驅(qū)動(dòng)框架,用戶態(tài)APP和內(nèi)核態(tài)驅(qū)動(dòng)之間的通信機(jī)制。

HarmonyOS燒錄使用的海思自研的燒錄工具Hitool,使用起來相對(duì)來說比較簡單。整體界面如圖所示:

2.燒錄內(nèi)容

燒錄內(nèi)容主要分為兩部分,一部分是引導(dǎo)文件fastboot燒錄,另一部分為項(xiàng)目文件燒錄。這些文件分別是:OHOS_Image.bin可執(zhí)行文件,rootfs.img和userfs.img鏡像文件。

3.燒錄方法

本文以sample_test demo 為例講解燒錄方法,開發(fā)板類型是Hi3516DV300.

燒錄的第一步是打開Hitool工具,選擇對(duì)應(yīng)的芯片類型。如果你的開發(fā)板使用的是Hi3518ev300的,請(qǐng)選擇對(duì)應(yīng)的芯片。

3.1

3.1.1

Hiburn請(qǐng)按照如圖進(jìn)行設(shè)置:

① 我手上用的開發(fā)板是Hi3516DV300的,它的外掛flash是spi nor類型的,你們自己的設(shè)置請(qǐng)根據(jù)實(shí)際情況確定。

② 本示例所用的串口設(shè)備,計(jì)算機(jī)識(shí)別成COM1,你們做開發(fā)時(shí)請(qǐng)?jiān)O(shè)置成相應(yīng)的端口號(hào)。

③ 燒錄方式選擇fastboot。

Uboot所在目錄(如果uboot不能正常啟動(dòng),請(qǐng)從其他地方尋找相對(duì)老一點(diǎn)的版本uboot):

點(diǎn)擊開始燒錄,開發(fā)板電源拔掉并重新接上。

燒寫成功后,打開終端,連接串口可以進(jìn)入hisilion命令行。

3.1.2

3.1.2.1

首先軟件的設(shè)置如下圖所示,請(qǐng)參考圖例正確設(shè)置:

這里面比較重要的就是開始地址和文件長度的確定,這個(gè)部分的規(guī)則如下:

① Uboot占用了1M的存儲(chǔ)空間,所以O(shè)HOS_Image.bin的開始地址是1M,

② 文件大小不足1M的取值1M,比如本示例中OHOS_Image.bin的大小是5656kb,Hiburn中它的長度設(shè)置為6M。所以rootfs.img燒錄的起始地址是1M+ 6M = 7M。

③ 其余情況,以此類推。

本示例中,各文件長度如下圖所示:

3.1.2.2

開始燒錄前,首先先斷開打印信息的串口鏈接,把串口騰出來給燒錄器使用。

3.1.2.3

點(diǎn)擊“燒寫”,并給開發(fā)板重新上電,燒錄就開始了。16M的文件,用串口11500bps的燒寫速度,是需要花費(fèi)一段時(shí)間的,所以系統(tǒng)及應(yīng)用文件的燒錄一般不建議使用串口。

燒錄過程截圖:

燒寫完成,耗時(shí)28分鐘。

3.2

本示例網(wǎng)口燒錄,硬件設(shè)備使用的是UGREEN的usb轉(zhuǎn)RJ45網(wǎng)線接口,僅供參考。

3.2.1

首先為開發(fā)板互聯(lián)網(wǎng)口添加IP地址:192.168.1.3,增加方法如下:

控制面板中找到與單板連接的網(wǎng)卡,右鍵打開屬性。

選擇Internet協(xié)議版本4(TCP/IPv4)。

按圖配置IP地址和網(wǎng)關(guān)。

點(diǎn)擊“確定”完成配置保存。

3.2.2

單板與PC間連接串口后,將單板上電,自動(dòng)進(jìn)入U(xiǎn)-boot,按鍵盤"回車"鍵可在命令窗口輸入命令,為單板配置192.168.1.10的IP地址,并指定192.168.1.3的服務(wù)器IP地址,命令如下。

setenv serverip 192.168.1.3

setenv ipaddr 192.168.1.10

saveenv

配置完成后使用pri命令確認(rèn)查看配置結(jié)果,如下圖所示。

檢查網(wǎng)絡(luò):在PC端使用ping命令確定單板與PC的網(wǎng)絡(luò),命令為"ping 192.168.1.3"。

3.2.3

開始燒錄前,首先先斷開打印信息的串口鏈接,把串口騰出來給燒錄器使用。

3.2.4

Hitool配置如下,請(qǐng)參考。

配置完成后,點(diǎn)擊燒錄。燒錄成功截圖:

3.2.5

網(wǎng)口燒錄的命令刪去中間的細(xì)節(jié)輸出,整理如圖所示:

start download process.

Boot started successfully!

Send command:getinfo version

version: U-Boot 2016.11

[EOT](OK)

Send command:sf probe 0//選擇spi flash 0

[EOT](OK)

Send command:getinfo spi

Block:64KB Chip:16MB*1

ID:0xC2 0x20 0x18

Name:"MX25L128XX"

[EOT](OK)

waiting phy ready, it will take 8s.

Send command:setenv serverip 192.168.1.3

[EOT](OK)

Send command:setenv ethaddr 00:8c:55:07:b0:88

[EOT](OK)

Send command:setenv ipaddr 192.168.1.10

[EOT](OK)

Send command:setenv netmask 255.255.255.0

[EOT](OK)

Send command:setenv gatewayip 192.168.1.1

[EOT](OK)

Tftp server Download Home switched to <10.175.126.15zhuanjiazfdzcamera0825outipcamera_hi3516dv300_liteos_a>

Send command:mw.b 0x81000000 0xFF 0x590000//把內(nèi)存中從0x81000000 開始的0x590000個(gè)字節(jié)全部置1

[EOT](OK)

Send command:tftp 0x81000000 OHOS_Image.bin//把OHOS_Image.bin文檔加載到內(nèi)存中去,起始地址為0x81000000.

Hisilicon ETH net controler

eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M

Using eth0 device

TFTP from server 192.168.1.3; our IP address is 192.168.1.10

Filename 'OHOS_Image.bin'.

Load address: 0x81000000

Bytes transferred = 5791744 (586000 hex)

[EOT](OK)

Send command:crc32 81000000 586000

crc32 for 81000000 ... 81585fff ==> 78b90ed7

[EOT](OK)

Send command:sf probe 0//選擇spi flash 0

[EOT](OK)

Send command:sf erase 0x100000 0x600000//把flash存儲(chǔ)器中從0x100000開始的6M字節(jié)的存儲(chǔ)空間清零。

Send command:sf write 0x81000000 0x100000 0x590000//把內(nèi)存中從0x81000000開始的0x590000字節(jié)的內(nèi)容copy到flash中,flash中存儲(chǔ)的起始地址是0x100000

device 0 offset 0x100000, size 0x590000

Send command:mw.b 0x81000000 0xFF 0x780000//把內(nèi)存中從0x81000000 開始的0x780000個(gè)字節(jié)全部置1

[EOT](OK)

Send command:tftp 0x81000000 rootfs.img//加載rootfs.img到內(nèi)存中去,存儲(chǔ)單位的起始地址是0x81000000

Hisilicon ETH net controler

eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M

Using eth0 device

TFTP from server 192.168.1.3; our IP address is 192.168.1.10

Filename 'rootfs.img'.

Send command:crc32 81000000 772314

crc32 for 81000000 ... 81772313 ==> ba26d341

[EOT](OK)

Send command:sf probe 0//選擇spi flash 0

[EOT](OK)

Send command:sf erase 0x700000 0x800000//把flash存儲(chǔ)器中從0x700000開始的8M字節(jié)的存儲(chǔ)空間清零。

Send command:sf write 0x81000000 0x700000 0x780000//把內(nèi)存中從0x81000000開始的0x780000字節(jié)的內(nèi)容copy到flash中,flash中存儲(chǔ)的起始地址是0x700000

device 0 offset 0x700000, size 0x780000

Send command:mw.b 0x81000000 0xFF 0x10000//把內(nèi)存中從0x81000000 開始的0x10000個(gè)字節(jié)全部置1

[EOT](OK)

Send command:tftp 0x81000000 userfs.img//加載userfs.img到內(nèi)存中去,存儲(chǔ)單位的起始地址是0x81000000

Hisilicon ETH net controler

eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M

Using eth0 device

TFTP from server 192.168.1.3; our IP address is 192.168.1.10

Filename 'userfs.img'.

Load address: 0x81000000

Loading: *##

0 Bytes/s

done

Bytes transferred = 3020 (bcc hex)

[EOT](OK)

Send command:crc32 81000000 bcc

crc32 for 81000000 ... 81000bcb ==> 0361fc92

[EOT](OK)

Send command:sf probe 0//選擇spi flash 0

[EOT](OK)

Send command:sf erase 0xf00000 0x100000//把flash存儲(chǔ)器中從0xF00000開始的1M字節(jié)的存儲(chǔ)空間清零。

Send command:sf write 0x81000000 0xf00000 0x10000//把內(nèi)存中從0x81000000開始的0x10000字節(jié)的內(nèi)容copy到flash中,flash中存儲(chǔ)的起始地址是0xf00000

device 0 offset 0xf00000, size 0x10000

Writing at 0xf10000 -- 100% complete.

SF: 65536 bytes @ 0xf00000 Written: OK

[EOT](OK)

Partition burnt successfully!

Send command:reset

reset success!

Partition burnt completed!

Serial channels were closed successfully.

3.3

硬件使用的雙母口USB線。

3.3.1

文件目錄中只要包含OHOS_Image.bin,rootfs.img,userfs.img三個(gè)文件即可,不限定位置。

燒寫方式一定要選擇DDR燒寫。

3.3.2

3.3.2.1

在串口終端中輸入以下命令,每條命令的具體含義請(qǐng)參考網(wǎng)口燒錄相關(guān)部分的描述:

mw.b 0x80000000 0xff 0x600000;// 0x600000就是OHOS_Image.bin所占的空間(取整)

usbtftp 0x80000000 OHOS_Image.bin;

sf probe 0;sf erase 0x100000 0x600000;sf write 0x80000000 0x100000 0x600000;//起始地址為0x100000

如果是Hi3518ev300的板子,請(qǐng)把命令中的0x80000000改成0x40000000。

3.3.2.2

在串口終端中輸入以下命令,每條命令的具體含義請(qǐng)參考網(wǎng)口燒錄相關(guān)部分的描述:

mw.b 0x80000000 0xff 0x800000;//0x800000就是rootfs.img所占的空間(取整)

usbtftp 0x80000000 rootfs.img;

sf probe 0;sf erase 0x700000 0x800000;sf write 0x80000000 0x700000 0x800000;//起始地址為0x100000+0x600000 = 0x700000

如果是Hi3518ev300的板子,請(qǐng)把命令中的0x80000000改成0x40000000。

3.3.2.3

在串口終端中輸入以下命令,每條命令的具體含義請(qǐng)參考網(wǎng)口燒錄相關(guān)部分的描述:

mw.b 0x80000000 0xff 0x100000;//0x100000就是userfs.img所占的空間(取整)

usbtftp 0x80000000 userfs.img;

sf probe 0;sf erase 0xf00000 0x100000;sf write 0x80000000 0xf00000 0x100000;//起始地址為0x100000+0x600000+0x800000=0xf00000

如果是Hi3518ev300的板子,請(qǐng)把命令中的0x80000000改成0x40000000。

3.3.2.4

4.開源板e(cuò)mmc燒錄

燒錄的時(shí)候,選擇eMMC方式。我們這里選擇通過網(wǎng)口燒錄eMMC,網(wǎng)口的配置參考上文。

燒錄完成之后,uboot的啟動(dòng)命令還有所不同,在eMMC中,存儲(chǔ)是以512B為單位的,如果我們的文件(比如是OHOS_Image.bin)大小為6M(10進(jìn)制),我們需要把它轉(zhuǎn)換成16進(jìn)制,具體轉(zhuǎn)換的公式如下:

10進(jìn)制中文件總大?。?* 1024 * 1024 Byte=6291456Byte,那么總共是多少個(gè)512KB的塊呢?我們用6291456/512= 12288個(gè)塊(十進(jìn)制),再把十進(jìn)制中的12288個(gè)塊轉(zhuǎn)換成16進(jìn)制,得0x3000。那么也就是說一共有0x3000個(gè)512Byte的塊。

setenv bootcmd "sf probe 0;mmc read 0x0 0x80000000 0x800 0x3000;";

setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=7M rootsize=15M rw"; saveenv;

5.不同燒錄方法之間的比較

Usb燒錄方式和網(wǎng)口燒錄方式想象,不同之處比較如下:

網(wǎng)口燒錄和USB燒錄的速度基本是相同的,相比之下串口燒錄就太慢了,所以正常情況下不推薦串口燒錄。

綜上比較,只從效率的角度看,燒錄器的選擇優(yōu)先級(jí)為:

網(wǎng)口燒錄> USB 燒錄>串口燒錄

6.其他問題

我們現(xiàn)在用的開發(fā)板Flash只有16M,如果程序過大,則無法進(jìn)行燒錄。所以做項(xiàng)目的時(shí)候,外掛的flash盡可能大一些,留有足夠的預(yù)備空間。
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 燒錄
    +關(guān)注

    關(guān)注

    8

    文章

    252

    瀏覽量

    35495
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1966

    瀏覽量

    29962
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙HarmonyOS燒錄方法總結(jié)

    這份文檔分為5個(gè)步驟介紹HarmonyOS燒錄方法:1、燒錄工具;2、燒錄內(nèi)容;3、
    發(fā)表于 09-10 15:58

    鴻蒙HarmonyOS燒錄方法總結(jié)

    本帖最后由 o_dream 于 2020-9-10 17:31 編輯 1.燒錄工具理解HarmonyOS驅(qū)動(dòng)框架,用戶態(tài)APP和內(nèi)核態(tài)驅(qū)動(dòng)之間的通信機(jī)制。HarmonyOS燒錄使
    發(fā)表于 09-10 16:33

    鴻蒙系統(tǒng)(HarmonyOS)精華問答集錦

    對(duì)于鴻蒙系統(tǒng),各位小伙伴是不是和小編一樣,還是有很多問題不解。本期小編就整理了鴻蒙系統(tǒng)首批體驗(yàn)者精選問答。他們從開發(fā)者的角度出發(fā),首先介紹HarmonyOS的體系、內(nèi)核、系統(tǒng)特色,以及圍繞“如何從
    發(fā)表于 10-10 15:13

    【HiSpark系列】鴻蒙HarmonyOS燒錄方法總結(jié)

    優(yōu)先級(jí)為:網(wǎng)口燒錄 > USB 燒錄 > 串口燒錄6.其他問題我們現(xiàn)在用的開發(fā)板 Flash 只有 1 6M ,如果程序過大,則無法進(jìn)行燒錄。所以做項(xiàng)目的時(shí)候,外掛的 flash 會(huì)大
    發(fā)表于 10-20 10:41

    開發(fā)板燒錄

    這里主要有燒錄用到的軟件以及環(huán)境搭建的教程:鴻蒙OS開發(fā)環(huán)境搭建鴻蒙HarmonyOS燒錄方法總結(jié)HUAWEI DevEco Device Tool 使用指南
    發(fā)表于 11-24 11:00

    HarmonyOS HiSpark AI Camera試用連載 】Hi3516開發(fā)板燒錄方法

    一、燒錄說明 本文記錄的是基于Hi3516芯片的HarmonyOS AI Camera開發(fā)板燒錄方法?;贖i3516開發(fā)板可采用海思自研的燒錄
    發(fā)表于 01-30 23:22

    HarmonyOS介紹

    、燒錄、源碼修改、調(diào)試驗(yàn)證等方法。Δ Hi3861開發(fā)板搭建環(huán)境: 介紹搭建環(huán)境所需要的硬件要求,并提供編譯工具安裝包。Δ Hi3861開發(fā)板第一個(gè)示例程序: 本示例將演示如何通過AT命令完成WLAN
    發(fā)表于 02-04 13:03

    HarmonyOS的相關(guān)資料分享

    1.介紹HarmonyOS 智能設(shè)備一站式集成開發(fā)環(huán)境,支持 HarmonyOS 組件按需定制、一鍵編譯和燒錄、可視化調(diào)試、分布式能力集成等,幫助開發(fā)者高效開發(fā)和創(chuàng)新新硬件。2.下載h
    發(fā)表于 11-03 09:02

    STC ISPV479如何燒錄軟件詳細(xì)方法教程免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STC ISP V479如何燒錄軟件詳細(xì)方法教程免費(fèi)下載。
    發(fā)表于 08-09 16:56 ?6次下載
    STC ISPV479如何<b class='flag-5'>燒錄</b>軟件詳細(xì)<b class='flag-5'>方法</b>教程免費(fèi)下載

    鴻蒙HarmonyOS燒錄方法總結(jié)

    理解 HarmonyOS 驅(qū)動(dòng)框架,用戶態(tài) APP 和內(nèi)核態(tài)驅(qū)動(dòng)之間的通信機(jī)制。HarmonyOS 燒錄使用的海思自研的燒錄工具 Hitool,使用起來相對(duì)來說比較簡單。
    發(fā)表于 10-14 11:26 ?13次下載
    鴻蒙<b class='flag-5'>HarmonyOS</b><b class='flag-5'>燒錄</b><b class='flag-5'>方法</b>總結(jié)

    單片機(jī)c8051f320燒錄hex和bin的方法

    單片機(jī)c8051f320燒錄hex和bin的方法燒錄hex的方法燒錄bin的方法
    發(fā)表于 11-24 17:36 ?18次下載
    單片機(jī)c8051f320<b class='flag-5'>燒錄</b>hex和bin的<b class='flag-5'>方法</b>

    51 單片機(jī)串口燒錄程序方法

    51單片機(jī)串口燒錄程序方法51 單片機(jī)串口燒錄程序方法一、說明介紹二、51 單片機(jī)串口引腳三、USART 轉(zhuǎn) USB 轉(zhuǎn)換器三、
    發(fā)表于 11-25 18:21 ?120次下載
    51 單片機(jī)串口<b class='flag-5'>燒錄</b>程序<b class='flag-5'>方法</b>

    Telink藍(lán)牙芯片量產(chǎn)的燒錄方法

    Telink藍(lán)牙芯片量產(chǎn)燒錄有一套成熟的燒錄方法,軟硬件配合可以完成Telink藍(lán)牙芯片的測試、參數(shù)校準(zhǔn)以及燒錄工作。軟件是Telink寫
    發(fā)表于 06-20 09:49 ?17次下載

    面向HarmonyOS開發(fā)者的HarmonyOS 3.0 Beta介紹

    Beta。這些新API帶來了哪些開發(fā)上的變化?快來了解吧~ ? 01 版本類型介紹 面向開發(fā)者的HarmonyOS版本包含以下三種類型,具體說明如圖1所示。 圖1 HarmonyOS的三種版本類型 ? 02
    的頭像 發(fā)表于 07-06 20:34 ?3255次閱讀

    MCU控制器需要燒錄嗎 mcu燒錄方法介紹

    燒錄過程涉及將編寫好的程序代碼通過特定的燒錄工具(如編程器、燒錄器等)連接到MCU的編程接口,并將程序代碼傳輸?shù)組CU的存儲(chǔ)器中。這個(gè)過程可以通過專門的集成開發(fā)環(huán)境(IDE)或燒錄軟件
    發(fā)表于 07-20 14:56 ?3518次閱讀