#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇 原创 精华

bluishfish
发布于 2021-1-12 23:05
浏览
8收藏

前言
上一篇,我们在 Win10 上用虚拟机安装了 Ubuntu,并设置了文件共享。这一篇,在此基础上编译鸿蒙os的源码,并进行设备烧录。
 #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

 

HarmonyOS 简介
1. 系统定义
HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。

2. 技术架构
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

这次开源的内核仅包含HarmonyOS微内核的部分,Linux内核要等下一个版本。

3. 分布式软总线
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

4. 分布式设备虚拟化
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

主要特性还是分布式架构和设备虚拟化技术,更详细的资料,参考官网描述

https://device.harmonyos.com/cn/docs/start/learn/oem_des_define-0000001055232642
 

DevEco Device Tool(windows下)
官网下载Visual Studio Code软件包,要求为1.45.1及以上版本。

1. 工具简介
HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。该工具具有以下特点:

DevEco Device Tool以Visual Studio Code插件形式提供,体积小巧。
支持代码查找、代码高亮、代码自动补齐、代码输入提示、代码检查等,开发者可以轻松、高效编码。
支持多种类型开发板,包括ARM架构的Hi3516/Hi3518系列和RISC-V架构的Hi3861系列开发板,提供一键式的烧录和调试GUI界面。
支持单步调试能力和查看内存、变量、调用栈、寄存器、汇编等调试信息。
2. 安装 Visual Studio Code

https://code.visualstudio.com/

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

懒得下载的,在文末网盘里也能获取最新版本的安装包。

3. 安装Node.js
官网下载链接,请选择LTS版本12.0.0及以上,Windows 64位对应的软件包。

https://nodejs.org/en/download/

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

安装完毕,在“此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量 >系统变量”中,新增NODE_PATH变量,值为:C:\Users\{userName}\AppData\Roaming\npm\node_modules,其中userName请替换为实际的用户名称。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

4. 安装JDK
下载并安装JDK,版本要求为:1.8版本。

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
 #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

下载完成后,安装 jdk-8u271-windows-x64.exe即可。

 

5. 安装hpm
基于 node.js ,全局模式安装脚手架

npm install -g @ohos/hpm-cli


测试安装是否成功

hpm -V

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

 

6. 安装DevEco Device Tool插件
如果您已经安装过DevEco Device Tool 插件,在您安装新版本前,请先手动将已安装的DevEco Device Tool 插件卸载后再按照如下步骤进行安装。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

在产品页下载工具插件

https://device.harmonyos.com/cn/ide

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

采用从本地磁盘安装方式,安装DevEco Device Tool。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7. 安装C/C++插件
HarmonysOS设备开发采用C/C++语言,Visual Studio Code工具对C/C++语言的支持插件非常丰富,可以安装“C/C++”插件来实现C/C++代码智能提示、代码高亮、格式化等功能,帮助您更高效、便利的开发更规范和优美的代码。

在Visual Studio Code的插件市场,输入“C/C++”,然后点击“Install”。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

获取源码(切换到ubuntu)
官网提供了4种方式,这里我们采用从代码仓库获取,进入虚拟机的 ubuntu 系统。

1. 将Linux shell改为bash
查看shell是否为bash,在终端运行如下命令

ls -l /bin/sh


如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:

在终端运行如下命令,然后选择 no。

sudo dpkg-reconfigure dash


 #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

2. 安装ssh server (可选)
如果要通过ssh对外提供链接的话,可以安装ssh服务

sudo apt-get  install openssh-server


其余相关命令

# 查看ssh 服务
sudo ps -e | grep ssh  
# 开启服务
sudo /etc/init.d/ssh start
# 查看服务状态
sudo service ssh status
# 关闭服务
sudo service ssh stop
# 重启服务
sudo service ssh restart 


这时其他电脑就能通过 ssh 命令来访问 ubuntu 了,如果喜欢的话,也可以安装putty-64bit-0.74-installer.msi来连接。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

3. 配置 python 环境
Ubuntu 20.04.1 默认已经带了 python3.8

which python
/usr/bin/python3.8


建立软链接,指向 python

cd /usr/bin
sudo ln -s /usr/bin/python3.8 python && python --version

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

 

4. 安装并升级Python包管理工具(pip3)

sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip


配置 pip 换源,新建 ~/.pip/pip.conf ,写入清华源

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple


安装python模块setuptools

pip3 install setuptools


安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本

sudo pip3 install kconfiglib


5. 安装文件打包工具

sudo apt-get install dosfstools mtools mtd-utils


 

6. 下载、配置编译工具链

mkdir -p ~/harmony/tools && cd ~/harmony/tools

# 下载gn/ninja/LLVM/hc-gen包:
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler
wget $URL_PREFIX/gn/1523/linux/gn.1523.tar
wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

# 解压gn/ninja/LLVM/hc-gen包:
tar -C ~/harmony/tools/ -xvf gn.1523.tar
tar -C ~/harmony/tools/ -xvf ninja.1.9.0.tar
tar -C ~/harmony/tools/ -xvf llvm-linux-9.0.0-34042.tar
tar -C ~/harmony/tools/ -xvf hc-gen-0.65-linux.tar

# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:
cat <<EOF >> ~/.bashrc
export PATH=~/harmony/tools/gn:\$PATH
export PATH=~/harmony/tools/ninja:\$PATH
export PATH=~/harmony/tools/llvm/bin:\$PATH
export PATH=~/harmony/tools/hc-gen:\$PATH
EOF

# 生效环境变量
source ~/.bashrc


 

7. 安装虚拟环境

sudo pip3 install -U virtualenv
virtualenv -p python3 ~/my_envs/harmonyos
source ~/my_envs/harmonyos/bin/activate
pip install requests  # 后续repo需要


 

8. 配置 repo 工具

sudo apt install curl
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/harmony/tools/repo
chmod +x ~/harmony/tools/repo
echo 'export PATH=~/harmony/tools:$PATH'  >> ~/.bashrc
source ~/.bashrc


 

9. 下载Harmony OS源码

mkdir -p ~/harmony/openharmony && cd ~/harmony/openharmony
sudo apt install git 
# 配置用户信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c  # 同步远程仓

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

稍等一会儿,源码仓的代码就同步到 openharmony目录下了。

 

10. 编译源码

python build.py ipcamera_hi3516dv300

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

稍微等待一会儿,编译时间取决于虚拟机的资源,如果太慢可以多分配一些。详细方法可以参照上一篇文章所述。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

同样根据用鸿蒙开发AI应用(二)系统篇里的方法,将 ~/harmony共享给 Win10系统来访问。

 

烧录程序(切换回windows)
1. 映射网络驱动器
将 ubuntu 里共享的源码目录,映射成网络驱动器

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

2. 导入源码
HarmonyOS暂不支持Windows系统源码,请从映射的Linux服务器的共享路径,导入源码。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

3. 配置工程
导入工程源码文件后,请对工程进行配置,如工程烧录和调试依赖的工具等信息。

点击底部工具栏中的“Board”按钮,选择对应开发板的配置模板,例如:Hi3516DV300。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

4. 安装烧录依赖工具
网络烧录ftp工具

npm install -g tftp

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

串口烧录工具

npm install -g serialport
npm install -g @serialport/parser-readline

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

 

usb 烧录工具

npm install -g usb

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

烧录后 crc 校验工具

npm install -g crc

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区
 

 

5. 安装串口驱动
PL-2303 的驱动文件,USB-to-Serial Comm Port.exe

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

插上串口线和网线, 

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

在设备管理器中,可以找到对应的串口号(COM4)

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

6. 串口调试
点击底部串口,可进行串口连接,用命令行进行设备配置。你也可以用 SSCOM这类传统串口调试工具来测试。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7. 插件网络方式烧录
硬件连接方式如下图所示,这里我们的 Linux 编译服务器为虚拟机形式。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区  

7.1 查询 IP 地址
ubuntu的ip地址采用ifconfig 查询,映射网络驱动器用;

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

windows的ip地址采用ipconfig 查询,烧录时需要用到;

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.2 配置串口
打开 vscode,点击 配置-烧录,选择烧录方式为 network;选择对应的串口号(这里是COM4)

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.3 配置目标板网络
Hi3516DV300的ip地址,可以设置到同网段下未使用的地址,最末段取 2-254 均可(这里58除外)。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

7.4 配置存储器类型
根据之前的硬件定义,Hi3516DV300 存储器类型设置为 emmc

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.5 配置文件和写入地址
在之前编译生成的文件夹中找到以下文件,按下列表格进行配置

Z:\openharmony\out\ipcamera_hi3516dv300

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

点击保存按钮,保存设置。

 

7.6 运行烧录命令
在DevEco Device Tool中,点击烧录后的箭头图标。插件会执行 upload命令进行烧录。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.7 设置脚本权限
如果遇到这个错误信息

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

在系统中搜索框 输入 Windows PowerShell
点击“管理员身份运行”
输入“ set-ExecutionPolicy RemoteSigned”回车
根据提示,输入A,回车
 #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.8 设置防火墙
如果网络地址完全正确(仔细查看setenv命令参数),遇到 crc32 校验错。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

则需设置防火墙通行

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

放行 vscode 应用程序

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

放行 node.js 程序 (这个特别容易遗漏)

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

7.9 烧录成功
一切顺利的话,看到提示重启开发板,就能写入成功,网络烧录速度还是非常快的。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

8. HiTool 烧录(推荐)
采用 HiTool 工具来烧片就不需要安装node.js 以及前面一堆依赖包了,相对来说会更为方便。

解压Hi3516-HiTool.zip,直接运行HiTool.exe即可。

8.1 选择芯片
菜单芯片-切换芯片-Hi3516DV300

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

8.2 关闭 tftp 加速
菜单窗口-首选项-TFTP设置里,由于Hi3516DV300不支持加速功能,取消这个配置的复选框。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

8.3 串口烧录
串口选择 COM4,填好文件和写入地址,点击烧写按钮即可。不过速度会慢到令人怀疑人生...

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

8.4 网口烧录
参数设置见下图,不多叙述了。网络烧录则速度快得多,2 分钟搞定!

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

这里注意,一定要同时插串口线和网线,因为即使是网口烧录方式,网络配置命令和fastboot段都是通过串口传输的。

另有 usb烧录方式,需要多插一根usb线,速度也不快。默认还会对开发板充电,有时候会干扰重启操作,蛮鸡肋的,就不详述了。

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

重启开发板后,就能看到久违的 demo示例程序了。

 

资料下载
 #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

 

 

下一篇预告
至此所有配置都已打通,

下一篇,

可以开始编写自己的程序,

真正进行应用开发之旅了

敬请期待...

 

#2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-1-12 23:06:58修改
10
收藏 8
回复
举报
9条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

赞,写的真详细

回复
2021-1-13 09:52:53
鲜橙加冰
鲜橙加冰

好详细,坐等下一篇。

回复
2021-1-13 10:11:03
Whyalone
Whyalone

先插个眼!!

回复
2021-1-13 10:20:43
啧啧啧GKD
啧啧啧GKD

话不多说    先关注

回复
2021-1-13 10:32:36
雪糕酱
雪糕酱

篇幅长,又很细节,真是用心了

回复
2021-1-13 10:34:19
gordonlonglong
gordonlonglong

很好的学习资料,谢谢分享!

回复
2021-1-13 10:58:00
definitely
definitely

可以可以,你赞有了👏

回复
2021-1-13 15:17:38
wx5fdc6a2c84f11
wx5fdc6a2c84f11

支持一下。

回复
2021-1-18 14:36:22
忙忙忙困困困
忙忙忙困困困

不知道为什么,我这边加载不出图片,离谱


回复
2024-2-13 22:55:34
回复
    相关推荐