Hi3516標準系統(tǒng)入門(命令行方式)
注意:
從3.2版本起,標準系統(tǒng)不再針對Hi3516DV300進行適配驗證,建議您使用RK3568進行標準系統(tǒng)的設備開發(fā)。
如您仍然需要使用Hi3516DV300進行標準系統(tǒng)相關(guān)開發(fā)操作,則可能會出現(xiàn)無法適配的現(xiàn)象,此時請聯(lián)系芯片供應商獲取相關(guān)適配指導,或自行完成適配。
除小型系統(tǒng)外,Hi3516DV300開發(fā)板還支持標準系統(tǒng)。此章節(jié)簡要介紹如何使用命令行在Hi3516DV300開發(fā)板上進行標準系統(tǒng)的開發(fā)。
下方將展示如何在單板上運行第一個應用程序,其中包括新建應用程序、編譯、燒寫、運行等步驟,最終輸出“Hello World!”。
在進行開發(fā)之前,請首先完成[搭建開發(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ā)前請熟悉鴻蒙開發(fā)指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]。
請在源碼目錄中通過以下步驟創(chuàng)建“Hello World”應用程序:
創(chuàng)建目錄,編寫業(yè)務代碼。 新建applications/sample/hello/src/helloworld.c目錄及文件,代碼如下所示,用戶可以自定義修改打印內(nèi)容(例如:修改World為OHOS)。其中helloworld.h包含字符串打印函數(shù)HelloPrint的聲明。當前應用程序可支持標準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") # 導入編譯模板 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 # 是否默認安裝(缺省默認不安裝),可選 }
新建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文件包含兩個部分,第一部分描述該部件所屬子系統(tǒng)的信息,第二部分component則定義該部件構(gòu)建相關(guān)配置。添加的時候需要指明該部件包含的模塊sub_component,假如有提供給其它部件的接口,需要在inner_kits中說明,假如有測試用例,需要在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中添加對應的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腳本編譯方式請參考[使用build.sh腳本編譯源碼]。
想要詳細了解OpenHarmony編譯構(gòu)建模塊功能的開發(fā)者可參考[編譯構(gòu)建指南]。
前提條件
- 已正確[安裝庫和工具集]。
- 已正確[安裝編譯工具]。
- “Hello World”程序已編寫完成。
- 可正常登錄Ubuntu環(huán)境。
操作步驟
請進入源碼根目錄,執(zhí)行如下命令進行編譯:
設置編譯路徑。
hb set
選擇當前路徑。
.
在hisilicon下選擇hispark_taurus_standard并回車。
說明:
同樣的開發(fā)板在適配不同的場景時,要采用的編譯形態(tài)不同(即此處要選擇的product不同),請參考[編譯形態(tài)整體說明]。
圖1 Hi3516編譯設置圖例
執(zhí)行編譯。
說明:
- 單獨編譯一個部件(例如hello),可使用“hb build -T 目標名稱 ”進行編譯。
- 增量編譯整個產(chǎn)品,可使用“hb build”進行編譯。
- 完整編譯整個產(chǎn)品,可使用“hb build -f”進行編譯。
此處以完整編譯整個產(chǎn)品為例進行說明。
hb build -f
編譯結(jié)束后,出現(xiàn)“build success”字樣,則證明構(gòu)建成功。
須知: 編譯結(jié)果文件及編譯日志文件獲取路徑:out/hi3516dv300。
燒錄
針對Hi3516DV300開發(fā)板,除了DevEco Device Tool(操作方法請參考[燒錄]外,還可以使用HiTool進行燒錄。
前提條件
- 開發(fā)板相關(guān)源碼已編譯完成,已形成燒錄文件。
- 客戶端(操作平臺,例如Windows系統(tǒng))已下載并安裝[HiTool工具]。
- 客戶端(操作平臺,例如Windows系統(tǒng))已安裝USB驅(qū)動,可參考[Hi3516DV300開發(fā)板USB驅(qū)動安裝指導]。
- 客戶端已安裝串口終端工具(例如IPOP)。
- 使用USB線纜、串口線纜連接客戶端與開發(fā)板。
操作步驟
- 準備燒錄相關(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。
- 設置HiTool參數(shù)。
傳輸方式選擇USB口,燒寫方式選擇燒寫eMMC(單板的存儲介質(zhì)為eMMC)。 - 單擊瀏覽在步驟1創(chuàng)建的文件夾中選擇燒寫配置文件(例如Hi3516DV300-emmc.xml)。
- 單擊燒寫后,按住開發(fā)板上串口旁的按鈕(Update鍵),并拔插USB線(上下電)。。
燒錄開始后,可以在HiTool工具下方的控制臺區(qū)域觀察到燒錄過程中的打印信息。
燒錄完成后,HiTool彈出提示框顯示燒寫成功。 - 單擊確定。
- 導入啟動參數(shù)。
使用終端工具打開串口。
拔插開發(fā)板電源使其重啟,3s內(nèi)在串口終端輸入回車。
終端界面中出現(xiàn)hisilicon #表示已連接開發(fā)板串口。在串口終端拷貝如下啟動參數(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
須知: 輸入啟動參數(shù)時,請勿自行刪除其中的空行。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
運行
系統(tǒng)啟動成功后,取源碼out目錄下的helloworld可執(zhí)行文件放入系統(tǒng)的bin目錄,通過以下步驟運行“Hello World”。
操作步驟
在啟動界面進入bin目錄。
cd bin
進入bin目錄后可以看到helloworld文件,通過以下命令運行helloworld程序。
./helloworld
界面打印“Hello World!”,程序運行成功。
審核編輯 黃宇
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5532瀏覽量
102424 -
Hi3516
+關(guān)注
關(guān)注
1文章
22瀏覽量
16106 -
鴻蒙
+關(guān)注
關(guān)注
59文章
2526瀏覽量
43787 -
OpenHarmony
+關(guān)注
關(guān)注
27文章
3835瀏覽量
18171
發(fā)布評論請先 登錄
鴻蒙OpenHarmony【基于Hi3516DV300開發(fā)板(時鐘應用開發(fā))】

OpenHarmony2.0 一站式編譯燒錄Hi3516(3518))小型系統(tǒng)
OpenHarmony2.0 一站式編譯燒錄Hi3516標準系統(tǒng)
OpenHarmony2.0 Hi3516系列資料下載合集(源碼編譯+燒錄)
【鴻蒙系統(tǒng)學習筆記】Hi3516開發(fā)板燒錄總結(jié)
OpenHarmony標準系統(tǒng)編譯如何單獨編譯某個組件?
OpenHarmony2.0編譯燒錄Hi3516標準系統(tǒng)的過程分享
OpenHarmony輕量與小型系統(tǒng)入門概述
OpenHarmony3.0上編譯C控制Hi3516開發(fā)板的LED閃爍

基于Hi3516開發(fā)板的智能貓眼設計
OpenHarmony鴻蒙南向開發(fā)案例:【智能貓眼(基于3516開發(fā)板)】

鴻蒙OpenHarmony【小型系統(tǒng)運行案例】 (基于Hi3516開發(fā)板)

鴻蒙OpenHarmony南向:【Hi3516開發(fā)板介紹】

評論