关于harmonyos:鸿蒙HI3861开发环境搭建

49次阅读

共计 5975 个字符,预计需要花费 15 分钟才能阅读完成。

首先吐槽下,相比起 arduino、ESP8266 这些计划,鸿蒙的 WIFI_IOT 开发板环境搭建几乎是天堂难度 …. 最坑爹的是 Windows 平台不能用 HPM 编译,Linux 环境下能够编译但不能烧写(如果是依照官网的环境搭建手册是能够搭建基于 HB 命令的 windows 编译烧写环境的,然而因为我的能干,harmonyos-ssd1306 这个库没法编译)而依据官网的 linux 编译虚拟机 +windows 烧写实体机的形式又因为无奈在 vmware 的共享目录上做动静链接 … 而且要编译还要先跑虚拟机 … 于是我想起了 win10 的 wls,以下为踩坑全流程

0. Win10 零碎装置 Visual Studio Code

这个不必教了吧

1. 筹备 Ubuntu 子系统编译环境

举荐应用 LxRunOffline 工具装置,能够装置在其它磁盘,不必挤占贵重的 C 盘空间
LxRunOffline 下载:https://github.com/DDoSolitar…
倡议用 msvc 编译版本:LxRunOffline-v3.5.0-msvc.zip
下载解压之后间接运行 LxRunOffline.exe 即可

先启用 Linux 子系统性能

如果曾经应用过 WLS 的,能够掠过此步

如果你没有应用过 WSL,首先以管理员身份运行 Pow­er­Shell (WIN+X , A),输出上面的命令开启“实用于 Linux 的 Win­dows 子系统”性能,并重启。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

装置 Ubuntu20

下载官网的 Linux 子系统安装包:https://docs.microsoft.com/en… 下载后的文件改后缀名为.zip,解压后可失去名为 install.tar.gz 的文件 如果不想用微软官网的能够看下 LxRunOffline 的 wiki,有大佬编译的离线包:https://github.com/DDoSolitar…
倡议抉择 Ubuntu20.04 版本,自带 python3.8
装置命令:

lxrunoffline i -n <WSL 名称 > -d < 装置门路 > -f < 安装包门路 >.tar.gz

例如:

D:\Soft\System\LxRunOffline-v3.5.0-msvc\LxRunOffline.exe i -n Ubuntu20.04_harmony -d D:\Files\Resources\wls\Ubuntu20.04_harmony -f D:\Soft\System\ 零碎镜像 \Ubuntu_2004.2020.424.0_x64\install.tar.gz -s

运行 WLS

能够通过命令行启动

LxRunOffline.exe sd -n Ubuntu20.04_harmony

也能够运行桌面的快捷方式启动(装置 WLS 的时候会创立)

把 WLS 集成到 VSCode 终端

在 LxRunOffline.exe 同级目录下新建一个 wls.bat 文件,文件内容:

@echo off
LxRunOffline.exe run -w -n "Ubuntu20.04_harmony"

点击文件 -> 首选项 -> 设置 关上 vscode 的设置菜单,搜寻 terminal.integrated.shell.windows

点击在 settings.json 中编辑,把 terminal.integrated.shell.windows 的值改成下面的 wls.bat 的门路:

重启 vscode 后,按 alt+` 快捷键呼出终端,此时能够看到呼出的终端已

更换 apt 源

备份

cp /etc/apt/sources.list /etc/apt/sources.list.old

编辑 /etc/apt/sources.list 文件

vi /etc/apt/sources.list

把内容删掉,改成上面的:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse

保留退出后,更新 apt 源:

apt update
apt upgrade

更换默认 shell 为 bash

sudo dpkg-reconfigure dash

执行后会显示一个正告

选 NO 即会把默认 shell 替换为 bash,执行胜利后,应用命令 ls -l /bin/sh 查看是否设置胜利,如下图所示则已配置胜利

装置 Ubuntu 编译环境

装置 Python

ubuntu20 版本已自带 3.8+ 版本的 python 不须要另行装置了
上面来配置 Python:

# 装置 pip 工具
apt install python3-setuptools python3-pip -y
#GUI menuconfig 工具:
pip3 install kconfiglib 
pip3 install pycryptodome
pip3 install launchpadlib==1.10.13
pip3 install six --upgrade --ignore-installed six
pip3 install ecdsa

装置 scons

apt install scons -y 
scons -v #查看

装置 Node.js

到 node 官网下载 lts、64 位的 Linux 二进制包 https://nodejs.org/zh-cn/down…

wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz
mkdir -p /usr/local/lib/nodejs/
tar -xvf node-v14.17.0-linux-x64.tar.xz -C /usr/local/lib/nodejs/
echo "export PATH=/usr/local/lib/nodejs/node-v14.17.0-linux-x64/bin/:\$PATH" >> /etc/profile
resource /etc/profile

验证装置:

node -v
npm -v

装置 hpm 工具

先把 npm 改为国内源,下包快点

npm config set registry https://repo.huaweicloud.com/repository/npm/

装置 hpm 工具

npm install -g @ohos/hpm-cli

验证装置

hpm -V

依据官网文档顺次装置编译工具链

https://device.harmonyos.com/…

先建设编译工具链的寄存目录:

mkdir -p /opt/openharmony/toolchain

装置 gn

wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
mkdir /opt/openharmony/toolchain/gn
tar -zxvf gn-linux-x86-1717.tar.gz -C /opt/openharmony/toolchain/gn
echo "export PATH=/opt/openharmony/toolchain/gn/:\$PATH" >> /etc/profile
resource /etc/profile

装置 ninja

wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
tar -xvf ninja.1.9.0.tar -C /opt/openharmony/toolchain/
echo "export PATH=/opt/openharmony/toolchain/ninja/:\$PATH" >> /etc/profile
source /etc/profile

装置 riscv32-gcc

不倡议本人编译! 不倡议本人编译!不倡议本人编译!工夫就是生命,我的敌人!
须要自行编译的,倡议看官网文档的教程,此处应用官网预编译的二进制包

wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C /opt/openharmony/toolchain/
echo "export PATH=/opt/openharmony/toolchain/gcc_riscv32/bin/:\$PATH" >> /etc/profile
source /etc/profile
# 验证装置
riscv32-unknown-elf-gcc -v

装置 lvvm

wget https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar
tar -xvf llvm-linux-9.0.0-36191.tar -C /opt/openharmony/toolchain/
echo "export PATH=/opt/openharmony/toolchain/llvm/bin/:\$PATH" >> /etc/profile
source /etc/profile

装置 Windows 开发环境

装置 Python

到 python 官网下载 3.8.10 的 msi 安装包进行装置,留神,如果零碎有其它的 Python 版本,强烈建议先卸载其它版本的 python,再装置 3.8,python 版本不对或者多版本并存都可能影响下一步装置 HUAWEI DevEco Device Tool

装置

到官网下载安装包
https://device.harmonyos.com/…
彻底敞开 vscode 后,运行安装包进行装置
装置胜利后,关上 vscode 会看到 DevEco Device Tool 插件的图标:

装置 USB 转串口驱动

懒得写了,看官网文档吧 ….
https://device.harmonyos.com/…

HelloWorld

好了,终于到了令人激动的 HelloWorld 工夫了

下载初始源码

关上 wls 终端,进入咱们的工程目录(windows 下的各个盘符都挂在 WLS 的 /mnt/< 盘符 > 门路下)

cd /mnt/e/Projects_Act/harmonyos
# 创立源码目录
mkdir wifi_iot && cd wifi_iot

初始化源码仓库

hpm init -t dist

应用 wifi_iot 发行版作为工程模板

hpm install @ohos/wifi_iot

新建工程

点击 DevEco 图标,再主页抉择关上工程

关上方才咱们创立的 wifi_iot 目录

芯片抉择 Hi3861,源码起源选 hpm

而后点击 open 关上工程

如果步骤正确的话,曾经能够看到源码构造了

尝试编译

在开始码你充斥创意的代码之前,先试试编译是否失常吧,还是在 WLS 的终端中,执行命令进行编译

hpm dist


好吧,报错了 … 找不到 python,如下解决:

# 看看是不是的确没有 python 命令
python -V
# 果然没有
# 看看 python3 的装置门路
which python3
# 显示:/usr/bin/python3
# 建设 python 链接
ln /usr/bin/python3 /usr/bin/python

再次编译,当呈现 BUILD SUCCESS 就编译胜利了

尝试烧录

先接上开发板,而后点击 DevEco 的工程选项卡,切换到 hi3861 选项卡,找到 Upload option,upload_port 抉择开发板的 COM 端口,upload_protocol 抉择 burn-serial

点击 save 按钮保留设置,而后开展 PROJECT TASKS,点击 Upload
呈现提醒后,点击开发板的 rest 按钮从新上电,而后期待烧录实现

显示 successful 就示意烧录实现了

测试一下烧录的代码, 点击 PROJECT TASKS 里的 Monitor,显示串口监听胜利后,点击开发板 rest 按钮

开发板从新上电后,终端显示如下内容则示意 wifi_iot 零碎失常启动了

以下是 WLAN 组网指令,能够玩一下

AT+STARTSTA                             # 启动 STA 模式
AT+SCAN                                 # 扫描周边 AP
AT+SCANRESULT                           # 显示扫描后果
AT+CONN="SSID",,2,"PASSWORD"            # 连贯指定 AP,其中 SSID/PASSWORD 为待连贯的热点名称和明码
AT+STASTAT                              # 查看连贯后果
AT+DHCP=wlan0,1                         # 通过 DHCP 向 AP 申请 wlan0 的 IP 地址

查看 WLAN 模组与网关联通是否失常,如下图所示。

AT+IFCFG                                # 查看模组接口 IP
AT+PING=X.X.X.X                         # 查看模组与网关的联通性,其中 X.X.X.X 需替换为理论的网关地址

好了,至此整个开发环境就算搭建好了,总体来说就是再 Windows 下用 vscode 开发,开发实现之后,再 WLS 终端应用 hpm dist 命令编译,编译后应用 DevEco 烧写,不必折腾 Linux 编译环境也能够欢快的应用 HPM 了~

正文完
 0