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

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

获取源码

开发者需要在Linux服务器上下载一套源代码,获取Hi3516源码(站点1站点2)。更多源码获取方式,请见源码获取

修改应用程序

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

  1. #include <stdio.h>
  2. #include "los_sample.h"
  3. int main(int argc, char **argv)
  4. {
  5. printf("\n************************************************\n");
  6. printf("\n\t\tHello OHOS!\n");
  7. printf("\n************************************************\n\n");
  8. LOS_Sample(g_num);
  9. return 0;
  10. }

编译

在linux服务器上,进入源码包根目录,目录内存放有build.py编译脚本,执行如下脚本编译源码包。结果文件生成在out/ipcamera_hi3516dv300目录下。

  1. python build.py ipcamera_hi3516dv300 -b debug

镜像烧写

该方法只适合支持网口的单板(例如Hi3516DV300),且PC主机必须与单板用网线连接并配置在于同一网络中。

开发Hi3516第一个应用程序示例 - 图1 须知: 由于Visual Studio Code软件与单板间存在网络通信,若单板无法与电脑网络连接,请检查防火墙设置,详细设置请参考常见问题2。

  1. 安装USB转串口驱动,并获取串口号。

    图 1 驱动安装成功图
    开发Hi3516第一个应用程序示例 - 图2

    1. 为单板上电,并将单板串口线连接Windows工作台。
    2. 安装驱动,驱动获取链接
    3. 打开电脑的设备管理器,查看并记录“Prolific USB-to-Serial Comm Port”串口号,此处为COM11。

      驱动安装成功后,若设备图标存在警示图标,请右键点击设备并卸载驱动后,重新安装驱动,并按提示重启电脑。

  1. Windows工作台为单板互联网口增加192.168.1.3的IP地址,增加方法如下。

    图 2 Windows主机IP增加图例
    开发Hi3516第一个应用程序示例 - 图3

    1. 控制面板->网络和Internet->网络连接中找到与单板连接的网卡,右键打开属性。
    2. 选择Internet协议版本4(TCP/IPv4),右键打开属性。
    3. 按图配置IP地址和网关。
    4. 点击“确定”完成配置保存。
  2. 单板列表增加hi3516dv300,依次选择Board Configure,enable单板自动新增单板配置表。

    图 3 增加hi3516dv300单板
    开发Hi3516第一个应用程序示例 - 图4

  3. 打开IDE工具,按下图标号顺序配置网络烧写内容。

    图 4 IDE工具网络配置图例

  1. ![](/projects/openharmony-1.0-zh-cn/quick-start/figures/ide.png)
  2. 1. 单板类型选择Hi3516单板。
  3. 2. 单击"Burn"
  4. 3. "Burning Mode"选择为"network"
  5. 4. "Host IP Address"点击刷新后,在下拉框中选择步骤2中配置的IP地址"192.168.1.3"
  1. 选择需要烧写的FLASH芯片存储类型及烧写地址。

    图 5 烧写文件参数配置图

  1. ![](/projects/openharmony-1.0-zh-cn/quick-start/figures/未命名图片2.png)
  2. 1. "Memery Type"选择"emmc"
  3. 2. 点击"New",新增至三个文件,并在文件路径中**依次**填入OHOS\_Image.binrootfs.imguserfs.img文件,起始地址及文件长度按图填写,文件从out/ipcamera\_hi3516dv300目录下获取。
  4. 3. 点击"Save"保存。
  5. 4. 点击左侧"Burn"开始烧写。
  1. 上方输入框弹出下拉框后,选择串口号,例如COM11。

    图 6 选择与单板连接的串口
    开发Hi3516第一个应用程序示例 - 图5

  2. 烧录开始,若出现提示,需要手动重启单板(下电再上电)。

    图 7 提示下电并重新为单板上电

  1. ![](/projects/openharmony-1.0-zh-cn/quick-start/figures/reset2.png)
  1. 烧写完成。

    图 8 烧写成功图
    开发Hi3516第一个应用程序示例 - 图6

镜像运行

  1. 连接串口。

    图 9 连接串口图

  1. ![](/projects/openharmony-1.0-zh-cn/quick-start/figures/chuankou1.png)
  2. 1. 单击**Serial port**打开串口。
  3. 2. 输入"com11"串口编号并连续输入回车直到串口显示"hisillicon"
  4. 3. 单板初次启动或修改启动参数,请进入步骤2,否则进入步骤3
  1. (单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。

    开发Hi3516第一个应用程序示例 - 图7 须知: U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示”hisillicon”,通过reset命令可再次启动系统。

    表 1 U-boot启动参数

    执行命令

    setenv bootcmd “sf probe 0;mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000”;

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

    saveenv

    reset

    命令解释

    setenv bootcmd “mmc read 0x0 0x80000000 0x800 0x4800;go 0x80000000”;

    表示选择FLASH器件0,读取FLASH起始地址为0x800(单位为512B,即1MB),大小为0x4800(单位为512B,即9MB)的内容到0x80000000的内存地址。

    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;表示复位单板

    [可选]“go 0x80000000”默认配置已将指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用”回车”打断自动启动。

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

    图 10 系统启动图

  1. ![](/projects/openharmony-1.0-zh-cn/quick-start/figures/qi1.png)

执行应用程序

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

图 11 应用程序启动图

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