OpenHarmony(以下简称OH)自开源以来,已经过去了1年多。一年多时间,许多厂商争先恐后加入到OH的队伍中来,这一年多,发展迅速。
我有幸可以在这OH发展的初期加入到OH的开发中来,成为OH中的一员。对于刚毕业的我来说,这个时候加入无疑是最好的选择。
有关OH的介绍,这里就不再说多,对于小白,可以自行百度,了解原委。这里只单纯地记录开发相关技术。
在正式编写之前,需要说明一点,由于OH发展迅速,各种资料都在不断更新中,有些东西可能今天还在是这样,可能明天就不知道到哪里去了,因此,这个可能随时会更新,各位如果在次过程中遇到什么问题,可以给我留言,也可以给我私信,共同进步。
下面将以W800为例进行说明:
官方地址:
https://gitee.com/hihope_iot/openharmony_neptune
由于官方经常修改git地址,如果官方找不到位置,可以从我的账户下载:
https://gitee.com/lhsmd/oh_w800.git
为什么以W800说明呢?因为他便宜!!!(笑死)
开发环境适配于鸿蒙1.1.0,其他版本未尝试。
一、环境准备
1.Ubuntu1804以上,这里用的是Ubuntu2004,请自行安装,实体机或者虚拟机都可,虚拟机我的配置如下图,各位可以根据自己电脑的合理配置。
2.Python3.7以上,这里使用的是Python3.8,一般Ubuntu2004自带了;
二、下载安装
这里提供一个下载链接,里面包含了绝大多数插件,如果你发现下载的有些工具无法下载,可以直接使用我提供的,并按照步骤操作即可:
https://gitee.com/lhsmd/oh_tool.git
1.基本工具
sudo apt-get install gcc g++ make zlib* libffi-dev
2.安装Python3.8
一般Ubuntu2004自带了,安装好python3.8后, 所有引用python的包必须显示指定python3或其他python版本。向终端输入下面命令:
sudo apt install python-is-python3
3.安装Kconfiglib 13.2.0+
下载:
wget https://files.pythonhosted.org/packages/4e/d1/9e1a6ae13012dace94bb24e2b6500129c9a00e1625e2b2e994d936c01018/kconfiglib-13.2.0-py2.py3-none-any.whl
安装:
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
如果有提示有什么没有安装,先安装提示的插件,再执行这一条即可。
4.安装pycryptodome-3.7.3
下载:
wget https://files.pythonhosted.org/packages/c7/ff/1ca71a40eb69c89778396a30d399639d41473b09c36aff2b700d80dd94b9/pycryptodome-3.7
安装:
tar -zxf pycryptodome-3.7.3.tar.gz
cd pycryptodome-3.7.3
sudo python setup.py install
安装完成后界面会提示“Successfully installed pycryptodome-3.7.3”。
5.安装six
下载:
wget https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
安装:
sudo pip3 install six --upgrade --ignore-installed six
安装完成后界面会提示“Successfully installed six-1.12.0”。
6.安装ecdsa
下载:
wget https://files.pythonhosted.org/packages/a2/25/3bb32da623b39a27a07d194cd58e4540224421d924661de2e694304ae4fa/ecdsa-0.14.1-py2.py3-none-any.whl
安装:
sudo pip3 install ecdsa
安装完成后界面会提示“Successfully installed ecdsa-0.14.1”。(可能不是这个版本)
7. 安装scons
下载:
git clone https://github.com/SCons/scons.git -b rel_3.1.2
(如果没有安装git先安装git)
安装:
cd scons/
python src/script/scons.py
python bootstrap.py build/scons
cd build/scons
python setup.py install
cd -
scons build/scons
scons --version
cd ..
8.安装hcc_riscv32
将hcc_riscv32文件夹解压放到自己熟悉的位置(hcc_riscv32可以直接从我的gittee下载),然后记住该文件夹下bin文件的绝对路径,这里建议用pwd,将这个路径直接复制下来,例如:
我的路径在/home/lh/hcc_riscv32/bin,把这个路径复制下来
vim ~./bashrc
单击键盘 i 键
移动光标到最末行,输入下面一段文字;
export PATH=/home/lh/hcc_riscv32/bin:$PATH ①
将上面复制的内容粘贴到①中对应的位置
esc退出编辑模式,wq保存退出,输入source ~/.bashrc<回车>生效,riscv32-unknown-elf-gcc -v<回车>,查看版本信息,如下:
9.安装gn
下载:
https://repo.huaweicloud.com/harmonyos/compiler/gn/
安装:
tar -xf 压缩包名
sudo mv gn /usr/local/bin/
10.安装ninja
下载:
https://repo.huaweicloud.com/harmonyos/compiler/ninja/
安装:
tar -xf 压缩包名
sudo mv ninja /usr/local/bin/
11.安装hb
hb是HarmonyOS2.0里新增加的编译构建命令行工具。需要Python 3.7.4及以上版本的支持,建议安装3.8.x。源码在OpenHarmony\build\lite\hb这个目录下。
安装方法,可以直接使用pip安装打包好的工具。但是我们为了方便调试,我们直接使用源码进行单步调试。
python3 -m pip install --user ohos-build
12.安装csky-elfabiv2-tools
下载:
wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1619529111421/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
解压:
tar –xvf sky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
配置环境:
vim ~/.bashrc
打开文件,最后一行添加:
export PATH=存放路径/csky-elfabiv2-tools-x86_64-minilibc-20210423/bin:$PATH
环境变量生效:
source ~/.bashrc
13.安装gcc-csky-abiv2-linux
下载:
git clone https://gitee.com/alios-things/gcc-csky-abiv2-linux.git
环境变量配置:
vim ~/.bashrc
打开文件,最后一行添加:
export PATH=存放路径/gcc-csky-abiv2-linux-master/main/bin:$PATH
环境变量生效:
source ~/.bashrc
14.安装VScode
这个请自行解决
安装好Vscode之后,需要安装C/C++和CodeLLDB。
15.安装DevEco Studio Tool
DevEco Studio Tool集代码编译、调试和烧录与一体,显然,比原先的方式方便很多。
在开始安装之前,需要先关掉已经打开的VScode,然后再进行接下来的操作:
获取软件:
https://device.harmonyos.com/cn/develop/ide#download_release
在Ubuntu下下载这个压缩包,移到你的home目录下,比如我都放在了这个目录下:
然后在终端输入 unzip devicetool-linux-tool-3.0.0.300.zip进行解压,解压后,有一个.sh文件,就是这个:
接着在终端输入:chmod u+x devicetool-linux-tool-3.0.0.300.sh
设置文件权限,然后在终端输入:
sudo ./devicetool-linux-tool-3.0.0.300.sh
等待一段时间后,提示安装成功,并在/home/用户名/下生成了一个目录:Huawei,就是这个:
接下来,打开VScode,查看是否安装好了C/C++和CodeLLDB,如下:
接下来:
从VSIX安装:
在之前生成的Huawei目录下,找到.VSIX文件:
点击右上角的安装,稍微等待一会儿,就会出现这个东西:
点击这个图标,选择导入工程:
选择我们刚刚从git上下载的代码所在的目录,创建工程,比如,我这边下载的代码,放在下面这个地方:
完成之后,后面有弹框,选择确认就可以,之后就会出现这个:
选择打开,如下:
首次打开,先把ohos_config.json删除(如果是从我的账户git上下载的)。然后:
配置好这几个工具gn、ninja、llvm和gcc-csky-abiv2-linux(这几个工具在之前gitee上下载):
我以添加其中一个工具为例,演示一下,其他的几个一样的添加方法。就以ninja吧,请看下面图组:
完成之后上述操作之后,关掉所有的终端,关闭VScode,然后再打开VScode,
最后就是代码烧录了,按照下面步骤配置:
设置烧录选项,包括upload_port、upload_partitions和upload_protocol。
upload_port:选择烧录的串口。
upload_protocol:选择烧录协议,固定选择“xmodemx”。
upload_partitions:选择待烧录的文件名称。
启动烧录后,界面提示如下信息时,请按开发板上的RST按钮重启开发板。
重新上电后,启动烧录,界面提示SUCCESS信息时,表示烧录成功。
至此,环境搭建完毕,不出意外,应该W800、hi3861和BL602都可以使用(目前只测试了这三款),如果过程遇到什么困难,可以给我留言,谢谢。