开发Hi3516第一个应用程序示例本节指导开发者在单板上运行第一个应用程序,其中包括修改应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
获取源码开发者需要在Linux服务器上下载一套源代码,获取Hi3516源码(下载链接)。更多源码获取方式,请见源码获取。
修改应用程序源码目录applications/sample/camera/app/src内
helloworld.c代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
#include <stdio.h>
#include "los_sample.h"
int main(int argc, char **argv)
{
printf("n************************************************n"); printf("nttHello OHOS!n"); printf("n************************************************nn");
LOS_Sample(g_num);
return 0;
}
编译在linux服务器上,进入源码包根目录,目录内存放有build.py编译脚本,执行如下脚本编译源码包。结果文件生成在out/ipcamera_hi3516dv300目录下。
python build.py ipcamera_hi3516dv300 -b debug
镜像烧写该方法只适合支持网口的单板(例如Hi3516DV300),且PC主机必须与单板用网线连接并配置在于同一网络中。
须知: 由于Visual Studio Code软件与单板间存在网络通信,若单板无法与电脑网络连接,请检查防火墙设置,详细设置请参考常见问题2。
- 安装USB转串口驱动,并获取串口号。
图 1 驱动安装成功图
- 为单板上电,并将单板串口线连接Windows工作台。
- 安装驱动,驱动获取链接。
- 打开电脑的设备管理器,查看并记录“Prolific USB-to-Serial Comm Port”串口号,此处为COM11。
驱动安装成功后,若设备图标存在警示图标,请右键点击设备并卸载驱动后,重新安装驱动,并按提示重启电脑。
- Windows工作台为单板互联网口增加192.168.1.3的IP地址,增加方法如下。
图 2 Windows主机IP增加图例
- 控制面板->网络和Internet->网络连接中找到与单板连接的网卡,右键打开属性。
- 选择Internet协议版本4(TCP/IPv4),右键打开属性。
- 按图配置IP地址和网关。
- 点击“确定”完成配置保存。
- 单板列表增加hi3516dv300,依次选择Board Configure,enable单板**,**自动新增单板配置表。
图 3 增加hi3516dv300单板
- 打开IDE工具,按下图标号顺序配置网络烧写内容。
图 4 IDE工具网络配置图例
- 单板类型选择Hi3516单板。
- 单击"Burn"。
- "Burning Mode"选择为"network"。
- "Host IP Address"点击刷新后,在下拉框中选择步骤2中配置的IP地址"192.168.1.3"。
- 选择需要烧写的FLASH芯片存储类型及烧写地址。
图 5 烧写文件参数配置图
- "Memery Type"选择"emmc"。
- 点击"New",新增至三个文件,并在文件路径中依次填入OHOS_Image.bin、rootfs.img、userfs.img文件,起始地址及文件长度按图填写,文件从out/ipcamera_hi3516dv300目录下获取。
- 点击"Save"保存。
- 点击左侧"Burn"开始烧写。
- 上方输入框弹出下拉框后,选择串口号,例如COM11。
图 6 选择与单板连接的串口
- 烧录开始,若出现提示,需要手动重启单板(下电再上电)。
图 7 提示下电并重新为单板上电
- 烧写完成。
图 8 烧写成功图
镜像运行- 连接串口。
须知: 若无法连接串口,请参考常见问题5进行排查。
图 9 连接串口图
- 单击Serial port打开串口。
- 输入"com11"串口编号并连续输入回车直到串口显示"hisillicon"。
- 单板初次启动或修改启动参数,请进入步骤2,否则进入步骤3。
- (单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。
须知: U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisillicon",通过reset命令可再次启动系统。
表 1 U-boot启动参数
执行命令
| setenv bootcmd "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启动倒数阶段使用"回车"打断自动启动。
|
- 输入**“reset”**指令并回车,重启单板,启动成功如下图,输入回车串口显示OHOS字样。
图 10 系统启动图
执行应用程序根目录下,在命令行输入指令“
./bin/camera_app”执行写入的demo程序,显示成功结果如下图所示。
图 11 应用程序启动图