扫码阅读
手机扫码阅读

硬件开发新模式新感触!软硬兼施,千帆过尽,梦归月圆【华为开发者联盟生态市场LYEVK-3861A智能物联网开发板套件测评】

496 2023-07-17

接上篇 【华为开发者联盟生态市场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插件方式提供,安装分为如下几步:

  1. 安装Visual Studio Code

  2. 安装Node.js

  3. 安装JDK

  4. 安装hpm和其他npm包

  5. 安装DevEco Device Tool插件

  6. 安装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支持WindowsUbuntu系统,具有以下特点:

  • 支持代码查找、代码高亮、代码自动补齐、代码输入提示、代码检查等,开发者可以轻松、高效编码。

  • 支持多种类型开发板,包括基于华为海思芯片的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 ,首先以管理员身份运行 Pow­er­Shell (WIN+X , A),输入下面的命令开启 “适用于 Linux 的 Win­dows 子系统” 功能,并重启。

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 智能物联网开发板套件 ⬅️ ⬅️ ⬅️

⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️ ⬆️

原文链接: https://mp.weixin.qq.com/s?__biz=MzI0OTE5NzQxNw==&mid=2247485033&idx=1&sn=eebf99e096b23a19afe0edf5845e329b