DevEco Device Tool 实战从源码获取到Hello World(轻量系统)

系统 OpenHarmony
这次我将会以hispark_pegasus(Hi3861)为例,使用OpenHarmony-v3.1-Release轻量系统实战从源码获取到编写Hello World的设备开发流程。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

前言

官方使用文档:

https://device.harmonyos.com/cn/docs/documentation/guide/service_introduction-0000001050166905。

前面已经介绍了使用DevEco Device Tool设备开发的全流程,这次我将会以hispark_pegasus(Hi3861)为例,使用OpenHarmony-v3.1-Release轻量系统实战从源码获取到编写Hello World的设备开发流程。

开发环境

  • 开发板:hispark_pegasus(Hi3861)。
  • OpenHarmony版本:OpenHarmony-v3.1-Release。
  • DevEco Device Tool:Windows+Ubuntu混合开发环境。

新建工程

源码获取

提供以下三种配置方式,这里我选择第二种。

1.可以选择下载OpenHarmony3.1release 全量代码并按如图配置好SOC,开发板等信息。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

2.想快速体验的还是建议选择Openharmony已有样例WLAN连接类产品即hispark_pegasus的发行版源码,很快就能下完。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

选择后会自动配置开发板信息,点击确认进入下一步。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

3.已有OpenHarmony 3.1release全量代码也可以直接在工程配置添加新的开发板,添加完后点击保存。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

1,2种方法选择完毕后会弹出新的窗口进行下载源码,等待源码下载完成。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

编译

进入工程配置,检查工具链,确实工具链则点击安装。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

安装完成后如下:

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

点击Build进行编译,很快即完成编译。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

烧录

将开发板连接到电脑,若被虚拟机拦截,选择连接到主机。

查看Ubuntu与本地计算机的连接状态,点击Connect,输入虚拟机password。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

再次回到工程配置页面,选择Hi3861,找到upload_port,配置好串口号,upload_protocol是它的烧录工具,upload_partitions是待烧录的文件,默认即可。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

现在就可以点击Upload进行烧录,根据提示,按下开发板reset键。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

烧录成功。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

实战HelloWorld

以上没问题后,就可以开始尝试写我们的第一个demo了。

1.确定目录结构在./applications/sample/wifi-iot/app 路径下新建一个目录/my_first_app,用于存放业务源码文件。在该目录下新建hello_world.c ,和BUILD.gn文件。其中 hello_world.c 为业务代码,BUILD.gn 为编译脚本,具体规划目录结构如下:

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

2.编写业务代码在 hello_world.c 中新建业务入口函数 HelloWorld,并实现业务逻辑。并在代码最下方,使用 HarmonyOS 启动恢复模块接口 SYS_RUN()启动业务。(SYS_RUN 定义在 ohos_init.h 文件中)。

#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("[DEMO] Hello world.\n");
}

SYS_RUN(HelloWorld);

3.编写用于将业务构建成静态库的 BUILD.gn 文件。

在my_first_app/BUILD.gn下编写目标、源文件、头文件路径等配置,如下:

static_library("myapp"){
sources=[
"hello_world.c"
]
include_dirs=[
"//utils/native/liteos/include"
]
}

4.编写模块 BUILD.gn 文件,指定需参与构建的特性模块。配置./applications/sample/wifi-iot/app/BUILD.gn 文件,也就是和my_first_app同级下的BUILD.gn文件,在 features 字段中增加索引,使目标模块参与编译。features 字段指定业务模块的路径和目标,添加:

"my_first_app:myapp",

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

5.按之前的步骤进行编译烧录。

6.打开串口,按一下开发板的reset键,查看输出。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

成功输出Hello World!

后记

以上就是使用DevEco Device Tool 进行Hi3861开发板设备开发的流程,全程都是在vscode上进行的。短短几步就能实现学习几章内容才能搞完的操作,对比起传统开发方式只能说有手就行,我直接吹爆。

#夏日挑战赛#【FFH】DevEcoDeviceTool实战源码获取到HelloWorld-开源基础软件社区

手里有开发板的现在就可以试试,官方文档中也有各种开发板的开发教程,希望这篇文章能帮到大家。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2023-06-20 15:40:58

系统开发鸿蒙

2022-08-02 14:27:01

HDF驱动框架驱动开发

2023-05-23 08:01:10

Netty网络通信

2021-06-08 09:32:08

鸿蒙HarmonyOS应用

2021-04-22 10:13:34

鸿蒙HarmonyOS应用

2024-01-05 15:32:47

鸿蒙SNTP智慧时钟

2012-03-06 10:22:00

程序

2016-12-13 14:12:25

程序机制

2016-12-14 14:41:20

Hello World程序运行机制

2011-03-14 09:33:35

Mono

2012-05-03 11:21:58

ApacheCXFJava

2016-09-21 12:56:31

JavascriptWeb前端

2021-01-20 07:48:28

TechFlow前端网站

2021-11-30 10:00:45

鸿蒙HarmonyOS应用

2022-04-12 11:13:15

鸿蒙操作系统Harmony

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2022-04-15 14:31:02

鸿蒙操作系统

2022-01-24 18:35:56

OpenHarmon鸿蒙操作系统

2011-03-21 09:45:52

Hello WorldObjective-C生命周期
点赞
收藏

51CTO技术栈公众号