运行Hello OHOS(编译、烧录)

About 5 min

运行Hello OHOS(编译、烧录)

本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。

新建应用程序

  1. 新建目录及源码

    新建applications/sample/camera/apps/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。

    #include <stdio.h>
    
    int main(int argc, char **argv)
    {
        printf("\n************************************************\n");
        printf("\n\t\tHello OHOS!\n");
        printf("\n************************************************\n\n");
    
        return 0;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  2. 新建编译组织文件

    新建applications/sample/camera/apps/BUILD.gn文件,内容如下所示:

    import("//build/lite/config/component/lite_component.gni")
    lite_component("hello-OHOS") {
      features = [ ":helloworld" ]
    }
    executable("helloworld") {
      output_name = "helloworld"
      sources = [ "src/helloworld.c" ]
      include_dirs = []
      defines = []
      cflags_c = []
      ldflags = []
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
  3. 添加新组件

    修改文件build/lite/components/applications.json,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"##start##"和"##end##"之间为新增配置("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

    {
      "components": [
        {
          "component": "camera_sample_communication",
          "description": "Communication related samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/camera/communication"
          ],
          "targets": [
            "//applications/sample/camera/communication:sample"
          ],
          "rom": "",
          "ram": "",
          "output": [],
          "adapted_kernel": [ "liteos_a" ],
          "features": [],
          "deps": {
            "components": [],
            "third_party": []
          }
        },
    ##start##
        {
          "component": "hello_world_app",
          "description": "Communication related samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/camera/apps"
          ],
          "targets": [
            "//applications/sample/camera/apps:hello-OHOS"
          ],
          "rom": "",
          "ram": "",
          "output": [],
          "adapted_kernel": [ "liteos_a" ],
          "features": [],
          "deps": {
            "components": [],
            "third_party": []
          }
        },
    ##end##
        {
          "component": "camera_sample_app",
          "description": "Camera related samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/camera/launcher",
            "applications/sample/camera/cameraApp",
            "applications/sample/camera/setting",
            "applications/sample/camera/gallery",
            "applications/sample/camera/media"
          ],
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
  4. 修改单板配置文件

    修改文件vendor/hisilicon/hispark_aries/config.json,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"##start##"和"##end##"之间为新增条目("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

          {
            "subsystem": "applications",
            "components": [
    ##start##
              { "component": "hello_world_app", "features":[] },
    ##end##
              { "component": "camera_sample_app", "features":[] }
    
            ]
          },
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

编译

如果Linux编译环境通过Docker方式安装,具体编译过程请参见Docker方式获取编译环境的编译操作。如果Linux编译环境通过软件包方式安装,进入源码根目录,执行如下命令进行编译:

hb set(设置编译路径)
.(选择当前路径)
选择ipcamera_hispark_aries@hisilicon并回车
hb build -f(执行编译)
1
2
3
4

结果文件生成在out/hispark_aries/ipcamera_hispark_aries目录下。

图 1 设置图例

须知: Hi3518EV300单板的U-boot文件获取路径:device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/u-boot-hi3518ev300.bin

烧录

烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。

Hi3518EV300开发板的代码烧录支持USB烧录和串口烧录两种方式,其中:

  • Windows系统:支持USB烧录和串口烧录。
  • Linux系统:支持串口烧录,如果采用的是Linux+Windows双系统,也支持USB烧录。

同一种烧录方式(如串口烧录),在Windows和Linux环境下的烧录操作完全一致,区别仅在于DevEco Device Tool环境搭建不同。

此处仅以USB烧录为例进行说明。

  1. 请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考Hi3518EV300开发板介绍

  2. 打开电脑的设备管理器,查看并记录对应的串口号。

    说明: 如果对应的串口异常,请根据Hi3516DV300/Hi3518EV300开发板串口驱动安装指导安装USB转串口的驱动程序。

  3. 打开DevEco Device Tool,在Projects中,点击Settings打开工程配置界面。

  4. 在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3518EV300开发板进行适配,无需单独修改。

  5. 在“hi3518ev300”页签,设置烧录选项,包括upload_port、upload_partitions和upload_protocol。

    • upload_port:选择步骤2中查询的串口号。
    • upload_protocol:选择烧录协议,固定选择“hiburn-usb”。
    • upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。

  6. 所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。

  7. 打开工程文件,点击图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3518ev300_fastboot下的Erase按钮,擦除U-Boot。

  8. 执行Erase擦除操作后,显示如下提示信息时,请重启开发板(下电再上电)。

  9. 重新上电后,显示如下信息时,表示擦除U-Boot成功。

  10. 擦除完成后,点击hi3518ev300下的Upload按钮,启动烧录。

  11. 启动烧录后,界面提示如下信息时,表示烧录成功。

镜像运行

在完成Hi3518EV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。

  1. 在Hi3518EV300任务中,点击**Configure bootloader(Boot OS)**进行配置即可。

    说明: DevEco Device Tool针对Hi3518EV300开发板的BootLoader设置进行了适配,无需开发者手动修改。

  2. 提示如下图中的重启开发板的提示信息时,重启开发板,然后在控制台输出“SUCCESS”表示设置成功。

  3. 在任务栏点击Monitor按钮,启动串口工具。

  4. 然后根据界面提示进行操作,直到在界面打印OHOS #信息,表示系统启动成功。

下一步学习

恭喜您,已完成Hi3518的快速上手!建议您下一步进入无屏摄像头产品开发的学习 。