Hi3861 开发环境
最好参考官方文档:Hi3861开发环境这里做下记录
(1)安装编译依赖基础软件(仅 Ubuntu 20+需要)执行以下命令进行安装:
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev
复制代码
(2)安装 Scons 运行如下命令,安装 SCons 安装包。
python3 -m pip install scons
复制代码
运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
图 1 SCons 安装成功界面,版本要求 3.0.4 以上
(3)安装 python 模块运行如下命令,安装 python 模块 setuptools。
(4)安装 GUI menuconfig 工具(Kconfiglib),建议安装 Kconfiglib 13.2.0+版本,任选如下一种方式。
命令行方式:
sudo pip3 install kconfiglib
复制代码
(5)安装 pycryptodome,任选如下一种方式。
安装升级文件签名依赖的 Python 组件包,包括:pycryptodome、six、ecdsa。安装 ecdsa 依赖 six,请先安装 six,再安装 ecdsa。
命令行方式:
sudo pip3 install pycryptodome
复制代码
(6)安装 six,任选如下一种方式。
命令行方式:
sudo pip3 install six --upgrade --ignore-installed six
复制代码
(7)安装 ecdsa,任选如下一种方式。
命令行方式:
(8)安装 gcc_riscv32(WLAN 模组类编译工具链)下载以下交叉编译工具链:交叉编译工具链下载
请先执行以下命令将压缩包解压到根目录:
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
复制代码
编辑.bashrc 文件
将以下命令拷贝到.bashrc 文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
复制代码
生效环境变量。
Shell 命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
riscv32-unknown-elf-gcc -v
复制代码
源码目录 下载完代码后,大家可以进入代码目录
这里我们选择 wifiiot_hispark_pegasus
之后输入:
开始编译
编译后的固件
ls out/hispark_pegasus/wifiiot_hispark_pegasus/
复制代码
最后给大家解释一下 hb
hb 方式
hb 是 OpenHarmony 的命令行工具,用来执行编译命令。以下对 hb 的常用命令进行说明。
hb set
设置要编译的产品
hb set -h
usage: hb set [-h] [-root [ROOT_PATH]] [-p]
optional arguments:
-h, --help show this help message and exit
-root [ROOT_PATH], --root_path [ROOT_PATH]
Set OHOS root path
-p, --product Set OHOS board and kernel
复制代码
hb env
查看当前设置信息
hb build
编译产品、部件、模块或芯片解决方案。
hb build -h
usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [-cpu TARGET_CPU] [--dmverity] [--tee]
[-p PRODUCT] [-f] [-n] [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] [--compact-mode]
[--gn-args GN_ARGS] [--keep-ninja-going] [--build-only-gn] [--log-level LOG_LEVEL] [--fast-rebuild]
[--device-type DEVICE_TYPE] [--build-variant BUILD_VARIANT]
[component [component ...]]
positional arguments:
component name of the component, mini/small only
optional arguments:
-h, --help show this help message and exit
-b BUILD_TYPE, --build_type BUILD_TYPE
release or debug version, mini/small only
-c COMPILER, --compiler COMPILER
specify compiler, mini/small only
-t [TEST [TEST ...]], --test [TEST [TEST ...]]
compile test suit
-cpu TARGET_CPU, --target-cpu TARGET_CPU
select cpu
--dmverity enable dmverity
--tee Enable tee
-p PRODUCT, --product PRODUCT
build a specified product with {product_name}@{company}
-f, --full full code compilation
-n, --ndk compile ndk
-T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]]
compile single target
-v, --verbose show all command lines while building
-shs, --sign_haps_by_server
sign haps by server
--patch apply product patch before compiling
--compact-mode compatible with standard build system set to false if we use build.sh as build entrance
--gn-args GN_ARGS specifies gn build arguments, eg: --gn-args="foo="bar" enable=true blah=7"
--keep-ninja-going keeps ninja going until 1000000 jobs fail
--build-only-gn only do gn parse, do not run ninja
--log-level LOG_LEVEL
specifies the log level during compilationyou can select three levels: debug, info and error
--fast-rebuild it will skip prepare, preloader, gn_gen steps so we can enable it only when there is no change
for gn related script
--device-type DEVICE_TYPE
specifies device type
--build-variant BUILD_VARIANT
specifies device operating mode
复制代码
hb build 后无参数,会按照设置好的代码路径、产品进行编译,编译选项使用与之前保持一致。-f 选项将删除当前产品所有编译产品,等同于 hb clean + hb build.
hb build {component_name}:基于设置好的产品对应的单板、内核,单独编译部件(e.g.:hb build kv_store)。
hb build -p ipcamera@hisilicon:免 set 编译产品,该命令可以跳过 set 步骤,直接编译产品。
在 device/board/device_company 下单独执行 hb build 会进入内核选择界面,选择完成后会根据当前路径的单板、选择的内核编译出仅包含内核、驱动的镜像。
hb clean
清除 out 目录对应产品的编译产物,仅保留 args.gn、build.log。清除指定路径可输入路径参数:hb clean out/board/product,默认将清除当前 hb set 的产品对应 out 路径。
hb clean
usage: hb clean [-h] [out_path]
positional arguments:
out_path clean a specified path.
optional arguments:
-h, --help show this help message and exit
复制代码
评论