拿到 HarmonyOS HiSpark IPC DIY Camera开发板已有一周时间了。昨日开箱、编译、烧写到运行hello world,一天内完成。现总结一下经验,与大家共勉,共同进步。
HiSpark IPC DIY Camera基于华为海思Hi3518芯片,支持LiteOS、鸿蒙OS,实现图像采集识别功能,广泛应用于智能摄像头、安防监控、车载记录仪等。
I、Hi3518模组组装
II、编译环境搭建
III、鸿蒙OS编译
IV、烧写鸿蒙OS程序
V、运行hello world程序
Hi3518模组完成组装,连接好电源、串口;参见 https://blog.csdn.net/qq_31765191/article/details/109440367;
鸿蒙目前仅支持linux编译。
Linux编译可以有三种方式:
本文采用windows安装linux虚拟机的方式。此处直接使用了已经安装好编译环境的ubuntu 20.04 版本虚拟机镜像。
参考连志安老师的文章:https://blog.51cto.com/14901125/2544472?source=dra
该文里面提供了虚拟机的镜像文件的下载方式,大家可以直接下载使用。该虚拟机镜像支持hi3861、hi3516、hi3518编译。另外这个Ubuntu镜像已经配置好samba共享文件了,不需要重复配置,下载后即可编译源码,即可通过Windows访问Ubuntu文件。虚拟机镜像的缺省账号:harmony,密码:123456。
需要注意的是,连老师提供的虚拟机镜像没有安装VMware tools,所以不能提供windows和虚拟机之间的拷贝粘贴功能,对于我这是不能忍受的,大家可以参考https://blog.csdn.net/qq_40584960/article/details/82946371 安装VMware tools。
我在安装VMware tools中遇到了这个错误Not enough free space to extract VMwareTools,解决方法是,将此文件夹复制到另外一个文件夹中,在另一个文件中解压就行了。(即:不能在第一个的文件夹里解压,要复制或剪切到另一个文件夹里再解压)
虚拟机的IP地址通过ifconfig命令查看。以下为示例,具体地址虚拟机部署局域网相关。
通过vmware workstation界面进入虚拟机(也可通过putty远程登录),在~/harmony/code/code-1.0目录打开一个新bash终端,执行编译命令:
python build.py ipcamera_hi3518ev300 -b debug
编译成功后,在out目录会生成ohos_image.bin, rootfs.img, userfs.img三个文件。为方便在windows下烧写,将源码~/harmony/code/code-1.0进行共享设置。
在windows里将该目录映射为网络驱动器,参考https://device.harmonyos.com/cn/docs/ide/user-guides/import_project-0000001050164980
在HUAWEI DevEco Device Tool IDE里导入该项目,可以进行源代码查看。
程序烧写到flash可以采用两种方式:hitool方式、IDE方式。
本人按照IDE方式的官方指导烧写操作没有成功,因为错误提示信息很少,所以放弃了该方式。
以下介绍使用hitool工具进行烧写。参考《 HiSpark_IPC_DIY摄像头_使用指导.pdf》2.5 IPC LiteOS版本镜像的烧录过程:可以使用串口、USB口。Hi3518不支持网口烧录。
1)串口烧写方式
使用串口成功完成烧写。串口的波特率为115200。
按照分区方式烧写,可以将uboot、ohos_image.bin, rootfs.img, userfs.img四个文件一起烧写,也可以只烧写ohos_image.bin, rootfs.img, userfs.img三个文件。
第一次擦除uboot时,要先拔电源。烧写时,拔掉再插上电源。可以按照终端打印的提示进行操作。
Uboot使用的u-boot-hi3518ev300.bin文件,参见润和公司官网 http://www.hihope.org/download/AllDocuments
串口烧写时间较长,我花费了20多分钟完成。器件类型需要选spinor。需要注意开始地址、长度,长度应大于或等于实际的文件大小。
2)USB烧写方式
这块调试了很长时间,后来按照《HiBurn 工具使用指南》usb 烧写方式,安装好指定的驱动zadig,LibusbK后,就可以按照开发Hi3518第一个示例程序的USB烧录方式,在IDE上进行快速烧录了。烧录时IDE的打印信息如下:
Executing task: hpm run ‘upload’ <
Start flash images…
Open serial port: COM6
Please power off and restart the board…
testuboot succeed
sf probe 0;sf erase 0x0 0x100000;
Erasing at 0x100000 – 100% complete.
SF: 1048576 bytes @ 0x0 Erased: OK
hisilicon #sendHisiliconCmd: isilicon # sf probe 0;sf erase 0x0 0x100000;
Erasing at 0x100000 – 100% complete.
SF: 1048576 bytes @ 0x0 Erased: OK
hisilicon #
Please power off and restart the board…
…中间打印省略
reset success!
100% comp
每次烧录uboot后,需要通过终端工具修改uboot的bootcmd及bootargs内容。参考: https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_example-0000001051610926
需要注意的是,烧写uboot这个步骤可以省略!也直接烧写ohos_image.bin, rootfs.img, userfs.img三个文件,注意省略uboot烧写时需要保留空间,起始地址不能从0开始。
修改U-boot的bootcmd及bootargs内容后,输入reset,进行重启。
重启后,待串口打印结束,输入回车会出现 OHOS # 提示符。
通过hitool打开终端工具,输入 ./bin/camera_app,执行源码中的hello world程序,串口打印输出参见附图中的打印信息。
IDE进行烧写和调试,windows开发环境版本要求及准备
1)开发环境版本要求及准备
参考https://device.harmonyos.com/cn/docs/ide/user-guides/tool_install-0000001050164976
2)导入和配置工程
参考https://device.harmonyos.com/cn/docs/ide/user-guides/import_project-0000001050164980
本人更多内容请参考:鸿蒙OS精品资料整理,持续更新中