> 文档中心 > 小熊派BearPi-HM_Micro_Small之Hello_World

小熊派BearPi-HM_Micro_Small之Hello_World


引言

本文通过一个非常简单的程序,展现了在小熊派BearPi-HM_Micro_Small开发板上进行鸿蒙设备开发的完整流程:下载源码、创建工程、编写源程序、编写/修改编译脚本、编译、烧写、测试。

提示: 请先按照《搭建小熊派BearPi-HM_Micro_Small的纯Ubuntu开发环境》搭建好开发环境。

本文参考了小熊派BearPi-HM_Micro_Small开发板的部分教程。

https://gitee.com/bearpi/bearpi-hm_micro_small

一、下载源码

1、如果没有安装git,先参考《git与gitee快速入门》第二部分,安装git。

2、在希望放置小熊派鸿蒙源码的目录下执行以下命令,下载源码。

git clone https://gitee.com/bearpi/bearpi-hm_micro_small.git

在这里插入图片描述

二、创建工程

1、打开DevEco Device Tool。(1)单击左侧工具栏中的DevEco图标;(2)单击Projects;(3)单击Import Project按钮;(4)在弹出的窗口中,选择文件夹Projects;(5)选择项目bearpi-hm_micro_small;(6)单击Import按钮。

在这里插入图片描述

2、在下图所示窗口中,单击Import。

在这里插入图片描述

3、在下图所示窗口中,选择Import from OpenHarmony Source。

在这里插入图片描述

4、按下图设置完毕后,单击Open。

在这里插入图片描述

5、在下图所示窗口中,选择Current Window,打开项目。

在这里插入图片描述

在这里插入图片描述

三、编写源程序

1、在路径applications/BearPi/BearPi-HM_Micro/samples下新建一个文件夹:dandelion

2、在文件夹dandelion下新建一个文件夹:hello_world

3、在文件夹hello_world下新建一个文件:hello_world.c,在这个文件中编写源程序:

#include int main(int argc, char **argv){    printf("\n************************************************\n");    printf("\n\t\tHello BearPi!\n");    printf("\n************************************************\n\n"); return 0;}

四、编写/修改编译脚本

1、在文件夹hello_world下新建一个文件:BUILD.gn,在这个文件中编写源程序hello_world.c的编译脚本:

executable("hello_world_exe") {    output_name = "hello_world"    sources = [ "hello_world.c" ]    include_dirs = []    defines = []    cflags_c = []    ldflags = []}

executable("hello_world_exe"):指示编译构建子系统去完成一个名为hello_world_exe的编译构建“小目标”。executable是这个“小目标”类型;这个“小目标”的具体内容:将sources列表中的源文件(也就是hello_world.c)编译成一个可执行文件,生成的可执行文件的名字由output_name指定,也就是hello_world

2、在文件夹dandelion下新建一个文件:BUILD.gn

import("//build/lite/config/component/lite_component.gni")lite_component("dandelion_app") {    features = [ "hello_world:hello_world_exe",    ]}

lite_component("dandelion_app"):指示编译构建子系统去完成一个类型为lite_component的、名为dandelion_app的编译构建目标。

lite_component这种类型是在lite_component.gni定义的,用于指示编译构建子系统去编译构建一个组件(Component)。

目前,在dandelion_app这个编译构建目标中只包含了hello_world目录中的编译构建“小目标” hello_world_exe。也就是说,这里要构建的组件(Component)中只包含一个可执行程序:hello_world。至于这个组件的名称,是在下个文件applications.json中指定的。

3、打开路径build/lite/components下的子系统applications的配置文件applications.json,将之前要编译构建的组件添加到子系统applications的组件列表中。

在这里插入图片描述

 {   "component": "bearpi_dandelion_app",   "description": "app written by dandelion",   "optional": "true",   "dirs": [     "applications/BearPi/BearPi-HM_Micro/samples/dandelion"   ],   "targets": [     "//applications/BearPi/BearPi-HM_Micro/samples/dandelion:dandelion_app"   ],   "rom": "",   "ram": "",   "output": [],   "adapted_kernel": [ "liteos_a" ],   "features": [],   "deps": {     "components": [],     "third_party": []   } },

4、打开路径vendor/bearpi/bearpi_hm_micro下的产品bearpi_hm_micro的配置文件config.json,将之前要编译构建的组件bearpi_dandelion_app添加到子系统applications的组件列表中。

在这里插入图片描述

      { "subsystem": "applications", "components": [    { "component": "bearpi_dandelion_app", "features":[] },    { "component": "bearpi_sample_app", "features":[] },    { "component": "bearpi_screensaver_app", "features":[] },    { "component": "bearpi_sample_communication", "features":[] } ]      },

五、编译

1、选择产品。在项目的根目录下执行以下命令:

hb set

在这里插入图片描述

如上图所示,只有一个产品选项,所以直接回车即可。

2、编译。在项目的根目录下执行以下命令:

hb build -t notest --tee -f

在这里插入图片描述

等待,直到终端中出现如下图所示的build success字样,说明编译成功。

在这里插入图片描述

六、烧写

1、复制镜像

编译完成后,生成的镜像文件在目录:out/bearpi_hm_micro/bearpi_hm_micro中,将三个镜像文件:OHOS_Image.stm32rootfs_vfat.imguserfs_vfat.img拷贝到目录:applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel中。

cp out/bearpi_hm_micro/bearpi_hm_micro/OHOS_Image.stm32 applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/cp out/bearpi_hm_micro/bearpi_hm_micro/rootfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/cp out/bearpi_hm_micro/bearpi_hm_micro/userfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/

2、用USB线将开发板接入Ubuntu虚拟机。

在这里插入图片描述

在这里插入图片描述

3、将开发板的拨码开关上拨到“000”烧录模式,并按一下开发板的RESET按键。

在这里插入图片描述

4、双击打开STM32CubeProgrammer;选择接口类型:USB;单击刷新按钮;单击Connect连接开发板。

在这里插入图片描述

5、连接上以后,单击Open file;在工程目录下选中烧录配置的tvs文件,单击Open。

在这里插入图片描述

在这里插入图片描述

6、点击Browse按钮,然后选择工程源码下的烧录镜像路径,单击Open

在这里插入图片描述

在这里插入图片描述

7、点击Download按钮启动镜像烧录,并等待烧录完毕。

在这里插入图片描述

在这里插入图片描述

8、烧写完毕后,在弹出的窗口中单击OK;关闭STM32CubeProgrammer。

在这里插入图片描述

9、点击DevEco Device Tool左侧工具栏中的DevEco图标,在“PROJECT TASKS”–鸿蒙工程bearpi-hm_micro_small下,单击Monitor按钮,打开串口终端。

在这里插入图片描述

终端窗口如下图所示:

在这里插入图片描述

10、将开发板的拨码开关拨至“010”emmc启动模式,并按一下开发板的“RESET”按钮复位开发板,开发板开始启动。

在这里插入图片描述

在串口终端中打印出启动日志信息。

七、测试

在串口终端中输入指令:./bin/hello_world,然后回车,在串口终端中会显示下图所示结果:

在这里插入图片描述