①新增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!