編寫“Hello World”程序
下方將通過修改源碼的方式展示如何編寫簡單程序,輸出“Hello world”。請在下載的源碼目錄中進行下述操作。
- 確定目錄結構。
開發(fā)者編寫業(yè)務時,務必先在./applications/sample/wifi-iot/app路徑下新建一個目錄(或一套目錄結構),用于存放業(yè)務源碼文件。
例如:在app下新增業(yè)務my_first_app,其中hello_world.c為業(yè)務代碼,BUILD.gn為編譯腳本,具體規(guī)劃目錄結構如下:. └── applications └── sample └── wifi-iot └── app └── my_first_app │── hello_world.c └── BUILD.gn
鴻蒙開發(fā)指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
編寫業(yè)務代碼。
新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建業(yè)務入口函數HelloWorld,并實現業(yè)務邏輯。并在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業(yè)務。(SYS_RUN定義在ohos_init.h文件中)#include < stdio.h > #include "ohos_init.h" #include "ohos_types.h" void HelloWorld(void) { printf("[DEMO] Hello world.n"); } SYS_RUN(HelloWorld);
編寫用于將業(yè)務構建成靜態(tài)庫的BUILD.gn文件。
新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。
如步驟1所述,BUILD.gn文件由三部分內容(目標、源文件、頭文件路徑)構成,需由開發(fā)者完成填寫。static_library("myapp") { sources = [ "hello_world.c" ] include_dirs = [ "http://utils/native/lite/include" ] }
- static_library中指定業(yè)務模塊的編譯結果,為靜態(tài)庫文件libmyapp.a,開發(fā)者根據實際情況完成填寫。
- sources中指定靜態(tài)庫.a所依賴的.c文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。
- include_dirs中指定source所需要依賴的.h文件路徑。
添加新組件。
修改文件build/lite/components/communication.json,添加組件hello_world_app的配置,如下所示為communication.json文件片段,"##start##"和"##end##"之間為新增配置("##start##"和"##end##"僅用來標識位置,添加完配置后刪除這兩行):
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"http://applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "hello world samples.",
"optional": "true",
"dirs": [
"applications/sample/wifi-iot/app/my_first_app"
],
"targets": [
"http://applications/sample/wifi-iot/app/my_first_app:myapp"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_m" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
- 修改單板配置文件。
修改文件vendor/hisilicon/hispark_pegasus/config.json,新增hello_world_app組件的條目,如下所示代碼片段為applications子系統(tǒng)配置,"##start##"和"##end##"之間為新增條目("##start##"和"##end##"僅用來標識位置,添加完配置后刪除這兩行):{ "subsystem": "applications", "components": [ ##start## { "component": "hello_world_app", "features":[] }, ##end## { "component": "wifi_iot_sample_app", "features":[] } ] },
審核編輯 黃宇
-
源碼
+關注
關注
8文章
652瀏覽量
29452 -
開發(fā)板
+關注
關注
25文章
5121瀏覽量
98193 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43050 -
Hi3861
+關注
關注
1文章
62瀏覽量
6611 -
OpenHarmony
+關注
關注
25文章
3744瀏覽量
16577
發(fā)布評論請先 登錄
相關推薦
鴻蒙OpenHarmony【輕量系統(tǒng)運行】 (基于Hi3861開發(fā)板)

鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發(fā)板)

鴻蒙OpenHarmony【標準系統(tǒng)編寫“Hello World”程序】 (基于RK3568開發(fā)板)

鴻蒙OpenHarmony【輕量系統(tǒng) 環(huán)境搭建】 (基于Hi3861開發(fā)板)

鴻蒙OpenHarmony【輕量系統(tǒng) 運行】 (基于Hi3861開發(fā)板)

如何使用 HiBurn 工具燒錄鴻蒙的 .bin 文件到 Hi3861 開發(fā)板
關于OpenHarmony輕量系統(tǒng)開發(fā)
自制Hi3861開發(fā)板(附原理圖和電路圖)

潤開鴻Hi3861開發(fā)板介紹

鴻蒙OpenHarmony【輕量系統(tǒng)編寫“Hello World”程序】 (基于Hi3861開發(fā)板)

鴻蒙OpenHarmony【輕量系統(tǒng)編譯】 (基于Hi3861開發(fā)板)

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

評論