摘要:相信不少同窗都玩过鸿蒙(HarmonyOS)了,不过估计大多数同窗都只是用鸿蒙开发App,与开发Android App也没啥区别。不过鸿蒙还有更有意思的玩法,那就是与硬件结合,也就是IoT。本文将教你们如何将鸿蒙刷到开发板上,经过这些开发板能够控制更多的硬件。

python

本文的目的是将鸿蒙2.0刷到润和Hi386一、Hi3516和Hi3518开发板上。目前网上已经有不少关于刷鸿蒙2.0的文章,我整理了一下,并结合本身的经验,在本文中阐述了从配置环境,到编译鸿蒙源代码,再到刷机的全过程。

linux

注意:这里的Hi3861至关于Ardiuno,价格也差很少,主要用于控制外设,自己并无多少计算能力,Hi3516和Hi3518的配置相对较高,支持GUI。有点相似于树莓派。git

本文主要以Hi3861为例,其余两个开发板的编译和刷机过程相似。bash

Hi3581须要分为编译环境和烧录环境,目前编译环境只能是Linux,推荐使用Ubuntu Linux 20.04,用这个版本你会少了不少麻烦。至少Python环境直接是3.8.5了,你们能够不用理会Python了,由于编译HarmonyOS,Python的版本是3.7或以上版本便可,通过测试,Python 3.9也没问题。app

Hi3581的刷机环境须要使用Windows,推荐使用Windows 10,Home版、专业版都通过了测试,没问题,企业版的Windows还没测试,但大几率也没问题。dom

因此这里是重点:须要准备Ubuntu 20.04和Windows 10。 Ubuntu 20.04能够安装的虚拟机中,我用的是VMWare,这样能够经过快照在不一样状态以前切换。curl

1. 配置编译环境ide

如今开始配置Ubuntu 20.04的编译环境,读者须要按着以下几步操做:

(1)配置 repo 工具工具

若是你的Linux系统上尚未配置repo命令,须要先按下面的操做下载并配置repo命令行工具:post

mkdir ~/bin/

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo

chmod +x ~/bin/repo

echo 'export PATH=~/bin:$PATH'  >> ~/.bashrc

source ~/.bashrc

若是尚未curl命令,须要先执行下面的命令下载curl:

sudo apt install curl

(2)下载HarmonyOS源代码

读者可按下面的操做下载HarmonyOS的最新源代码

mkdir -p ~/harmonyos/openharmony && cd ~/harmonyos/openharmony

sudo apt install --no-install-recommends git python # repo工具自己是python脚本,它会调用git命令下载单个代码仓

git config --global user.name "yourname"

git config --global user.email "your-email-address"

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

repo sync -c  # 之后天天同步远程仓的修改,只须要执行这一条命令便可

读者须要将yourname改为本身的名字,将your-email-address改为本身的email。

(3)检测mkfs.vfat和mcopy命令是否安装

在终端执行这两个命令,若是没有安装,使用apt安装这两个命令

(4)安装各类工具和包

在终端执行下面的命令进行安装:

sudo apt-get install dosfstools mtools  # 官方文档说明的两个文件系统打包工具

sudo apt-get install zip       # 官方文档虽然没有写,可是打包rootfs过程当中须要使用

sudo apt install mtd-utils     # 3518须要打包 jffs2 镜像的mkfs.jffs2 命令,须要安装这个包

sudo apt install build-essential # 安装gcc/g++/make等工具,ffmpeg的测试过程当中须要使用

(5)下载各类编译器和工具包

下面的命令分别下载了gn、ninja、LLVM、hc-gen包,一步到位

# 下载gn/ninja/LLVM/hc-gen包

URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler

DOWNLOAD_DIR=~/Downloads                # 下载目录,可自行修改

TOOLCHAIN_DIR=~/harmonyos/toolchain     # 工具链存放目录,可自行修改

[ -e $DOWNLOAD_DIR ] || mkdir $DOWNLOAD_DIR

[ -e $TOOLCHAIN_DIR ] || mkdir -p $TOOLCHAIN_DIR

wget -P $DOWNLOAD_DIR $URL_PREFIX/gn/1523/linux/gn.1523.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar

wget -P $DOWNLOAD_DIR $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

# 编译 hi3861 须要 riscv 编译工具链

wget -P $DOWNLOAD_DIR $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

# 解压gn/ninja/LLVM/hc-gen包:

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gn.1523.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/ninja.1.9.0.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/llvm-linux-9.0.0-34042.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/hc-gen-0.65-linux.tar

tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gcc_riscv32-linux-7.3.0.tar.gz

# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:

cat <> ~/.bashrc

TOOLCHAIN_DIR=$TOOLCHAIN_DIR

export PATH=\$TOOLCHAIN_DIR/gn:\$PATH

export PATH=\$TOOLCHAIN_DIR/ninja:\$PATH

export PATH=\$TOOLCHAIN_DIR/llvm/bin:\$PATH

export PATH=\$TOOLCHAIN_DIR/hc-gen:\$PATH

export PATH=\$TOOLCHAIN_DIR/gcc_riscv32/bin:\$PATH

export PATH=~/.local/bin:\$PATH       # 用户pip二进制工具目录

EOF

# 生效环境变量

source ~/.bashrc

(6)改变pip源,加速下载

执行下面的命令从新配置pip.conf文件

mkdir ~/.pip/

cat < ~/.pip/pip.conf

[global]

index-url = https://mirrors.huaweicloud.com/repository/pypi/simple

trusted-host = mirrors.huaweicloud.com

timeout = 120

EOF

另外,若是没有pip命令,是由于默认叫pip3,能够执行下面的命令建立pip命令。

ln -s /usr/bin/pip3 /usr/bin/pip

(7)继续安装各类包

# 安装 setuptools 和 kconfiglib

pip3 install setuptools kconfiglib

# 安装编译hi3861须要的pip包

pip3 install scons ecdsa pycryptodome

2. 编译HarmonyOS源代码

(1)查看支持的平台

经过执行python build.py -h命令,能够查看HarmonyOS当前支持哪些平台,如图1所示。

4c7aae20938e5e17ccb2bc3e3403034d.png

第1个是hi3561,第2个是hi3518,第3个是hi3861。

(2)分别执行和3个命令来编译这3个版本的目标文件

若是要增长调试信息,后面能够加-b debug

# 编译hi3561

python build.py ipcamera_hi3516dv300 -b debug

# 编译hi3518

python build.py ipcamera_hi3518dv300 -b debug

# 编译hi3861

python build.py wifiiot

执行这3行命令,会在/out目录下出现对应的子目录,如Hi3861编译完,会出现wifiiot子目录,二进制目标文件都在该目录中。烧录文件是Hi3861_wifiiot_app_allinone.bin。

编译完的二进制文件下载方式在本文后面。

3. 烧录HarmonyOS

本文以Hi3861开发板为例,开发板样式如图2所示。

0e3918213e7b9816e85b759508f784bf.png

须要按下面的步骤进行烧录。

(1)将Hi3861_wifiiot_app_allinone.bin文件复制到Windows10中(随便放一个目录就能够)。

(2)用Hi3861链接线将开发板与PC链接。

(3)检查设备管理器,看看是否正确识别Hi3861开发板,若是正确识别,如图3所示。

5dec3e2484064ee52824a8c22270ad9d.png

若是设备管理器没有“端口(COM和LPT)”节点,那是由于被隐藏了,点击“查看”>“显示隐藏的设备”菜单项,就会显示,如图4所示。

44ed6a52f9701cbb9d8a01b7e335b656.png一般Windows 10会自动安装驱动,若是不幸没有自动安装驱动,那么能够自行下载。Hi3861使用的是CH340G芯片,读者可本身在google搜索该芯片驱动的下载地址,也能够在本文后面下载驱动文件。

(4)运行HiBurn.exe

这个工具是海思作的,用于烧录开发板,华为推出的驱动开发工具内置了该工具,读者也能够在本文后面下载该工具。

运行后,在COM中选择图3看到的COM端口号(如图5所示),本例是COM4。

d08fbdea36eeb7a7b9b96ee0909ec931.png

(5)选择传输速率

点击HiBurn中的Setting > com settings菜单项,弹出Com settings对话框,在Baud中选择3000000,让烧录速度更快,如图6所示。

a0e28745cd404cd5052b731357433813.png

(6)点击Select file按钮,选择Hi3861_wifiiot_app_allinone.bin文件,在下方列表中会出现如图7所示的3个烧录项。这个文件实际上是多个烧录项的合体。

de708a5e1ea068c049852b31d282246f.png

(7)开始烧录

选中Send file按钮旁边的Auto burn复选框,而后点击上方的connect按钮,这时下方日志栏会出现Connecting字样,如图8所示。

9fe2384975c12ed208141cd9995ada4d.png

(8)最后按一下图2所示开发板上的Reset Key,就会开始烧录,如图9所示。

这是由于Hi3861开发板须要重启,才会检测boot动做,若是遇到烧录的指令,就会烧录,不然就会正常启动。

若是烧录成功,会显示如图9所示的信息。

47b5ce60bd74abafd506e3f40009ec43.png

另外,AI Camera和DIY IPC套件附赠的USB串口线中集成了PL2302芯片,须要安装USB-to-Serial Comm Port.exe驱动才能够被Windows识别,下载地址: http://www.hihope.org/download

OK,而后就能够愉快滴玩耍了。后期会推出基于HI3861以及其余HarmonyOS开发板的有趣的IoT项目的文章和视频课程,敬请期待。

文章相关附件能够点击下面的原文连接前往学习

3b2d8256bae6906d83fd0353f5520651.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐