梅科尔工作室——快速入门

发布于 2022-8-2 15:30
浏览
0收藏

2.1 OpenHarmony快速入门:Hello_World

  1. 添加Hello World源码文件
    梅科尔工作室——快速入门-开源基础软件社区

  2. 编写Hello World业务代码
    在hello_ world. c中新建业务入口函数HelWorld,并实现业务逻辑。并在代码最下方,使用Harmony0S启动恢复模块接口APP_ FEATURE_ INITO 启动业务。(APP.FEATURE_INIT定义在ohos_ init.h文件中)

#include <stdio.h> .
#include "ohos_ 1nit.h"
void Hello_World(void)
printf("Hello world1\r\n");
}
APP FEATURE. INIT(Hello. world);
  1. 编写编译构建文件BUILD.gn
    编写用于将业务构建成静态库的BUILD. gn文件
    在. /appl icat ions/BearPi/ BearPi -HM/ sample/my_ app下的BUILD. gn文件中添加如下代码。
static_ 11brary("myapp") {
sources - [
"hello_ _world.c"
}
include_ dirs -[
"//utils/native/lite/include"
]
}

梅科尔工作室——快速入门-开源基础软件社区
编写模块BUILD. gn文件,指定需参与构建的特性模块。
在/appl icat ions/BearPi/ BearPi -HM/ sample下的BUILD. gn文件中添加如下代码。
4. 调试Hello World程序

  1. 在Visual Studio Code底部,点击"串口”按钮图标。
  2. 输入端口号,其他参数保持默认配置。
  3. 按下开发板RESET按键,即可输出日志信息。
    梅科尔工作室——快速入门-开源基础软件社区

2.2 OpenHarmony快速入门:点亮LED

  1. 添加点亮LED灯源码文件
    梅科尔工作室——快速入门-开源基础软件社区
  2. 编写点亮LED灯业务代码
#include <stdio.h>
#include <unistd.h>
#include "ohos_ init. h"
#include "wifiiot_ gpio. h"
#include "wifiiot_ gpio_ ex. h"
void Led. Sample(void)
GpioInit(); //初始化GPI0
IoSetFunc(WIFI_ IOT_ I0_ NAME_ GPI0_ 2, WIFI_ IOT I0_ FUNC GPIO_ 2_ GPI0);//设 置GPIO 2的复用功能为普通GPI0
GpioSetDir(WIFI_ IOT_ I0_ NAME_ _GPI0_ 2, WIFI_ IOT. _GPIO_ DIR_ OUT);//设置GPIO_ 2为输出模式
GpioSetoutputVal(WIFI_ IOT I0_ NAME_ _GPIO_ 2,1);//设 置GPIO _2输出高电平点亮LED灯
APP_ FEATURE_ INIT(Led_ Sample);
  1. 编写编译构建文件BUILD.gn
    编写用于将业务构建成静态库的BUILD.gn文件
    在. /appl icat ions/BearPi/BearPi-HM_ Nano/ sampl e/my_ led下 的BUILD. gn文件中添加如下代码。
static_ library("my1ed") {
sources =[
"1ed_ example.c"
]
include_ dirs = [
"//utils/native/lite/ include",
"//base/ iot_ hardware/ interfaces/kits/wifiiot_ lite"
]
}

梅科尔工作室——快速入门-开源基础软件社区
编写模块BUILD. gn文件,指定需参与构建的特性模块。
在. /appl icat ions/BearPi/BearPi-HM_ Nano/ sampl e下的BUILD. gn文件中添加如下代码。

import(" //build/1i te/config/ component/1i te. component. gni")
lite_ component(" app") {
features = [
'my_ led:myled",
}

梅科尔工作室——快速入门-开源基础软件社区
4. 调试LED灯程序
添加LED灯闪烁源码

#include "ohos_ init. h"
#include "unistd.h"
#include "wifiiot_ gpio. h"
#include "wifiiot_ gpio_ ex.h"
void led_ example(void)
{
GpioInit();
IoSetFunc(WIFI_ IOT_ I0_ NAME_ GPI0_ _2,WIFI_ I0T_ I0_ FUNC_ GPI0_ 2_ GPI0); 
GpioSetDir(WIFI_ IOT_ IO_ NAME_ GPIO_ 2,WIFI_ IOT_ GPIO_ DIR_ OUT); 
for(inti=0;i<10;i++)
{
GpioSet0utputVal(WIFI_ IOT I0_ NAME_ GPI0_ 2,1);
usleep(1000000);
GpioSetoutputVal(WIFI_ IOT_ I0_ NAME_ GPI0_ 2,0);
usleep(1000000);
GpioSetoutputVal(WIFI_ IOT_ I0_ NAME_ _GPIO_ 2,1);
APP_ FEATURE_ INIT(1ed_ example);

接下来使用HiBurn烧录即可。

2.3 OpenHarmony编译构建

1.Ninja编译工具简介
在Unix/Linux下通常使用Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,代码在编译都变成了程序员放松的借口了。所以这个Google的程序员在开发Chrome的时候因为忍受不了Makefile的速度,自己重新开发出来一套新的控制编译的工具叫作Ninja, Ninja相对于Makefile这套工具更注重于编译速度。除了Chrome现在还有一些其他的比较大的项目也在开始使用Ninja。

2.如何编译模块
使用vsCode连接服务器
梅科尔工作室——快速入门-开源基础软件社区
进入源码目录 输入hpm dist
梅科尔工作室——快速入门-开源基础软件社区

梅科尔工作室——快速入门-开源基础软件社区

3.代码如何执行的
梅科尔工作室——快速入门-开源基础软件社区

标签
收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐