中国软件开放和谐刷包

2021-06-23 17:30 来源:电子说

相信很多同学都玩过openharmony,但估计大部分同学只用鸿蒙开发应用,和开发Android App没什么区别。不过鸿蒙有一个更有趣的玩法,就是和硬件结合,也就是物联网。本文将教你如何在开发板上刷鸿蒙,通过它可以控制更多的硬件。

本文的目的是在何润Hi3861、Hi3516、Hi3518的开发板上刷鸿蒙2.0。目前网上有很多关于刷鸿蒙2.0的文章。我整理了一下,结合自己的经验,从配置环境,编写鸿蒙的源代码,到刷机,阐述了整个过程。

注:这里的Hi3861相当于Ardiuno,价格差不多。主要用于控制外设,但没有太大的计算能力。Hi3516和Hi3518配置比较高,支持GUI。有点像草莓派。

本文主要以Hi3861为例,另外两个开发板的编译和刷机过程是类似的。

Hi3581需要分为编译环境和烧录环境。目前编译环境只能是Linux。推荐Ubuntu Linux 20.04,会省去你很多麻烦。至少Python环境直接是3.8.5,可以忽略Python,因为编译HarmonyOS时Python的版本只有3.7以上,测试后Python 3.9没问题。

Hi3581的笔刷环境需要Windows,建议使用Windows 10。家庭版和专业版都测试过了,没问题,企业版Windows还没测试,但是大概率没问题。

所以重点来了:你需要准备Ubuntu 20.04和Windows 10。Ubuntu 20.04可以安装的虚拟机中,我用的是VMWare,这样我就可以通过快照切换到不同状态之前。

1.配置编译环境

现在开始配置Ubuntu 20.04的编译环境。读者需要遵循以下步骤:

(1)配置回购工具

如果您的Linux系统上没有配置repo命令,您需要下载并配置repo命令行工具,如下所示:

mkdir ~/bin/

curlhttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3》~/bin/repo

chmod x ~/bin/repo

echo ' export PATH=~/bin:$ PATH ' "]~/。没有则创建

来源~/。没有则创建

如果没有curl命令,您需要先执行以下命令来下载curl:

sudo apt安装curl

(2)下载HarmonyOS源代码

读者可以按照以下操作下载最新的HarmonyOS源代码

mkdir-p ~/harmonyos/open harmony CD ~/harmonyos/open harmony

工具sudo apt install-no-install-references git python # repo本身就是一个python脚本,它调用git命令来下载一个单独的代码绑定

git config-global user . name " your name "

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

回购初始化-u https://gitee.com/openharmony/manifest.git-b主-否-回购-验证

Repo sync -c #以后每天只需要执行这个命令就可以同步远程仓库的修改

读者需要把你的名字改成他们自己的名字,把你的电子邮件地址改成他们自己的电子邮件。

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

在终端执行这两个命令。如果没有安装,请使用apt安装这两个命令

(4)安装各种工具和包装

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

sudoapt-get install dofstools MTO ols #官方文档中描述的两个文件系统打包工具

虽然官方文档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/ninger/LLVM/HC-gen包

网址_前缀=https://repo . huaweicloud.com/harmonyos/编译器

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 《《EOF 》》 ~/.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 《《EOF 》 ~/.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所示。

第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行命令,会在《HarmonyOS源代码根目录》/out目录下出现对应的子目录,如Hi3861编译完,会出现wifiiot子目录,二进制目标文件都在该目录中。烧录文件是Hi3861_wifiiot_app_allinone.bin。

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

3. 烧录HarmonyOS

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

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

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

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

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

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

动安装驱动,如果不幸没有自动安装驱动,那么可以自行下载。Hi3861使用的是CH340G芯片,读者可自己在google搜索该芯片驱动的下载地址,也可以在本文后面下载驱动文件。

(4)运行HiBurn.exe

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

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

(5)选择传输速率

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

责任编辑:YYX

延伸 · 阅读