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

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

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

鴻蒙OpenHarmony南向:【Hi3516開發板介紹】

評論