
#2020征文-开发板#【 AI Camera连载】第一个应用程序
1. 参考文档:
● 官方-开发Hi3516第一个应用程序示例 :https://device.HarmonyOS.com/cn/docs/start/introduce/oem_camera_start_first_example-0000001051610926
● 源码码获取:https://openharmony.gitee.com/openharmony/docs/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
2. 获取源码:从代码仓库获取
该方法和网速有关,可能耗时较久,推荐用后文通过镜像站点下载的方法。
2.1 注册码云gitee账号。
2.2 注册码云SSH公钥,请参考码云帮助中心的公钥管理:https://gitee.com/help/articles/4181
2.3 安装git客户端并配置用户信息。
安装码云repo工具,可以执行如下命令:
$ sudo su // 不在root用户,sudo都不让执行下面内容
$ apt install curl
$ curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
$ chmod a+x /usr/local/bin/repo
$ chown ubuntu:ubuntu /usr/local/bin/repo
$ pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
$ exit
2.4 通过repo下载
执行下载:
$ mkdir ~/harmony/sdk-repo && cd ~/harmony/sdk-repo
$ repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
$ repo sync -c
注意:repo获取的镜像是不带git管理的,需要自己重新添加。
3. 获取源码:通过镜像站点下载(推荐)
OpenHarmony全量代码:https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz
Hi3516解决方案(二进制):https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz
添加git管理:
4. 源码目录简介
5. 修改源码
~/harmony/harmony-sdk$ sudo chown ubuntu:ubuntu -R harmony-sdk/
$ vi ~/harmony/sdk/applications/sample/camera/app/src/helloworld.c
6. 编译
$ python build.py ipcamera_hi3516dv300 -b debug
注意:
如果删除了SDK的部分内容可能导致再次编译会报错(即使用“git reset --hard
”恢复都没有用),解决办法是删除当前工程,重新解压源码,然后重新编译即可。
写成编译脚本:
$ touch build.sh && chmod 777 build.sh && vi build.sh
脚本可根据自己需求慢慢完善,下面是用脚本进行编译:
$ ./build.sh
将产物拷贝到Windows共享目录中:
$ rm /mnt/hgfs/proj-harmony/images/out/ -RF
$ cp -rf out/ /mnt/hgfs/proj-harmony/images/
7. 烧录
7.1 使用HiTool烧录
7.1.1 下载HiTool
百度网盘下载地址:https://pan.baidu.com/s/1J51RpFUgJlyDxYs_mnuojw
提取码:4fn5
7.1.2 鼠标双击打开HiTool.exe
界面如下:
7.1.3 通过串口烧写bootloader(fastboot,uboot)
uboot位置:
$ ls -al ~/harmony/sdk/vendor/hisi/hi35xx/hi3516dv300/uboot/out/boot/u-boot-hi3516dv300.bin
张飞电子的视频中讲SDK中的uboot固件有问题,可能导致系统无法启动,暂时先不更新uboot,您可以直接跳到7.1.4小节阅读。
uboot网络配置:
uboot启动指令:
下面部分是管理串口烧录的部分:
7.1.4 通过网口烧写其他内容(OHOS_Image.bin、rootfs.img、userfs.img)
7.1.4.1 设置PC的IP地址:
在网络图标上点击鼠标右键,单击打开“打开网络和共享中心”
点击当前网络:
进入PC的IP设置:
设置PC的静态IP为:192.168.1.3
7.1.4.2 设置目标板(uboot)的IP
通过HiTool的终端连接到目标板系统,下面是管理终端的串口的部分:
在uboot倒计时阶段输入任意键,让系统停留在uboot阶段:
查看默认配置:
hisilicon # print
设置uboot的IP地址:
hisilicon # setenv serverip 192.168.1.3;setenv ipaddr 192.168.1.2;saveenv;
hisilicon # print
查看网络是否通畅:
hisilicon # ping 192.168.1.3
目前不能通过路由器连接,只能通过网线直连:
hisilicon # ping 192.168.1.3
7.1.4.3 在HiTool工具中依次填入OHOS_Image.bin、rootfs.img、userfs.img的文件位置
这里我们使用官方编译好的固件:ipcamera_hi3516dv300-1.0。
流程如下:
点击“烧写”按键后,控制台会提示重启目标板:
重启后,系统就自动进入烧写了:
烧写成功:
登陆系统:
此时登陆会进入之前的uboot中,单板初次启动需要修改启动参数。
注释:读取FLASH起始地址为0x800(单位为512B,即uboot大小为1MB),大小为0x2800(单位为512B,即OHOS_Image.bin大小为5MB)的内容到0x80000000的内存地址。
注释:表示设置启动参数,输出模式为串口输出,波特率为115200,数据位8,rootfs挂载于emmc器件,文件系统类型为vfat,“rootaddr=6M rootsize=14M rw”处对应填入rootfs.img的烧写起始位置与长度,此处与新增rootfs.img文件时所填大小必须相同。
保存环境变量,然后重启系统:
重启后系统即可登陆到官方系统:
拍照或者录视频:
wifi列表:
关于:
但是uart-debug无法输入指令:
下面烧写自己修改过~/harmony/sdk/applications/sample/camera/app/src/helloworld.c应用的系统:
设置环境变量:
重启后进入系统:
桌面和官方提供的镜像一样的,不过终端界面有变化了,可以登录操作:
执行测试:
7.2 使用VSCode烧录
使用该方法最好搭配共享文件夹来使用,用VSCode编辑源码、烧录固件,用Linux服务器进行代码编译。
“官方-开发Hi3516第一个应用程序示例”中有VSCode烧录的详细说明,这里不再赘述。
本文结束,感谢您的阅读!
