Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)
注意:
從3.2版本起,標(biāo)準(zhǔn)系統(tǒng)不再針對(duì)Hi3516DV300進(jìn)行適配驗(yàn)證,建議您使用RK3568進(jìn)行標(biāo)準(zhǔn)系統(tǒng)的設(shè)備開發(fā)。
如您仍然需要使用Hi3516DV300進(jìn)行標(biāo)準(zhǔn)系統(tǒng)相關(guān)開發(fā)操作,則可能會(huì)出現(xiàn)無法適配的現(xiàn)象,此時(shí)請(qǐng)聯(lián)系芯片供應(yīng)商獲取相關(guān)適配指導(dǎo),或自行完成適配。
除小型系統(tǒng)外,Hi3516DV300開發(fā)板還支持標(biāo)準(zhǔn)系統(tǒng)。此章節(jié)簡(jiǎn)要介紹如何使用命令行在Hi3516DV300開發(fā)板上進(jìn)行標(biāo)準(zhǔn)系統(tǒng)的開發(fā)。
下方將展示如何在單板上運(yùn)行第一個(gè)應(yīng)用程序,其中包括新建應(yīng)用程序、編譯、燒寫、運(yùn)行等步驟,最終輸出“Hello World!”。
在進(jìn)行開發(fā)之前,請(qǐng)首先完成[搭建開發(fā)環(huán)境]。
編寫“Hello World”程序
示例目錄
applications/sample/hello
│── BUILD.gn
│── include
│ └── helloworld.h
│── src
│ └── helloworld.c
├── bundle.json
build
└── subsystem_config.json
vendor/hisilicon
└── Hi3516DV300
└── config.json
開發(fā)步驟
開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]。
請(qǐng)?jiān)谠创a目錄中通過以下步驟創(chuàng)建“Hello World”應(yīng)用程序:
創(chuàng)建目錄,編寫業(yè)務(wù)代碼。 新建applications/sample/hello/src/helloworld.c目錄及文件,代碼如下所示,用戶可以自定義修改打印內(nèi)容(例如:修改World為OHOS)。其中helloworld.h包含字符串打印函數(shù)HelloPrint的聲明。當(dāng)前應(yīng)用程序可支持標(biāo)準(zhǔn)C及C++的代碼開發(fā)。
#include < stdio.h > #include "helloworld.h" int main(int argc, char **argv) { HelloPrint(); return 0; } void HelloPrint() { printf("nn"); printf("nttHello World!n"); printf("nn"); }
再添加頭文件applications/sample/hello/include/helloworld.h,代碼如下所示。
#ifndef HELLOWORLD_H #define HELLOWORLD_H #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif void HelloPrint(); #ifdef __cplusplus #if __cplusplus } #endif #endif #endif // HELLOWORLD_H
新建編譯組織文件。
新建applications/sample/hello/BUILD.gn文件,內(nèi)容如下所示:
import("http://build/ohos.gni") # 導(dǎo)入編譯模板 ohos_executable("helloworld") { # 可執(zhí)行模塊 sources = [ # 模塊源碼 "src/helloworld.c" ] include_dirs = [ # 模塊依賴頭文件目錄 "include" ] cflags = [] cflags_c = [] cflags_cc = [] ldflags = [] configs = [] deps =[] # 部件內(nèi)部依賴 part_name = "hello" # 所屬部件名稱,必選 install_enable = true # 是否默認(rèn)安裝(缺省默認(rèn)不安裝),可選 }
新建applications/sample/hello/bundle.json文件,添加sample部件描述,內(nèi)容如下所示。
{ "name": "@ohos/hello", "description": "Hello world example.", "version": "3.1", "license": "Apache License 2.0", "publishAs": "code-segment", "segment": { "destPath": "applications/sample/hello" }, "dirs": {}, "scripts": {}, "component": { "name": "hello", "subsystem": "sample", "syscap": [], "features": [], "adapted_system_type": [ "mini", "small", "standard" ], "rom": "10KB", "ram": "10KB", "deps": { "components": [], "third_party": [] }, "build": { "sub_component": [ "http://applications/sample/hello:helloworld" ], "inner_kits": [], "test": [] } } }
bundle.json文件包含兩個(gè)部分,第一部分描述該部件所屬子系統(tǒng)的信息,第二部分component則定義該部件構(gòu)建相關(guān)配置。添加的時(shí)候需要指明該部件包含的模塊sub_component,假如有提供給其它部件的接口,需要在inner_kits中說明,假如有測(cè)試用例,需要在test中說明,inner_kits與test沒有也可以不添加。
修改子系統(tǒng)配置文件。 在build/subsystem_config.json中添加新建的子系統(tǒng)的配置。
"sample": { "path": "applications/sample/hello", "name": "sample" },
修改產(chǎn)品配置文件。 在vendor/hisilicon/Hi3516DV300/config.json中添加對(duì)應(yīng)的hello部件,直接添加到原有部件后即可。
"usb:usb_manager_native":{}, "applications:prebuilt_hap":{}, "sample:hello":{}, "wpa_supplicant-2.9:wpa_supplicant-2.9":{},
編譯
OpenHarmony支持hb和build.sh兩種編譯方式。此處介紹hb方式,build.sh腳本編譯方式請(qǐng)參考[使用build.sh腳本編譯源碼]。
想要詳細(xì)了解OpenHarmony編譯構(gòu)建模塊功能的開發(fā)者可參考[編譯構(gòu)建指南]。
前提條件
- 已正確[安裝庫和工具集]。
- 已正確[安裝編譯工具]。
- “Hello World”程序已編寫完成。
- 可正常登錄Ubuntu環(huán)境。
操作步驟
請(qǐng)進(jìn)入源碼根目錄,執(zhí)行如下命令進(jìn)行編譯:
設(shè)置編譯路徑。
hb set
選擇當(dāng)前路徑。
.
在hisilicon下選擇hispark_taurus_standard并回車。
說明:
同樣的開發(fā)板在適配不同的場(chǎng)景時(shí),要采用的編譯形態(tài)不同(即此處要選擇的product不同),請(qǐng)參考[編譯形態(tài)整體說明]。
圖1 Hi3516編譯設(shè)置圖例
執(zhí)行編譯。
說明:
- 單獨(dú)編譯一個(gè)部件(例如hello),可使用“hb build -T 目標(biāo)名稱 ”進(jìn)行編譯。
- 增量編譯整個(gè)產(chǎn)品,可使用“hb build”進(jìn)行編譯。
- 完整編譯整個(gè)產(chǎn)品,可使用“hb build -f”進(jìn)行編譯。
此處以完整編譯整個(gè)產(chǎn)品為例進(jìn)行說明。
hb build -f
編譯結(jié)束后,出現(xiàn)“build success”字樣,則證明構(gòu)建成功。
須知: 編譯結(jié)果文件及編譯日志文件獲取路徑:out/hi3516dv300。
燒錄
針對(duì)Hi3516DV300開發(fā)板,除了DevEco Device Tool(操作方法請(qǐng)參考[燒錄]外,還可以使用HiTool進(jìn)行燒錄。
前提條件
- 開發(fā)板相關(guān)源碼已編譯完成,已形成燒錄文件。
- 客戶端(操作平臺(tái),例如Windows系統(tǒng))已下載并安裝[HiTool工具]。
- 客戶端(操作平臺(tái),例如Windows系統(tǒng))已安裝USB驅(qū)動(dòng),可參考[Hi3516DV300開發(fā)板USB驅(qū)動(dòng)安裝指導(dǎo)]。
- 客戶端已安裝串口終端工具(例如IPOP)。
- 使用USB線纜、串口線纜連接客戶端與開發(fā)板。
操作步驟
- 準(zhǔn)備燒錄相關(guān)文件。
- 在客戶端新建用于保存燒錄文件的文件夾,例如D:L2。
- 將編譯完成的源碼包下載至客戶端并解壓,將燒錄相關(guān)文件拷貝至步驟1中新建的文件夾。
Hi3516DV300開發(fā)板燒寫所需文件為:boot.img、Hi3516DV300-emmc.xml、system.img、u-boot-hi3516dv300_emmc.bin、uImage、updater.img、userdata.img、vendor.img。
- 使用HiTool燒錄。
- 打開HiTool。
- 設(shè)置HiTool參數(shù)。
傳輸方式選擇USB口,燒寫方式選擇燒寫eMMC(單板的存儲(chǔ)介質(zhì)為eMMC)。 - 單擊瀏覽在步驟1創(chuàng)建的文件夾中選擇燒寫配置文件(例如Hi3516DV300-emmc.xml)。
- 單擊燒寫后,按住開發(fā)板上串口旁的按鈕(Update鍵),并拔插USB線(上下電)。。
燒錄開始后,可以在HiTool工具下方的控制臺(tái)區(qū)域觀察到燒錄過程中的打印信息。
燒錄完成后,HiTool彈出提示框顯示燒寫成功。 - 單擊確定。
- 導(dǎo)入啟動(dòng)參數(shù)。
使用終端工具打開串口。
拔插開發(fā)板電源使其重啟,3s內(nèi)在串口終端輸入回車。
終端界面中出現(xiàn)hisilicon #表示已連接開發(fā)板串口。在串口終端拷貝如下啟動(dòng)參數(shù)后,按回車完成配置。
setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused androidboot.selinux=permissive rootdelay=10 hardware=Hi3516DV300 init=/init root=/dev/ram0 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),2M(misc),3307M(system),256M(vendor),-(userdata)';setenv bootcmd 'mmc read 0x0 0x82000000 0x800 0x4800; bootm 0x82000000' saveenv reset
須知: 輸入啟動(dòng)參數(shù)時(shí),請(qǐng)勿自行刪除其中的空行。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
運(yùn)行
系統(tǒng)啟動(dòng)成功后,取源碼out目錄下的helloworld可執(zhí)行文件放入系統(tǒng)的bin目錄,通過以下步驟運(yùn)行“Hello World”。
操作步驟
在啟動(dòng)界面進(jìn)入bin目錄。
cd bin
進(jìn)入bin目錄后可以看到helloworld文件,通過以下命令運(yùn)行helloworld程序。
./helloworld
界面打印“Hello World!”,程序運(yùn)行成功。
審核編輯 黃宇
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97372 -
Hi3516
+關(guān)注
關(guān)注
1文章
21瀏覽量
15889 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3713瀏覽量
16254
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論