赞
踩
在[git clone所在目录]bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\sample
目录下创建my_app文件夹。(记好文件夹的名称一会要用)
在刚刚创建的my_app
文件夹下,编写hello_world.c
(记住名字下面要用)文件,可以不用特意创建src文件夹。
#include <stdio.h>
//导入的这个h文件是项目自带的,内部定义了APP_FEATURE_INIT
#include "ohos_init.h"
void HelloWorld(void)
{
printf("Hello World\r\n");
}
//harmony启动恢复接口
APP_FEATURE_INIT(HelloWorld);
这个BUILD.gn
文件名必须大写,否则会出错.
这个文件是放在my_app文件夹下
//指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
static_library("myapp") {
sources=[
#刚刚创建,hello_world.c 注意名称要一直
"hello_world.c"
]
include_dirs=[
#刚刚在hello_world.c文件中引入的include文件
# 符号//表示项目的根路径
"//utils/native/lite/include"
]
}
[git clone所在目录]bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\sample 目录下的BUILD.gn文件
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
#。。。。。。。。。。省略。。。。。。。。
#"Zx_Developer:zx_develop_sample" ##不参与构建,为开发者贡献演示结构,其中Zx为 Z1,Z2...Z100
#"Z1_hi3861_uart_ylc:uart_hi3861",
#"Z2_hi3861_flash_ylc:flash_example",
#在最后添加这一行命令,my_app就是一开始创建的my_app文件,myapp是刚才在BUILD.gn中定义的static_library后的名称。
"my_app:myapp",
]
}
然后编译文件并烧录,
烧录的还是Hi3861_wifiiot_app_allinone.bin
文件。
烧录完成后就可以在mobaxterm中看到Hello World
步骤和上面差不多,所以简写
sample
目录下创建my_leb
文件夹leb_example.c
文件#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
void led_example(void)
{
GpioInit();
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO);
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_OUT);
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1);
}
APP_FEATURE_INIT(led_example);
my_leb
下创建BUILD.gn
文件static_library("myleb") {
sources=[
"led_example.c"
]
include_dirs=[
"//utils/native/lite/include",
#这里存放wifiiot_gpio.h和wifiiot_gpio_ex.h
"//base/iot_hardware/interfaces/kits/wifiiot_lite"
]
}
"my_leb:myleb"
注意前面加个逗号,和上一行分开。
#include <stdio.h> #include <unistd.h> #include "ohos_init.h" #include "wifiiot_gpio.h" #include "wifiiot_gpio_ex.h" void led_example(void) { GpioInit(); IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO); GpioSetDir(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_GPIO_DIR_OUT); //控制led灯的闪烁 for (int i = 0; i < 10; i++) { //设置WIFI_IOT_IO_NAME_GPIO_2,1表示亮灯 GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1); usleep(1000000); // 0表示灯灭 GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 0); usleep(1000000); } GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_2, 1); } APP_FEATURE_INIT(led_example);
ninja是一个比Makefile效率更高的编译构建工具。Google开发。
当我们在命令行运行python build.py BearPi-HM_Nano
命令时,ninja就被启动了
这个BearPi-HM_Nano
其实来自项目更目录下list/product/
文件夹下的BearPi-HM_Nano.json
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。