本篇主要记录我拿到Hi3861的wifi IOT板子套件后, 从开箱到烧录第一个程序的过程.
硬件介绍
硬件到手, 秀一下我的拿到的板子.
套件里面包括了wifi IOT主板, 底板, OLED显示板, NFC板子, 温湿度板子, 模拟红绿灯的红绿灯板, 三色灯板. 官方硬件, 详细资料可以参考HiHope官网 【http://hihope.org/download/AllDocuments】。我拿到的套件不是智能小车套件,所以没有机器人板,机器人板包括了电机,舵机,超声传感器等接口。我原本计划用这个板子做智能小车,但是资源有些少,主要是指接口较少,所以把这个板子作为我智能小车的通讯接口。从这个套件就能看出来,海思3861 IOT定位很清晰。
开发板简介具体资源可以参考HarmonyOS官网【https://device.harmonyos.com/cn/docs/start/introduce/oem_wifi_start_des-0000001050168548】。
搭建环境
官网有操作教程,一步一步按照操作安装就可以了。
我本地windows存储空间有限,所以没法安装一个Linux虚拟机。在虚拟机编译,然后通过windows做开发和下载调试。这种方式编辑,调试更加方便,我比较的推荐,有条件的小伙伴可以优先采用。
因为我有一台腾讯云的服务器,所以把编译环境搭在了服务器ubuntu20.04LTS上,Linux compile server。但是实际效果就是,通过远程连接,用vscode打开远程代码,搜索代码真的太慢,尤其全局搜索,基本等不到搜索结果我就放弃了。所以只能用ssh远程登陆服务器,命令行做搜索,编辑代码还用windows端vscode远程连接编辑。远程连接我采用的是sshfs的方式,考虑是和ssh一个端口,连接方便,很多服务器的NFS端口号受限制。当然代价就是因为做了加密传输,速度会打些折扣。windows端给大家推荐客户端sshfs-win【https://github.com/billziss-gh/sshfs-win】。
我本地有个Ubuntu的u***的移动硬盘,平时做开发使用。尝试在本地ubuntu端做开发和编译,虚拟机virtualbox里面的windows做下载和调试,但是无奈虚拟机里面windows太卡,可能是因为采用的移动硬盘速度本身就很慢吧,所以就放弃了这种方式,但是验证基本是能走通的。如果有人主操作系统是ubuntu可以考虑这样的做法。
具体的搭建流程参考官网,图文并茂,已经很清晰了【https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998】。
下载代码
既然是学习,那必然下载全量的HarmonyOS的代码。代码用repo做管理,不提交代码的话就直接站点【https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz】下载就行。
下载好代码,无脑先编译一下:
编译成功!
HelloWorld!
忍不住先加一个Helloworld。有了HelloWorld, 那整个的开发流程就能走通,后面就可以开始正式的开发或者学习了。
在application/sample/wifi-iot/app路径下创建一个新的文件夹: helloworld
Helloworld.c实现简单的打印hello world的程序
在BUILD.gn中添加构建字段:
把我们新加的程序,添加到wifi-iot的app字段里面。
然后编译:ubuntu@VM-0-11-ubuntu:~/study/HarmonyOs/source/HarmonyOS$
python3 build.py wifiiot
编译结果在out/wifiiot下,Hi3861_wifiiot_app_allinone.bin就是我们需要的固件。
烧录到我们的板子上, 查看结果:
小结
关于开发环境,我不太喜欢这种需要来回切系统的做法,希望Hiburn能提供Linux版,也希望构建和编译链有windows版,这样开发者选择工具更有灵活性。当前的开发环境限制还是很多,初学者可能因为某个包安装的不对,就需要花很长时间来研究开发环境的安装,兼容性我感觉是这一套开发环境的努力方向。