OpenHarmony设备开发之路【01】-helloword

简介: OpenHarmony设备开发

今天我们用3861的板子来实现最简单的helloword,自此也打开我的设备开发之路。

接下来我将详细的写一下,帮助大家更好的入门

我们保证现在自己的环境都是合适的

第一步,确定目录结构

开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。

例如:在app下新建jianguo_hello文件夹,其中hello.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:

jianguo_hello$ tree
.
├── BUILD.gn
└── hello.c

0 directories, 2 files

第二步,编写业务代码

新建./applications/sample/wifi-iot/app/jianguo_hello下的hello.c文件,在hello.c中新建业务入口函数my_app,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)

路径openharmony/applications/sample/wifi-iot/app/jianguo_hello/hello.c

#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"

void HelloWorld(void)
{
    printf("___________>>>>>>>>>>>>>>>>>>>> [DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);

路径openharmony/applications/sample/wifi-iot/app/jianguo_hello/BUILD.gn

# 静态库名称是什么
static_library("my_app") {
    #那些文件会被编译
    sources = [
        "hello.c",
    ]
#头文件去哪里找
    include_dirs = [
        "//utils/native/lite/include",
        "//kernel/liteos_m/kal/cmsis",
        "//base/iot_hardware/peripheral/interfaces/kits",
    ]
}

路径/openharmony/applications/sample/wifi-iot/app/BUILD.gn

BUILD.gn


import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    # 那些文件会被编译,连接的是哪个静态库
  features = [ "jianguo_hello:my_app" ]
}

image-20220917224346451

编写完代码,我们来编译一下

第三步,编译

首先运行

hb set

选择如图所示的编译环境

image-20220918150911429

然后

hb build -f

这个时候编译成功,

image-20220917230841042

编译成功

最后终端会显示编译成功,我们可以在out相应的目录下找到对应的固件

out/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin

image-20220918151031581

我们选择下载,下载到本地,记住路径,下文要用到

image-20220918151306314

第四步,烧录

此时将开发板通过USB接口连接在电脑,有的电脑可能需要安装驱动,如何安装驱动,我会在下一篇文章给出

image-20220917231318436

打开Hiburn软件

Hiburn软件操作演示:

然后在Hiburn软件(HiBurn软件本文档随附)上选择”Setting”,设置串口的波特率为921600(波特率影响数据收发的速度,高波特率能加快固件烧录过程,提高调试效率):

image-20220918151223533

设置完成之后,回到软件首页面,选择”SelectFile”,在弹出的文件浏览器上选择刚刚导出的固件:

点击Auto burn复选框,然后点击Connect,如下图所示

image-20220918151409420

手动按一下开发板RESET按键(在usb插孔旁边),开始下载程序。

待烧录完成之后,需要先点击disconnect断开连接。

烧录步骤完成之后,可以再次按下复位按钮启动程序.

查看控制台的输出,这里我用的sscom串口调试工具,我也会给大家给出。

image-20220918150744754

可以看到正常显示。

至此已完成了OpenHarmony固件烧录到润和3861开发板并输出helloword的操作

我的设备开发之路也就开始了。

完结,撒花

感谢各位大佬的指导

参考资料:

HiHope IOT物联网设备

润和满天星系列Pegasus智能家居OpenHarmony开发套件资料汇总

相关文章
|
1月前
|
监控 Java Shell
「Mac畅玩鸿蒙与硬件7」鸿蒙开发环境配置篇7 - 使用命令行工具和本地模拟器管理项目
本篇将讲解在 macOS 上配置 HarmonyOS 开发环境的流程,聚焦 hvigorw 命令行工具的使用。我们将以创建 HelloWorld 项目为例,演示使用 hvigorw 进行项目构建、清理操作,并通过 DevEco Studio 的本地模拟器进行预览,帮助提升项目开发与调试效率。
108 3
「Mac畅玩鸿蒙与硬件7」鸿蒙开发环境配置篇7 - 使用命令行工具和本地模拟器管理项目
|
7月前
|
人工智能 JavaScript 物联网
极智AI | 全志XR806 OpenHarmony鸿蒙系统固件编译
大家好,我是极智视界,本教程详细记录了全志 XR806 OpenHarmony 鸿蒙系统固件编译的方法。
120 0
|
传感器 API 调度
openHarmony系统简介
今天带大家了解一下openHarmony系统,很多人可能听说过Harmony OS,今天要介绍的openHarmony系统就是Harmony OS的抽象,即基础版的,鸿蒙系统最终要实现的就是脱离安卓系统成为一个独立的系统,目前的环境使得鸿蒙系统仍然需要兼容安卓,故openHarmony诞生了,为了更好的进行过渡,同时也为更好的宣传鸿蒙系统。
929 0
openHarmony系统简介
|
前端开发 JavaScript API
openHarmony系统组件学习
openHarmony系统应用开发的组件很多,本篇文章仅以一个例子作为一个通用的学习方法,如果之前学过安卓开发,这部分内容应该除了语言,其他没有任何难度,本篇文章参考官网实现一个dialog组件,开始了~~
185 0
openHarmony系统组件学习
|
Ubuntu Linux 程序员
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程
786 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(中)
|
Linux 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程
456 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(上)
|
Linux 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程
241 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十一)驱动进化之路:设备树的引入及简明教程(下)
|
Java Linux 开发工具
RK3399平台开发系列讲解(系统编译篇)8.6、安卓开发环境的搭建及编译
RK3399平台开发系列讲解(系统编译篇)8.6、安卓开发环境的搭建及编译
231 0
|
JavaScript 前端开发 安全
前端开发华为鸿蒙系统应用 OpenHarmony JS
一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统 。现已开源,名为 OpenHarmony。
556 0