开发Hi3516第一个应用程序示例

发布于 2021-7-21 15:55
浏览
0收藏

开发Hi3516第一个应用程序示例

本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“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;
    }​
  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 = []
    }​
  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"
          ],​
  4. 修改单板配置文件

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

          {
            "subsystem": "applications",
            "components": [
              { "component": "camera_sample_app", "features":[] },
              { "component": "camera_sample_ai", "features":[] },
    ##start##
              { "component": "hello_world_app", "features":[] },
    ##end##
              { "component": "camera_screensaver_app", "features":[] }
            ]
          },​

    编译

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

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

图 1 设置图例开发Hi3516第一个应用程序示例-开源基础软件社区

结果文件生成在out/hispark_taurus/ipcamera_hispark_taurus目录下。

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

烧录

Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三种方式。此处仅以网口烧录为例进行说明。

  1. 请连接好电脑和待烧录开发板,以Hi3516DV300为例,需要同时连接串口、网口和电源,具体可参考Hi3516开发板介绍

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

    开发Hi3516第一个应用程序示例-开源基础软件社区 说明: 如果对应的串口异常,请根据Hi3516/Hi3518系列开发板串口驱动安装指导安装USB转串口的驱动程序。开发Hi3516第一个应用程序示例-开源基础软件社区

     

  3. 打开DevEco Device Tool,在Projects中,点击Settings打开工程配置界面。开发Hi3516第一个应用程序示例-开源基础软件社区

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

    • upload_port:选择步骤2中查询的串口号。
    • upload_protocol:选择烧录协议,固定选择“hiburn-net”。
    • upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。
    • 开发Hi3516第一个应用程序示例-开源基础软件社区
    • 检查和设置连接开发板后的网络适配器的IP地址信息,设置方法请参考设置Hi3516网口烧录的IP地址信息
    • 设置网口烧录的IP地址信息,设置如下选项:

      • upload_net_server_ip:选择5中设置的IP地址信息。例如192.168.1.2
      • upload_net_client_mask:设置开发板的子网掩码,工具会自动根据选择的upload_net_server_ip进行设置。例如255.255.255.0
      • upload_net_client_gw:设置开发板的网关,工具会自动根据选择的upload_net_server_ip进行设置。例如192.168.1.1
      • upload_net_client_ip:设置开发板的IP地址,工具会自动根据选择的upload_net_server_ip进行设置。例如192.168.1.3

修改待烧录文件(对应hi3516dv300_fastboothi3516dv300_kernel、hi3516dv300_rootfs和hi3516dv300_userfs页签)的设置,默认情况下,DevEco Device Tool已针对Hi3516系列开发板进行适配,无需单独修改。如果需要修改,请在New Option中,选择对应的修改项进行更改。开发Hi3516第一个应用程序示例-开源基础软件社区

所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。开发Hi3516第一个应用程序示例-开源基础软件社区

打开工程文件,点击图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击env:hi3516dv300下的Upload按钮,启动烧录。开发Hi3516第一个应用程序示例-开源基础软件社区启动烧录后,显示如下提示信息时,请重启开发板(下电再上电)。开发Hi3516第一个应用程序示例-开源基础软件社区

 

重新上电后,启动烧录,界面提示如下信息时,表示烧录成功。开发Hi3516第一个应用程序示例-开源基础软件社区

镜像运行

  1. 连接串口。


     须知: 若无法连接串口,请参考常见问题进行排查。

    图 2 连接串口图开发Hi3516第一个应用程序示例-开源基础软件社区

    1. 单击Monitor打开串口。
    2. 连续输入回车直到串口显示"hisilicon"。
    3. 单板初次启动或修改启动参数,请进入步骤2,否则进入步骤3
  2. (单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。

     须知: U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisilicon",通过reset命令可再次启动系统。

    表 1 U-boot修改命令

    执行命令

    命令解释

    setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";

    读取FLASH起始地址为0x800(单位为512B,即1MB),大小为0x4800(单位为512B,即9MB)的内容到0x80000000的内存地址,该大小(9MB)与IDE中所填写OHOS_Image.bin文件大小必须相同

    setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=15M rw";

    表示设置启动参数,输出模式为串口输出,波特率为115200,数据位8,rootfs挂载于emmc器件,文件系统类型为vfat,

    “rootaddr=10M rootsize=15M rw”处对应填入rootfs.img的烧写起始位置与长度,此处与IDE中新增rootfs.img文件时所填大小必须相同

    saveenv

    表示保存当前配置。

    reset

    表示复位单板。

    开发Hi3516第一个应用程序示例-开源基础软件社区 须知: **“go 0x80000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。

  3. 输入**“reset”**指令并回车,重启单板,启动成功如下图,输入回车串口显示OHOS字样。

    图 3 系统启动图

    开发Hi3516第一个应用程序示例-开源基础软件社区

    执行应用程序

    根目录下,在命令行输入指令“./bin/helloworld”执行写入的demo程序,显示成功结果如下图所示。

    图 4 启动并成功执行应用程序图开发Hi3516第一个应用程序示例-开源基础软件社区

已于2021-7-21 15:55:30修改
收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐