目录
1. Neptune开发板简介
2. 配置开发环境
3. 编译Neptune源代码
4. 烧录固件
现在市面上支持OpenHarmony的开发板已经比较多了,比较常见的有HiSpark、小熊派系列。这些开发板都是基于海思的Hi3861、Hi3516或Hi3518芯片的。尽管每一个芯片和对应开发板不是特别贵,也大量购买也需要不小的成本。例如,基于Hi3861的HiSpark开发板大概50元左右,与Arduino开发板的价格相当,所以购买大量Hi3861开发板,成本还是很大的。
HiSpark(Hi3861)开发板
幸好现在有很多替代品,OpenHarmony也不仅仅只能在海思系列芯片上运行。润和推出的Neptune就是一款基于非海思芯片的开发板,而且价格只有9.9元。
Neptune开发板
Neptune是一款基于w800芯片的开发板,w800是由“北京联盛德微电子有限责任公司(Winner Micro)”推出的一款芯片,基于C-SKY架构的用于物联网的32位芯片。
C-SKY是RISC-V基金会成员,C-SKY架构是由“杭州中天微系统有限公司”自主设计的,所以C-SKY是土生土长的由国人设计的CPU架构。C-Sky自己的嵌入式CPU的生产工艺从0.13毫米到28纳米不等。C-SKY还有望被添加进LInux内核,成为Linux内核原生支持的CPU架构。阿里巴巴在2017年入股了“杭州中天微系统有限公司”。
在Neptune上开发应用,与基于Hi3861芯片的开发板基本类似,但会有一些差异,请读者关注后续的文章。
Neptune支持两种开发环境:Ubuntu Linux和Docker。本文采用Ubuntu Linux进行讲解。推荐使用Ubuntu Linux 20.04或以上版本。
Neptune使用Hi3861的开发环境即可,所以首先要按官方文档配置Hi3861的开发环境,如果读者不想自己配置,可以通过下面的网盘地址下载Ubuntu Linux 20.04的VMWare虚拟机镜像:用户名:Pegasus;密码为:pegasus
https://pan.baidu.com/s/1uiiCpbJqViGb7Qs6HdCb8g 提取码: ddab
由于W800需要使用C-SKY指令集,所以需要到下面的地址下载支持C-SKY架构的交叉编译器:
https://occ.t-head.cn/community/download?id=3885366095506644992
下载下面的文件,然后解压,并在/etc/profile文件中设置PATH环境变量即可。
使用Neptune开发板的第一步就是下载OpenHarmony源代码,编译源代码以及烧录编译生成的固件。
Neptune开发板使用的OpenHarmony源代码需要特殊适配,目前已经升级为最新的OpenHarmony 1.1,大家可以到下面的网址下载。
https://gitee.com/hihopeorg_group/neptune-harmony-os1.1-iot/tree/master
下载完源代码后,在Ubuntu Linux中解压,然后在终端进入。
接下来执行hb set命令,然后在Input code path:后面输入一个点(.),在出现的列表中,通过上下箭头选择最后一个,如下图所示。
最后按回车键,将当前编译版本切换到Neptune,如下图所示。
编译源代码需要使用hb build -f命令。如果输出wifiiot_neptune build success,表示编译成功,如下图所示。
源代码编译成功后,进入下面的目录:
/device/winnermicro/neptune/sdk_liteos/bin/w800
在该目录中有一个w800.img文件,如下图所示。该文件就是要刷的固件。
刷固件需要在Windows下完成(推荐Windows10),在刷固件之前,需要共享VMWare Ubuntu Linux中的源代码目录,然后在windows中映射为驱动器。
按下面步骤烧录固件:
第1步:运行下面选中的程序
启动程序后,会弹出如下的窗口,选择开发板对应的com口,本例是com6。然后点击connect按钮。
第2步:设置传输率
进入软件后,点击Options -> Session Options菜单项,弹出下面的对话框,选择115200传输率。
第3步:让开发板进入刷固件模式
首先按住键盘的ESC键,然后再按开发板的RST键,软件中就会连续输出C,如下图所示。这表明开发板已经进入了刷固件模式。
第4步:选择固件文件
点击Transfer->Send Xmodem菜单项,选择w800.img文件,开始刷固件。刷机过程如下所示。
到100%后刷固件成功,如下所示。
第5步:重启完成刷固件
再次按开发板的RST键,重启开发板,运行新的固件,刷固件完成,重启会输出如下信息:
在后续的文章中,我会陆续推出利用Neptune开发板以及其他鸿蒙开发板的相关IoT开发课程,敬请关注。