硬件开发新模式新感触!软硬兼施,千帆过尽,梦归月圆【华为开发者联盟生态市场LYEVK-3861A智能物联网开发板套件测评】
接上篇 【华为开发者联盟生态市场LYEVK-3861A智能物联网开发板套件测评】开箱体验及海思Hi3861V100芯片学习体验 (出处: 论坛首页)
【前情回顾】
通常我们在学习硬件开发时,Altium Designer,IAR,STC,CCS,Matlab等工具,是我们常用开发工具的top5~
传统硬件开发者和他的小屋
而当我在观看直播,包括拿到开发板,日常跑过例程后,我的第一感受是:开发硬件也需要使用虚拟化环境了么???!
需要在Linux环境中,才能搭建我们的开发环境?Linux生态雄起,这不是我们日常学习机器学习,人工智能才需要做的么!
开发硬件也需要我们制作VM虚拟机,安装npm,搭建docker虚拟化环境???!
这不都是软件开发的日常么(笔者在大学毕业后,从事了软件开发攻城狮的工作,城市的数字化转型,传统软件的国产化是我们日常要照顾的对象)
所以我们这里画风一转~
原来硬件开发也在推陈出新,士别三日,当刮目相待!( •̀ ω •́ )y
于是。。。此处略去n个小时。。。。。。(这里我们加了个微软MR的应用,会不会是一个伏笔呢~~~///(^v^)\\\~~~
新时代,新征程
【开发环境配置学习资料】
话不多说,关于windows环境搭建,以及docker编译环境搭建
我找了两篇51CTO,以及华为学院直播课程中,中软产品经理推荐的高质量文章,分享给大家~
基于Hi3861平台的 HarmonyOS Device开发体验-鸿蒙HarmonyOS技术社区-鸿蒙官方合作伙伴-51CTO.COM
获取工具-Docker编译环境 (harmonyos.com)
感兴趣,喜欢手把手带您搭建的小伙伴,请看华为学院的课程,我们在上一篇中也有分享~
搭建Docker编译环境 | 4.搭建Docker编译环境 | CBGHWDCN192 Courseware | Huawei iLearningX (huaweiuniversity.com)
【问题小结】
1、需要两台机(或一台大内存,多核CPU的PC机,因为需要搭建虚拟机)
Linux主机用于源码下载和编译,Windows主机用于烧写程序到单板以及源码编辑。
2、需要组网使用Linux环境编辑并编译源码,并拷贝到Windows环境,再进行烧录到开发板
毕竟Linux和Windows,两个操作系统的操作模式和理念不太相同,多数童鞋们不太好掌握~
而我们这里,结合了二者的优势,采用了如下开发模式
【软硬兼施开发新模式】
WSL 2 Ubuntu20.04(源码编辑编译开发环境)+ Docker(虚拟化镜像)+ Windows 10/11 (开发板烧录环境)
只需一台机器,纯Windows环境,无需寻找并搭建安装配置虚拟机,无需担心编辑或编译的文件不好找,不好拷贝的问题,无需纠结搭建VM虚拟机和docker需要启用hyper-v而导致的共存问题,and more ...
【环境准备】
这里我们只需要自己的一台PC机,我这边是自己大学本科时用的笔记本电脑,2013年款,DELL的Inspiron 15R 5537
软件清单名录
名称 | 说明 |
Java JDK |
需要安装JDK 1.8,如果已安装JDK,打开命令行工具,输入java -version命令,检查版本号是否1.8版本。 Windows平台的OpenJDK可以在oracle下载:Java Downloads | Oracle 解压后,配置 JAVA_HOME ,CLASSPATH,PATH 即可; |
Node.js |
DevEco插件的烧录功能依赖nodejs和相关插件,需要先安装nodejs和相关插件; Node.js下载页面:https://nodejs.org/en/download/ 例如选择 64 bit Windows Installer (.msi) 下载 安装完成后,设置环境变量 NODE_PATH 为 C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules 其中%USERNAME%为实际用户名; Node.js 安装过程中提示,“Tools for Native Modules” 界面的复选框可以不用勾选(勾选该选项后需要从npm官网下载安装vs编译工具包和Python,耗时较长,后续安装serial插件之前,使用国内镜像单独安装速度较快); |
WSL 2 |
适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。 您可以: 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括: 工具:vim、emacs、tmux 语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。 使用自己的 GNU/Linux 分发包管理器安装其他软件。 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。 在 Windows 上调用 GNU/Linux 应用程序。 将适用于 Linux 的 Windows 子系统从 WSL 1 升级到 WSL 2 的主要区别和优势是: 提高文件系统性能, 支持完全的系统调用兼容性。 WSL 2 使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。但是,WSL 2 不是传统的 VM 体验。 |
Docker |
这个在官方教程中, 获取工具-Docker编译环境 (harmonyos.com) |
VS Code |
获取工具-IDE (harmonyos.com) DevEco Device Tool(简称DevEco插件)是一个Visual Studio Code(简称VSCode)的插件,需要先安装VSCode; VSCode下载页面:https://code.visualstudio.com/Download,例如选择 System Installer 64 bit 下载 安装过程中,请勾选“添加到PATH(重启后生效)”,其他按照默认选项进行即可; |
DevEco Device Tool | HUAWEI DevEco Device Tool下载 - HarmonyOS设备开发官网 |
harmonyos 源码 | https://repo.huaweicloud.com/harmonyos/os/2.0/ |
【安装DevEco Device Tool 】
DevEco Device Tool以Visual Studio Code插件方式提供,安装分为如下几步:
安装Visual Studio Code
安装Node.js
安装JDK
安装hpm和其他npm包
安装DevEco Device Tool插件
安装C/C++插件
其中,下载nodejs、和JDK包可能较慢,安装hpm包
安装hpm和其他npm包
1、使用国内镜像源,例如华为云,加速模块下载速度:
npm config set registry https://repo.huaweicloud.com/repostitory/npm/
2、安装hpm 鸿蒙组件管理器:
npm install -g @ohos/hpm-cli
3、安装Windows编译工具包,serialport 包需要编译本地模块,必须先安装此包才能安装 serialport 包:
npm install -g windows-build-tools
4、安装 tftp 包,用于启动tftp服务器,通过网络方式向单板烧录映像:
npm install -g tftp
5、安装 serialport 包,用于通过串口烧写映像:
npm install -g serialport
npm install -g @serialport/parser-readline
下载DevEco插件
登录HarmonysOS设备开发门户,点击右上角注册按钮,注册开发者帐号,注册指导参考注册华为帐号。
如果已有华为开发者帐号,请直接点击登录按钮。
进入HUAWEI DevEco Device Tool产品页,下载DevEco Device Tool安装包。
我们可以参考官方给出的内容~~~
用户指南-工具简介 (harmonyos.com)
HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、编译、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。
DevEco Device Tool支持Windows和Ubuntu系统,具有以下特点:
支持代码查找、代码高亮、代码自动补齐、代码输入提示、代码检查等,开发者可以轻松、高效编码。
支持多种类型开发板,包括基于华为海思芯片的Hi3516DV300/Hi3518EV300/Hi3861V100/BearPi-HM Nano开发板,以及三方厂商的Imx6ull、Rtl8720、Xr872、Neptune开发板。
支持单步调试能力和查看内存、变量、调用栈、寄存器、汇编等调试信息。
安装前会为我们检测依赖情况~~~
包虽然大,但很饱满~ 内含多种开发包,方便开发者的使用~
包虽然大,但很饱满~ 内含多种开发包,方便开发者的使用~
安装成功后,启动Visual Studio Code,会自动安装DevEco Device Tool依赖的C/C++、CodeLLDB插件。
安装C/C++插件
HarmonysOS设备开发采用C/C++语言,Visual Studio Code工具对C/C++语言的支持插件非常丰富,可以安装“C/C++”插件来实现C/C++代码智能提示、代码高亮、格式化等功能,帮助您更高效、便利的开发更规范和优美的代码。
说明
如果C/C++和CodeLLDB插件安装不成功,则DevEco Device Tool不能正常运行,解决方法,详细请参考:离线安装C/C++和CodeLLDB插件。
在Visual Studio Code的插件市场,输入“C/C++”,然后点击“Install”。
如果在线安装失败,可点击右下角弹框的“Go to Download Page”,下载离线插件(选择“cpptools-win32.vsix”版本,Windows下,64位和32位系统均为同一个安装包)。然后再参考安装DevEco Device Tool插件的方式,离线安装C/C++插件。
最终界面如下图所示
【创建Demo】
填写配置,并打开
在HPM中,搜索 ohos/hi3861
点击安装到项目中
找到我们的开发板
【避坑指南】
1、安装DevEco Device Tool
遇到npm安装windows-build-tools时卡在Successfully installed Python 2.7_dysengor的博客-CSDN博客
2、进入docker镜像后的编译路径,及其编译界面的指定
说明
当前开发板平台和编译界面的对应关系如下:
Hi3861:wifiiot_hispark_pegasus@hisilicon
Hi3516:ipcamera_hispark_taurus@hisilicon
-
Hi3518:ipcamera_hispark_aries@hisilicon
编译完成
找到编译结果
===================================================================================
这里是神奇的分水岭O(∩_∩)O
===================================================================================
养兵千日 用兵一时
【巨坑】折腾了半天才发现Windows无法进行编译,故我们继续WSL2中使用Ubuntu进行操作
【WSL 2 Ubuntu的配置】
回归我们开篇的思路~~~
这里我们可以参考 快速入门-获取源码及Ubuntu编译环境准备 (harmonyos.com)
一下给出关键步骤
先启用Linux子系统功能
如果已经使用过WLS的,可以掠过此步
如果你没有使用过 WSL ,首先以管理员身份运行 PowerShell (WIN+X , A),输入下面的命令开启 “适用于 Linux 的 Windows 子系统” 功能,并重启。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
在Windows应用商店中,安装Ubuntu
如果已经使用过WLS的,可以掠过此步
之后我们安装官方的文档操作即可~ 快速入门-获取源码及Ubuntu编译环境准备 (harmonyos.com)
【填坑第二弹】
未安装devicetool-linux-tool
// 下载 devicetool-linux-tool
wget https://contentcenter-vali-drcn.dbankcdn.com/pvt_2/DeveloperAlliance_package_901_9/50/v3/3iXerz92RfqKxMyzEXHblg/devicetool-linux-tool-2.1.0.0.zip\?HW-CC-KV=V1\&HW-CC-Date=20210531T110021Z\&HW-CC-Expire=315360000\&HW-CC-Sign=24AFCA46B37541ED3A936186EEDF627CFD397B7C202FFEEF564D820897F75822
复制
//重命名
mv 'devicetool-linux-tool-2.1.0.0.zip?HW-CC-KV=V1&HW-CC-Date=20210531T110021Z&HW-CC-Expire=315360000&HW-CC-Sign=24AFCA46B37541ED3A936186EEDF627CFD397B7C202FFEEF564D820897F75822' devicetool-linux-tool-2.1.0.0.zip
复制
//解压缩
unzip devicetool-linux-tool-2.1.0.0.zip
复制
Archive: devicetool-linux-tool-2.1.0.0.zip
inflating: deveco-device-tool-2.1.0+279451.b672a187.run
//运行安装
bash deveco-device-tool-2.2.0+285431.76f4090e.run
复制
// 过程将近20分钟。。。。
最后可能有个warning信息,我们按照提示来安装一个软件即可~
sudo apt install authbind
实验1 点亮Hi3861的LED
0. Hi3861的gpio功能列表
1. 首先我们应该找到Hi3861的原理图,LED1对应的是GPIO09
根据这个原理图,我们只要保持J3的跳冒是连接的,从cpu引过来的GPIO09保持低电平,那么LED1就会点亮了。
HarmonyOS的gpio操作流程为:
因为我们不是操作gpio来获取/控制/响应gpio的中断,所以只需要关心读写gpio的流程即可。
2. HarmonyOS中提供了LED的demo, 可以供我们使用
code-2.0-canary/applications/sample/wifi-iot/app/iothardware/led_example.c
我们找到我们硬盘上鸿蒙系统源代码的位置 D:\OpenHarmony\code-2.0-canary
同样找到例程位置 D:\OpenHarmony\code-2.0-canary\applications\sample\wifi-iot\app\iothardware
同时在WSL中找到该路径,然后 使用 code . 打开
我们需要修改配置文件:app/BUILD.gn
添加相对路径"iothardware"下的库"led_example",中间以":"分隔开
注:"led_example"库名称是由iothardware/BUILD.gn来指定的
修改好后,我们就可以到源码的根目录中使用"hb build"来编译了
【填坑第三弹】
hb set 的目录异常
缺省为/home/openharmony
这。。。
我们使用 hb set -h查看帮助
发现使用hb set root . 便可以重新指定源代码根目录~
四、烧录二进制文件到Hi3861
开发环境搭建比较吐血Σ(っ °Д °;)っ
先到这里,敬请期待下一篇oled的视频播放~
================================================================================
♥♥♥心动♥♥♥不如♥♥♥行动♥♥♥
了解更多LYEVK-3861A 智能物联网开发板套件信息
♥♥♥请点击下方链接♥♥♥
⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
➡️ ➡️ ➡️ LYEVK-3861A 智能物联网开发板套件 ⬅️ ⬅️ ⬅️
⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️