> 文档中心 > OpenHarmony(鸿蒙)——Hello World

OpenHarmony(鸿蒙)——Hello World

①新增my_app文件

./applications/BearPi/BearPi-HM_Nano/sample路径下新建一个my_app目录,用于存放业务源码文件。

②新增hello_world.c文件

./applications/BearPi/BearPi-HM_Nano/sample/my_app路径下新建一个hello_world.c文件,该文件为业务源码文件

③新增BUILD.gn文件

在./applications/BearPi/BearPi-HM_Nano/sample/my_app路径下新建一个BUILD.gn文件,该文件为业务源码编译脚本

④编写Hello World业务代码
hello_world.c中新建业务入口函数Hello_World,并实现业务逻辑。并在代码最下方,使用HarmonyOS启动恢复模块接口APP_FEATURE_INIT()启动业务。(printf定义在stdio.h文件中,APP_FEATURE_INIT定义在ohos_init.h文件中

头文件相关库函数网址(建议保存):OHOS Init-服务框架子系统-系统基础能力子系统集-智慧视觉设备-HarmonyOS设备开发

源码如下:

​#include   // 引入头文件#include "ohos_init.h"  // 引入头文件// 和""寻找路径不一样,从系统库开始查找,""从用户目录开始找,若未找到才到系统库中去查找void Hello_World(void){    printf("Hello World!\r\n");  // 打印,\r是回车,\n是换行}APP_FEATURE_INIT(Hello_World);  // app函数入口,启动Hello_World​

⑤编写编译构建文件BUILD.gn
在./applications/BearPi/BearPi-HM/sample/my_app下的BUILD.gn文件中添加如下代码。

# static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。static_library("myapp") {  # 此处参数填xxx,静态库文件就是libxxx.a    # sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。    sources = [ "hello_world.c"    ]    # include_dirs中指定source所需要依赖的.h文件路径。    include_dirs = [ "//utils/native/lite/include"  # ohos_init.h    ]}

helloWorld是相对路径,指向./applications/BearPi/BearPi-HM_Nano/sample/HelloWorld/BUILD.gn中的static_library(“helloWorld”)

⑥编写模块BUILD.gn文件,指定需参与构建的特性模块。
在./applications/BearPi/BearPi-HM/sample下的BUILD.gn文件中添加如下代码(可以将features中原有的模块注释掉,添加上"my_app:myapp",)

import("//build/lite/config/component/lite_component.gni")lite_component("app") {features = [    # 指定需参与构建的特性模块"my_app:myapp",]}

my_app是相对路径,指向./applications/BearPi/BearPi-HM/sample/my_app/BUILD.gn。
myapp是目标,指向./applications/BearPi/BearPi-HM/sample/my_app/BUILD.gn中的static_library(“myapp”)

⑦编译烧录Hello World程序
首先打开MobaXterm工具,登录服务器后,进入源码目录下,输入编译命令

#源码从小熊派码云仓库中获取的编译命令python build.py BearPi-HM_Nano#源码从华为云中获取的编译命令hpm dist

使用HiBurn工具烧录源码(先将电脑与开发板连接起来,通过设备管理器->端口查看端口)

COM:端口的选择要和设备管理器中显示的端口一致

波特率选择921600,左上角setting->Com setting->Baud

Select File:烧录文件选择刚才生成的bin文件(\home\bearpi\code\code3\out\BearPi-HM_Nano路径下Hi3861_wifiiot_app_allinone.bin)

Auto burn:前面打勾

点击Connect,下方显示Connecting…时,再按一下开发板复位按键,此时Connect按钮变成Disconnect

等待烧录,烧录成功后,下方重新显示Connecting…(如果再按复位按键,代码又会重新烧录),此时点击Disconnect,Disconnect按钮又变回Connect

使用MobaXterm中的串口工具查看日志

左上角->Session->Serial

Serial port:选择端口号,与设备管理器中显示的端口一致

Speed(bps):波特率设置为115200

点击OK

再次点击开发板复位按键,日志就会被打印出来,可以看到打印出来Hello World!