梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记 原创

梅科尔陈新杰
发布于 2022-8-8 16:22
浏览
1收藏

@toc

案例实现——Hello World

  1. 在app下新建my_first_app,在其下新建hello_world.c为业务代码,BUILD.gn为编译脚本
    梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

  2. 打开hello_world.c文件,写入如下代码:

#include <stdio.h>
#include "ohos_init.h"
void Hello_World(void)
{
printf("Hello World!\r\n");  //打印输出
}
APP_FEATURE_INIT(Hello_World);  //启动程序,函数名

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
3. 打开sample下的BUILD.gn文件,添加如下代码:

static_library("myapp") {   #指定业务模块的编译结果为静态库文件libmyapp.a
   sources = [  #指出编译所需的.c文件
        "hello_world.c"  
    ]
    include_dirs = [
        "//utils/native/liteos/include"  #声明.h库文件来源
    ]
}

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
注意
static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//“则表示绝对路径(此处为代码根路径),若不包含”//“则表示相对路径。
include_dirs中指定source所需要依赖的.h文件路径。
4. 在sample下的BUILD.gn文件里添加"my_app:myapp”
记得最后Ctrl+s保存三个文件
5. 然后打开MobaXterm找到对应文件,依次输入ls、hpm dist编译代码,等待1-3分钟
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

  1. 打开HiBurn,在左上角setting=>Com setting中设置波特率为921600,找打对应文件,勾选Auto burn ,点击connect,按下开发板复位按钮
    梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

  2. 找到对应串口,摁下开发板复位按键,可以看到面板上打印出“Hello World”字样
    梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

点亮LED

在app下新建my_led文件夹,在其下新建led_example.c文件为业务代码,新增BUILD.gn为编译脚本
led_example.c
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

    #include <stdio.h>
    #include<unisted.h>
        #include"ohos_init.h"
        #include "wifiiot_gpio.h"
        #include"wifiiot_gpio_ex.h"
        void Led_Sample(void)
        {
                GpioInit();//初始化GPIO
        IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_IO_FUNC_GPIO_2_GPIO);//设置GPIO_2的复用功能为普通           GPIOGpioSetDir(WIFI_IOT_IO_NAME_GPIO_2,WIFI_IOT_GPIO_DIR_OUT);//设置GPIO_2为输出模式
        GpioSetOutputVa1(WIFI_IOT_IO_NAME_GPIO_2,1);//设置GPIO_2输出高电平点亮LED灯
        }
        APP_FEATURE_INIT(Led_Sample);

BUILD.gn代码
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

    static_library("myled"){
            sources =[
                   "led_example.c”
            include_dirs=[
                    "//utils/native/lite/include",
          "//base/iot_hardware/interfaces/kits/wifiiot_lite"
      ]
    }

编写sample下的BUILD.gn文件

import("//build/lite/config/component/lite_component.gni")
 lite_component("app"){
         features=[
                 "my_led:myled”,
         ]
 }

添加闪烁源码
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区
烧录参见“hello world”

编译框架介绍

Ninja编译工具简介

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

如何编译模块

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

代码如何执行

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

CMSIS接口简介

什么是CMSIS-RTOS2接口

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

OpenHarmony与CMSIS-RTOS2接口联系

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

如何使用CMSIS-RTOS2接口

梅科尔工作室OpenHarmony设备开发培训笔记-第二章学习笔记-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
1
收藏 1
回复
举报
回复
    相关推荐