工欲善其事,必先利其器。
6月初,OpenHarmony2.0开源后,Hi3516的小型系统已经实现ubuntu环境下的一站式开发,对于Hi3516的标准系统,同样可以一站式编译烧录,提高开发效率。
开发环境和源码升级
标准系统的开发 需在小型系统开发环境的基础上进行升级。小型系统开发参考(https://harmonyos.51cto.com/posts/7435)(ubuntu20.04,DevEco Device Tool v2.2 Beta1,源码code-2.0-canary)
1.安装依赖工具
- sudo apt-get install binutils git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4
- 1.
- 1.
- 1.
2.升级源码的 prebuilts
- #切换到工程目录
- cd code-2.0-canary
- #下载脚本文件prebuilts_download.sh
- curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh
- #运行脚本,下载升级源码的二进制文件,并解压到指定位置
- bash ./prebuilts_download.sh
3.标准系统编译JS Framework,需下载并配置NodeJS
- #创建nodejs目录
- mkdir -p prebuilts/build-tools/common/nodejs
- #进入nodejs目录
- cd prebuilts/build-tools/common/nodejs
- #下载nodejs (下载较慢且网络不稳,可下载附件压缩包,放至code-2.0-canary/prebuilts/build-tools/common/nodejs 下 )
- wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz
- #解压nodejs压缩包
- tar -zxvf node-v12.18.4-linux-x64.tar.gz
- #设置NodeJS环境变量
- echo "export PATH=`pwd`/node-v12.18.4-linux-x64/bin:${PATH}" >> ~/.bashrc;source ~/.bashrc
- #切换到之前的目录 code-2.0-canary 下
- cd -
- #进入源代码的third_party/jsframework目录,准备下载node_modules包
- cd third_party/jsframework
- #下载node_modules包
- npm install
- #升级npm
- npm install -g npm
- #切换到之前的目录 code-2.0-canary 下
- cd -
- #在prebuilts/build-tools/common下创建js-framework目录
- mkdir -p prebuilts/build-tools/common/js-framework
- #把下载的node_modules包放入js-framework
- cp -rp third_party/jsframework/node_modules prebuilts/build-tools/common/js-framework/
恭喜你,标准系统开发环境搭建成功!
编译
环境搭建好,就可以编译了。在code-2.0-canary 工程的命令窗口,执行标准系统的编译指令
- ./build.sh --product-name Hi3516DV300
首次编译较慢,大约一小时,编译完成。
对源代码applications/standard/hap/BUILD.gn稍作修改,保存,再次编译,77秒,编译成功
编译后生成的烧录文件,输出在 out/ohos-arm-release/packages/phone/images/ 目录下
烧录
.Hi3516DV300烧录标准系统,有USB、网口和串口烧录三种方式,串口太慢,USB只能在windows下使用,我们采用网口方式烧录。
1.首先开发板通电,用串口线连接电脑USB口和开发板,把电脑和开发板分别通过网线连接到路由器。
2.打开DevEco Device Tool,在Projects中,点击code-2.0-canary工程的Settings打开工程配置界面。
3.在Partition Configuration选项卡中,删除原有4项烧录文件信息,添加位于out/ohos-arm-release/packages/phone/images/下的7项烧录文件信息
4.在“hi3516dv300”选项卡下,设置烧录选项 ,注意设置之前需完成硬件连接并通电。
5.网络设置如下:
upload_net_server_ip: 电脑主机的IP地址,本机为 192.168.1.101
upload_net_client_mask:开发板的子网掩码,自动生成 255.255.255.0
upload_net_client_gw: 开发板的网关,自动生成 192.168.1.1,需留心与路由器是否一致
upload_net_client_ip: 开发板的IP地址,自动生成 192.168.1.2
6.工程配置完成后,点击右上部Save进行保存。
7.打开DevEco Device Tool界面,在PROJECT TASKS中,点击code-2.0-canary下hi3516dv300的Upload按钮,启动烧录。
8.开始烧录后,根据提示,对Hi3516开发板断电再上电
9.重新上电后,先串口烧录,再网口烧录,十分钟左右,烧录成功。
开发板自动重启,进入OpenHarmony2.0标准系统的开机桌面
总结
1.标准系统初次编译较慢,后续增量编译一般可以在几分钟之内完成,加上烧录10分钟左右,标准系统的编译烧录一般为十多分钟或者更少,基本可以满足学习和开发需求。
2.手动配置Partition Configuration烧录信息较为繁琐,相比轻量系统的自动配置或者烧录工具Hitool的一键配置,后续版本DevEco Device Tool相信会加以改进
3.OpenHarmony2.0的源码code-2.0-canary在ubuntu环境下,小型系统和标准系统都已实现一站式开发。在windows环境下,轻量型Hi3861的也已实现一站式开发。