新聞中心
想了解更多內(nèi)容,請訪問:

成都服務(wù)器托管,創(chuàng)新互聯(lián)提供包括服務(wù)器租用、達州托管服務(wù)器、帶寬租用、云主機、機柜租用、主機租用托管、CDN網(wǎng)站加速、域名注冊等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:028-86922220
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos./#zz
參考官方教程:Hi3861開發(fā)板第一個示例程序
1.目錄結(jié)構(gòu)規(guī)劃
在app下新增業(yè)務(wù)hello_world,其中hello_world.c為業(yè)務(wù)代碼,BUILD.gn為編譯腳本,具體規(guī)劃目錄結(jié)構(gòu)如下:
- .
- └── applications
- └── sample
- └── wifi-iot
- └── app
- │── hello_world
- │ │── hello_world.c
- │ └── BUILD.gn
- └── BUILD.gn
2. hello_world.c 源碼
- /*
- 業(yè)務(wù)代碼的架構(gòu)
- 1.任務(wù)處理函數(shù)HelloWorld_Task,實現(xiàn)業(yè)務(wù)初始化,并在while(1)中實現(xiàn)循環(huán)處理的業(yè)務(wù)
- 2.任務(wù)入口函數(shù)HelloWorld_Entry:實現(xiàn)任務(wù)的初始化,并注冊任務(wù)處理函數(shù)
- 3.調(diào)用鴻蒙SYS_RUN(HelloWorld_Entry); 實現(xiàn)業(yè)務(wù)的注冊
- */
- #include
- #include
- #include "ohos_init.h"
- #include "cmsis_os2.h"
- /*1. 任務(wù)函數(shù):hello_world任務(wù)*/
- static void* HelloWorld_Task(const char* arg)
- {
- (void)arg;
- printf("[HelloWorld] HelloWorld_Task()\n");
- while(1)
- {
- //logic code for task
- usleep(500000);//us延時
- }
- return NULL;
- }
- /*2.任務(wù)入口函數(shù):實現(xiàn)任務(wù)的初始化*/
- static void HelloWorld_Entry(void)
- {
- osThreadAttr_t attr = {0};
- printf("[HelloWorld] HelloWorld_Entry()\n");
- attr.name = "HelloWorld_Task";
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = 1024;
- attr.priority = osPriorityNormal;
- if (osThreadNew((osThreadFunc_t)HelloWorld_Task, NULL, &attr) == NULL)
- {
- printf("[HelloWorld] Falied to create LedTask!\n");
- }
- }
- SYS_RUN(HelloWorld_Entry);
3. 業(yè)務(wù)代碼的編譯腳本 BUILD.gn
路徑:code\applications\sample\wifi-iot\app\hello_world\BUILD.gn
- static_library("hello_world_app") {
- sources = [
- "hello_world.c"
- ]
- include_dirs = [
- "http://utils/native/lite/include",
- "http://kernel/liteos_m/components/cmsis/2.0",
- "http://base/iot_hardware/interfaces/kits/wifiiot_lite",
- ]
- }
4.模塊的編譯腳本BUILD.gn
路徑:code\applications\sample\wifi-iot\app\BUILD.gn
- import("http://build/lite/config/component/lite_component.gni")
- lite_component("app") {
- features = [
- "startup",
- "hello_world:hello_world_app",
- ]
- }
5.執(zhí)行結(jié)果:
6.總結(jié)
注意業(yè)務(wù)代碼的項目路徑,一定是在code\applications\sample\wifi-iot\app\目錄下,按照業(yè)務(wù)進行新建文件夾
一個業(yè)務(wù),可以理解為一個任務(wù)或者一個線程,比如OLED液晶顯示可以單獨做為一個業(yè)務(wù),流水燈可以單獨作為一個業(yè)務(wù)。
后續(xù)代碼,簡單的功能會繼續(xù)在hello_world業(yè)務(wù)上進行添加,比如LED流水燈、按鍵中斷燈,復(fù)雜的功能(比如WIFI,OLED顯示)會重新起一個新的業(yè)務(wù)。
想了解更多內(nèi)容,請訪問:
和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos./#zz
網(wǎng)頁名稱:鴻蒙3.WiFiIoT智能家居套件-Helloworld及基本開發(fā)框架
文章分享:http://www.dlmjj.cn/article/djhssih.html


咨詢
建站咨詢
