本节将会介绍如何使用C语言为开发板编写一个Hello World 程序,如何将编译好的二进制文件烧录到开发板上,以及如何通过串口查看程序的输出结果。

本节重点掌握要点

  • 本节重点掌握程序的编译、烧录以及串口工具的使用
  • 体验一下从代码编写到结果输出的过程

3.1 编写 Hello World 程序源代码

1. 打开名为 helloworld.c 的文件

        在工程项目 src/applications/sample/wifi-iot/app/demolink 目录下,点击打开名为 helloworld.c 的文件,将里面的内容替换成以下内容:

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

void Helloworld(void)
{
  printf("\n\n\n--------------   Hello, World!   --------------------\n\n\n");
}

SYS_RUN(Helloworld);

        在上述代码实例中,ohos_init.h 是 HarmonyOS 特有的头文件。SYS_RUN 是 ohos_init.h 中定义的一个宏,它的作用是让一个函数在系统启动时自动执行。

2. 编写用于将业务构建成静态库的 BUILD.gn (应用级编译脚本)

        修改工程项目 src/applications/sample/wifi-iot/app/demolink 目录下的 BUILD.gn 文件,将内容修改为:

static_library("example_demolink") {
    sources = [
        "helloworld.c"
    ]

    include_dirs = [
        "//utils/native/lite/include",
        
    ]
}

BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。

  • static_library中指定业务模块的编译结果,为静态库文件libmy_example.a,开发者根据实际情况完成填写。
  • sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//“则表示绝对路径(此处为代码根路径),若不包含”//"则表示相对路径。
  • include_dirs中指定source所需要依赖的.h文件路径。
3. 编写模块 BUILD.gn 文件,指定需参与构建的特性模块(模块级编译脚本)

        修改 OpenHarmony 源代码的 applications/sample/wifi-iot/app 目录下的 BUILD.gn 文件,将内容修改为:

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

lite_component("app") {
    features = [
        "demolink:example_demolink",
    ]
}

        看到这里,有些初学者可能会感到懵,为什么有两个 BUILD.gn 文件?这里读者可以先不用管,我们会在下一小节中进行详细讲解。(其实,这两个 BUILD.gn文件所处的路径和作用是不一样的。第一个 BUILD.gn 文件路径为:src/applications/sample/wifi-iot/app/demolink,用于将业务构建成静态库。第二个 BUILD.gn 文件路径为:src/applications/sample/wifi-iot/app,指定需参与构建的特性模块。两个 BUILD.gn 文件的路径如下图所示:)

图3-1

图3-2

图3-3

第二个 BUILD.gn 文件 features 字段指定业务模块的路径和目标,demolink 是相对路径,是第一个 BUILD.gn 文件所在的路径,即 src/applications/sample/wifi-iot/app/demolink。example_demolink 是目标,指向:

src/applications/sample/wifi-iot/app/demolink/BUILD.gn 中的static_library("example_demolink")。

3.2 将源代码编译成二进制文件

在 VS Code 的左侧按钮中,打开 DevEco Device Tool 开发工具,在开发工具中先点击“Clean”,再点击“Build”进行源代码编译。

图3-4

表3-1

编译类型

说明

Clean

清除中间文件和目标文件。

Build

只编译已修改的文件。

Rebuild

全量编译代码。

        如果源代码只是小范围的修改,功能没有发生变化,编译代码时可以只点击 Build,这样编译就会比较快,如果源代码修改范围比较大,功能已经发生了改变,则编译时需要先点击 Clean,然后再点击 Build 进行编译。作者本人前期编译代码时,习惯于只是点击 Build,导致出现一个现象就是程序烧录进去后的结果和自己预想的不一致,其中主要原因就是没有点击 Clean 清除中间文件和目标文件。后来点击了 Clean,再点击 Build 进行编译,出现的结果就和自己预想的一致了。

编译完成后,会在VS Code 终端中提示“SUCCESS”字样,说明编译成功。编译的二进制文件路径为:

D:/DevEcoProjects/My_OpenHarmony/src/out/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin

图3-5

3.3 将二进制文件烧录到开发板

3.3.1 使用 DevEco Device Tool 进行烧录

        在 VS Code 的左侧按钮中,在开发工具中点击“Upload”进行源代码烧录,当看到“please reset device...”时,按下开发板复位按键,对开发板进行复位。然后程序就会自动进行烧录,当出现“SUCCESS”字样时,程序烧录成功。

图 3-6

3.3.2 使用 HiBurn 工具进行烧录

使用HiBurn 工具进行烧录步骤如下:

  • 打开 HiBurn 工具;
  • 点击 Select file 选择需要下载的 Hi3861_wifiiot_app_allinone.bin 文件;
  • 勾选上 Auto burn 选项;
  • 单击 Connect;
  • 此时按下开发板上面的 RST 复位按键,即可看到程序已经开始下载;
  • 注意下载成功后,需要点击 Disconnect 按钮,不然我们再次复位会重新烧录。我们也可以关闭掉 HiBurn 程序。

图 3-7

图3-8

3.4 通过串口查看程序的运行结果

        有两种方式可以通过串口查看程序的运行结果,一种是通过 DevEco Device Tool 的 Monitor 查看,另外一种是通过串口调试助手查看。

1. 通过 DevEco Device Tool 的 Monitor 查看

图3-9

点击右边的“回收箱”图标,停止 Monitor。

图3-10

2. 通过串口调试助手查看

        打开串口调试助手,选择正确的端口号,波特率设置为115200,点击打开串口,按下开发板的 RST 复位键,即可在串口调试助手上查看到程序运行结果。

图3-11

注意:下次烧录程序前,需要关闭 DevEco Device Tool 的 Monitor 或者串口调试助手,否则会因为串口被占用,导致程序烧录任务无法成功。

版权所有 © 2023 东莞龙元智能科技有限公司

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

附:本文档相关配套资料

1、配套开发板龙元智能 LY-01 淘宝链接:龙元智能OpenHarmonyOS鸿蒙系统海思 Hi3861鸿蒙开发板 LY-01-淘宝网 (taobao.com) 

2、配套视频教程 bilibili 链接:【鸿蒙3.1设备开发教程】龙元智能 HarmonyOS 3.1 鸿蒙设备开发实战教程_哔哩哔哩_bilibili

3、配套程序代码:在官方淘宝店购买开发板后,发货清单中有配套程序代码下载地址。

官方淘宝店
官方 bilibili 配套视频
官方微信公众号
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐