第三部分:编译环境安装
一、配置编译环境A. 下载安装ubuntu虚拟机;(具体过程第四部分说明)
B. 安装python;
1. 查看Ubuntu自带python版本;
python3 –version
2. 如果版本低于python3.7,请按照如下步骤重新安装。
Ubuntu 18.0环境下:
sudo apt-get install python3.8
Ubuntu 20.0环境下:
a) 安装依赖包
sudo apt update && sudo apt install software-properties-common
b) 添加deadsnakes PPA 源。
sudo add-apt-repository ppa:deadsnakes/ppa
c) 安装python3.8
sudo apt upgrade && sudo apt install python3.8
3. 设置python和python3软链接为python3.8。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
4. 安装并升级Python包管理工具(pip3),任选如下一种方式。
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
5. 安装gn
下载地址:https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
解压:
mkdir ~/gn
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
6. 安装ninja
下载地址:https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
解压:
tar -xvf ninja.1.9.0.tar -C ~/
7. 安装llvn
下载地址:
https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
解压:
tar -zxvf llvm.tar.gz -C ~/
8. 装hb
A. python3 -m pip install --user ohos-build
B. 配置环境
打开配置文件:
vim ~/.bashrc
进行修改,在最后一行后面加入:
export PATH=~/ninja:$PATH
export PATH=~/llvm/bin:$PATH
export PATH=~/.local/bin:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
按下Esc,输入:wq!按下回车保存并退出;
执行如下命令更新环境变量。
source ~/.bashrc
9. apt安装全部依赖的工具
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils
二、安装编译工具1. 安编译依赖基础软件(仅Ubuntu 20+需要)
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
2. 安装Sconsa) 输入命令:
python3 -m pip install scons
b) 查看是否安装成功(显示正确版本号即成功):
scons -v
3. 安装python模块
4. 安装python模块setuptools
pip3 install setuptools
5. 安装GUI menuconfig工具(Kconfiglib)
sudo pip3 install kconfiglib
6. 安装pycryptodome
sudo pip3 install pycryptodome
7. 安装six
sudo pip3 install six --upgrade --ignore-installed six
a) 安装ecdsa
sudo pip3 install ecdsa
8. 安装编译链工具
下载地址:https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
解压安装包:
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
设置环境变量:
打开配置文件:vim ~/.bashrc
在最后一行加上:export PATH=~/gcc_riscv32/bin:$PATH
保存退出后执行命令使变量生效:source ~/.bashrc
查看是否安装成功:riscv32-unknown-elf-gcc -v
三、将vscode代码编写、烧录环境和ubuntu编译环境结合1、 构建共享文件夹:
a 配置共享文件夹路径
b 安装VMware tool工具
开机过程中点击安装VMware tool
从DVD中获取压缩包解压到主目录下:
打开文件夹进入终端输入:sudo ./vmware-install.pl
根据提示第一个输入yes,其他回车即可安装成功
c打开计算机下的mnt/hfg可以看到共享文件夹
2、 vscode使用ssh连接ubuntu
a 在虚拟机终端上输入:service ssh start 开启ssh远程连接;
b在vscode下的终端输入ssh user@ip 其中user表示虚拟机用户名,ip表示虚拟机ip地址,如:ssh jltf@127.0.0.1
c 连接成功后可以在vscode终端控制虚拟机,不必频繁切换环境;
四、安装串口工具(用于连接开发板)下载地址:http://www.hihope.org/download/download.aspx?mtt=8
下载后点击安装包即可。
第四部分:虚拟机安装流程
一、下载
VMware下载地址:https://www.vmware.com/products/workstation-pro.html
Ubuntu镜像:http://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu-16.04.6-desktop-i386.iso
二、安装VMware
1、打开VMware安装包
2、点击下一步
3、点击接受许可->下一步
4、修改安装路径,点击下一步
安装过程出错参考:
https://jingyan.baidu.com/article/27fa7326b487e646f8271fc2.html
三、添加虚拟机
1、打开VMware
2、选择创建性新的虚拟机
3、选择自定义,点击下一步
4、选择稍后安装操作系统,点击下一步;
5、选择Linux系统的Ubuntu,之后一直点击下一步即可;
6、选择安装操作系统的路径
四、安装操作系统
1、选择虚拟机的CD/DVD为下载的Ubuntu路径;
2、点击运行,打开虚拟机;
3、选择语言,点击安装系统;
4、选择键盘类型;
5、点击继续;
6、点击现在安装;
7、选择时区,点击继续;
8、填写计算机信息,点击继续进行安装,等待一段时间即可;
9、重新打开虚拟机便进入操作桌面,第一次打开时间会有点长。
第五部分:开发板编译烧录过程
前提:安装好开发板编译环境(ubuntu)和烧录环境(vsCode+devEco tool);
第一步:获取源码;
下载地址:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
建议不用使用镜像方式获取,因为获得的压缩包解压后有可能丢失文件,导致编译如图错误
code-2.0-canarydevicehisiliconhispark_pegasussdk_liteosthird_partyu-boot-v2019.07u-boot-v2019.07lib下的SConscript文件丢失;
第二步:使用tools插件打开源码并配置项目参数;
1 打开对应得文件夹
2 配置开发板类型(hi861)和源码来源(hb);
3 配置项目参数Upload_port(根据自己的串口填写),开发板类型upload_protocol(hi861),协议upload_partitions(partition:hi3861_app),用于之后的烧录;
第三步:编译;
使用ssh连接或者直接到ubuntu下编译,如图顺序输入命令
hb set
.
hb build
显示成功即可。
第三步:烧录;
点击tools下的烧录按钮;
终端显示如图画面时,按下开发板上的RST键复位;
如图表示烧录成功
第六部分 跑第一个程序
一、 修改文件解决代码不能正确检索跳转问题
刚刚打开的项目.c文件会出现如图错误,虽然不会影响项目正确性,但为了可以方便正确编写代码,可以进行以下配置
修改以下三个文件:
修改.vscode/c_cpp_properties.json:
{
"configurations": [
{
"name": "!!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT"
},
{
"name": "Win32-debug",
"includePath": [
"${workspaceFolder}/**"
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"${workspaceFolder}/**"
},
"defines": [
""
],
"intelliSenseMode": "clang-x64",
"compilerArgs": [
""
}
],
"version": 4
}
.vscode/extensions.json:
{
}
.vscode/settings.json
{
"C_Cpp.default.browse.path": [
"${workspaceFolder}/**"
],
"C_Cpp.default.includePath": [
"${workspaceFolder}/**"
],
}
等待一段时间,等系统检索报错便会消失。
二、 编写代码
在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
在hello.c中添加内容
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("[DEMO] Hello world.n");
}
SYS_RUN(HelloWorld);//说明执行那个函数
在my_first_app下的BIULD.gn中填写编译所需信息(目标、源文件、头文件路径)
static_library("myapp") {//目标 sources = [ "hello.c"//源文件 include_dirs = [ "//utils/native/lite/include"//头文件路径 } |
填写my_first_app同级目录下的BIULD.gn
import("//build/lite/config/component/lite_component.gni")
lite_component("app") { features = [ "my_first_app:myapp",、 } |
三、 执行
依次执行编译、烧录,最后通过调试按钮查看串口信息,显示成功。
第七部分:后续练习提示
基于Hi3861开发板的具体功能实现,已经有很多前辈有详细教程和很多可以直接使用的代码,我们认为在遵循开源使用协议的情况下,后续的相关练习可以直接使用和引用网上公开的相关代码,会比自己重头去摸索效率高很多,我们很早前也有一些基于Hi3861练习的作品和文档可以供参考。
由于IDE工具版本、OpenHarmony版本的变化升级等,早期的入门流程或者一些教材不一定适用;本教程是根据HarmonyOS官方指导文档,于2021年7月上旬、中旬全流程团队亲测的过程,可以供后续学习者直接引用或者参考。
模仿练习和体验是学习成长最快的方式,我们相信开发者只要完成本流程,全面体验南向开发的IDE各项功能,并参照原有的Hi3861已经实现的各项功能去进行练习,很快可以进入独立创新练习与开发阶段。
本文档教程,有不完善和不对的地方,欢迎指正。