用HarmonyOS点亮LED - 基于RISC-V Hi3861开发板 原创 精华
一、 Hi3861模组的介绍
1. 外观和基本功能
Hi3861开发板模组大小约2cm*5cm,是一款高度集成的2.4GHz WLAN SoC。
Hi3861芯片集成高性能32bit微处理器、拥有丰富的外设接口,芯片内置SRAM(Static Random Access Memory)和Flash,并支持在Flash上运行程序。
Hi3861模组有2MB FLASH,352KB RAM。但我们编写代码时,要注意对有限资源的合理利用。
Hi3861可以说是麻雀虽小,五脏俱全。Hi3861的外设接口包括(外部主晶振为40M或者24M):
- 2个SPI(Synchronous Peripheral Interface)
- 3个UART(Universal Asynchronous Receiver & Transmitter)
- 2个I2C(The Inter-Integrated Circuit)
- 6路PWM(Pulse Width Modulation)
- 15个GPIO(General Purpose Input/Output)
- 7路ADC(Analog to Digital Converter)
- 1个I2S接口
- 1个高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;
1.1 模组外观图:
1.2 Hi3861主控功能框架图:
1.3 Hi3861原理图
二、Hi3861开发环境的搭建
1. 概览
因为截至本文发布,Linux平台下的开发工具不支持Hi3861的烧录(且Windows平台中的编译环境比较难搭建),所以我们得使用windows的工具来烧录,Linux平台编译。
- Ubuntu20.04来编译源码
- Windows10通过网络从Ubuntu中下载二进制文件,并烧录二进制文件到Hi3861中
2. Ubuntu20.04开发环境的搭建
可以在windows10中使用virtual box虚拟机软件来安装一个下载好的Ubuntu20.04镜像,从而拥有Ubuntu20.04基本的开发环境。这里忽略。
假设
- 已有Ubuntu20.04系统;
- 可以联网;
- 可以使用ssh连接;
- 其空闲存储空间(推荐)在30G以上。
2.1 执行以下命令来搭建Ubuntu20.04的环境
2.2 进入源代码根路径 进行配置和编译
“build success” 就意味着编译环境搭建成功。
3. Windows10开发环境的搭建
工具名称 | 用途说明 | 版本要求 | 获取渠道 |
---|---|---|---|
Visual Studio Code | 代码编辑工具 | V1.53及以上 64位版本。 查看版本: windows-> cmd-> code --version |
https://code.visualstudio.com/Download |
Python | 编译构建工具 | V3.7.4~V3.8.x 64位版本 | 推荐下载3.8.8:https://www.python.org/downloads/ |
Node.js | 提供npm环境 | v12.0.0及以上 64位版本 | https://nodejs.org/zh-cn/download/ |
hpm | 包管理工具 | 最新版 | 请参考安装hpm |
DevEco Device Tool | HarmonyOS源码的编译、烧录、调试插件工具 | v2.2 Beta1 | https://device.harmonyos.com/cn/ide#download 下载前,请使用华为开发者帐号登录,如未注册,请先注册华为开发者帐号。 |
3.1 安装hpm
3.2 问题 - DevEco Device Tool安装失败:
“[Errno 13] Permission denied: ‘xxx\\.deveco-device-tool\\core\\tool_openlogic_openjdk_jre\\jre\\bin\\ucrtbase.dll’”
解决:
- 退出了360安全卫士,关闭杀毒软件和所有其他不相关软件:vscode, OpenJDK…
- 手动删除C:\Users<xxx>\AppData\Local\deveco-device-tool-installer和C:\Users<xxx>.deveco-device-tool这两个目录;
- 重新安装
- 重启vscode后,在左侧功能图标中有deveco的图标出现,即表示deveco安装成功
三、点亮Hi3861的LED
0. Hi3861的gpio功能列表
1. 首先我们应该找到Hi3861的原理图,LED1对应的是GPIO09
根据这个原理图,我们只要保持J3的跳冒是连接的,从cpu引过来的GPIO09保持低电平,那么LED1就会点亮了。
HarmonyOS的gpio操作流程为:
因为我们不是操作gpio来获取/控制/响应gpio的中断,所以只需要关心读写gpio的流程即可。
2. HarmonyOS中提供了LED的demo, 可以供我们使用
code-v1.1.2-LTS/applications/sample/wifi-iot/app/iothardware/led_example.c
我们需要修改配置文件:app/BUILD.gn
添加相对路径"iothardware"下的库"led_example",中间以":"分隔开
修改好后,我们就可以到源码的根目录中使用"hb build"来编译了
注:"led_example"库名称是由iothardware/BUILD.gn来指定的
四、烧录二进制文件到Hi3861
1. 下载Ubuntu中的源码二进制文件到windows10中
- 所有的生成文件在:code-v1.1.2-LTS/out 目录中
- 我们使用mobaxterm(https://mobaxterm.mobatek.net/download.html)工具,
- ssh访问到我们的Ubuntu20.04后,就可以用其sftp功能下载out目录到我们的win10的download目录中.
2. 在windows10中已经安装好deveco工具的vscode打开
- 一定要打开包含out目录的上一级目录:如我们的下载目录downloads文件夹
- 直接可以作为一个项目打开
- 选择framework为:hb
- 平台为: hi3861
3. 配置项目的下载信息
连接好自己的hi3861模组,如果电脑没有装ch340串口驱动,一定别忘了装
4. 点击烧录
烧录的过程中,会在vscode的终端提示重启开始烧录,请按下hi3861的reset键开始烧录。
烧录成功后,重新上电即可立即运行。
🐂🐂🐂🐂
Hi3861的gpio功能图表很实用
太优秀了。
请问 Pegasus物联网套件开发环境--VMware镜像 的密码是什么?
还真问住我了。我是自己搭建的环境。建议您和套件供应商沟通一下,看看商家是不是知道嘞。