hi3861

hi3861是一款带wifi的单片机,160Mhz,risc-v架构,内嵌2M flash,352kb sram,可串口烧录,与鸿蒙生态深度绑定,应该是没法用框架或者bare metal开发。定位类似于esp8266,性能比esp8266略低,但是看到有厂家用hi3861作网卡作了安防摄像头,猜测吞吐量比较大?

迷惑行为

不知道处于市场还是安全考虑,普通人并不能在hi3861其官下载到芯片手册或开发资料等任何东西。裸芯片在淘宝上也买不到,只能买到安信可出的hi-12f模组。
但是深挖互联网,还是能在各种技术论坛找到流出资料的。

开发板

入门建议直接安信可的hi-12f-kit,20左右。小熊派应该是和官方合作比较密切的厂商,他们也有开发板,示例代码也很全。

鸿蒙

鸿蒙分为两个,一个是手机用的,另一个是嵌入式设备的OpenHarmony。

手机的鸿蒙

华为手机为规避潜在的美国对开源软件的制裁,开发的一套闭源系统,兼容安卓软件,自建生态hms对抗gms。

OpenHarmony

开源系统,根据设备计算性能和内存,分为三种。hi3861用的轻量系统。目测没法运行安卓应用。

轻量系统(mini system)

面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB

小型系统(small system)

面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为1MiB

标准系统(standard system)

面向应用处理器例如Arm Cortex-A的设备,支持的设备最小内存为128MiB

hi3861开发环境

鸿蒙系统在快速迭代,发展,编译方法也一直在变,但一直朝着方便的方向发展。
目前的编译环境仅限ubuntu,网上存在着各种纯windows下的编译方法,个人不是很推荐,这些方法并非官方支持的,而且大部分年代久远,目前新版的鸿蒙大概率也不支持了,华为铁了心官方的编译方法就在ubuntu。
好在华为提供了HUAWEI DevEco Device Tool,以VSCode插件的形式支持了OpenHarmony的嵌入式开发,目前发布版本3.0(2022年6月30日发布),在windows和虚拟机ubuntu上都安装后,在windwos下vscode下编辑代码,然后系统会自动在ubuntu上远程编译,再自动把编译出来的bin拉倒本地,执行串口烧录。
值得注意的是自己做电路的话,一定要用ch340做usb转串口芯片,实测用daplink,wch-link等自带的虚拟串口,均无法下载。但使用hiburn.exe都却能正常下载。

环境搭建-ubuntu部分

必须用ubuntu20.04系统(python版本问题,只支持python3.8或3.9),桌面环境不要也行,可用ubuntu server版。
坑: 虚拟机必须配置私钥登录,且同时开启密码登录PasswordAuthentication yes,这是当前版本的bug。这个bug是薛定谔的bug,各个版本都会围绕认证出现不同的bug,本文使用一种终极解觉方案。参考链接

打开网站HUAWEI DevEco Device Tool,下载ubuntu版到虚拟机内部

HI3861的nfc板配置 hi3861 芯片_串口


之后根据官方教程安装即可,没有坑。

环境搭建-windwos部分

坑: 预先装好vscode和python3.9,不要让这个工具自动下载vscode和python。
坑: 如果系统中装了多个python环境,安装过程中会要求选一个,千万别选错版本,别选成anaconda,别选成其他软件装的python(例如platformio会自己装一个自己专用的python)
之后根据官方教程安装即可,没有坑。

开发流程

新建工程

鸿蒙非常大,他能裁剪,可以把系统裁剪到适用于单片机的水平,并且搭配上适当的驱动,类似hal。

完整的鸿蒙代码有10G,但是华为提供了包管理器hpm,类似于npm,每次只下载需要的包就行。

开发一般是基于别人配置好的底包进行开发,新建工程时候选小熊派的代码作为底包比较不错。

使用小熊派的实例代码新建工程,如果用官方示例会连不上ap打不开,但是小熊派的示例却没问题。

HI3861的nfc板配置 hi3861 芯片_串口_02

编译

选择编译点灯的代码

HI3861的nfc板配置 hi3861 芯片_串口_03

编译需要一些特定的编译环境,点左边的projict seting,出来右边的tool chain界面,如果没有绿色的对钩,点一下install就能自动下载所需环境,然后就绿了。

HI3861的nfc板配置 hi3861 芯片_串口_04


绿了之后点build就能构建。

HI3861的nfc板配置 hi3861 芯片_ubuntu_05

烧录

ide支持自动把编译出来的bin拉倒本地,执行串口烧录。但首先需要点这个绿色三角进行连接,连接本地和ubuntu之间的环境。

点完之后应该是变为红色方块,并且不变会绿色三角。变回去就是出问题了,连不上。

HI3861的nfc板配置 hi3861 芯片_HI3861的nfc板配置_06


解决方案

目前解决问题的方法是配置ubuntu ssh同时支持秘钥和密码登录,本地ssh配置好秘钥的绝对路径。之后选好本地串口,烧录即可,下载大概需要一分钟,免安检烧录时灵时不灵,大部分时候需要自己按一下开发板的重启。

HI3861的nfc板配置 hi3861 芯片_串口_07

最终

HI3861的nfc板配置 hi3861 芯片_python_08