写点什么

“程”风破浪的开发者|Hi3861 开发环境搭建

作者:鸿蒙之旅
  • 2022-10-29
    广东
  • 本文字数:2640 字

    阅读完需:约 9 分钟

“程”风破浪的开发者|Hi3861开发环境搭建

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
复制代码


运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。


scons -v
复制代码



图 1 SCons 安装成功界面,版本要求 3.0.4 以上


(3)安装 python 模块运行如下命令,安装 python 模块 setuptools。


pip3 install 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,任选如下一种方式。


命令行方式:


sudo pip3 install ecdsa
复制代码


(8)安装 gcc_riscv32(WLAN 模组类编译工具链)下载以下交叉编译工具链:交叉编译工具链下载


请先执行以下命令将压缩包解压到根目录:


tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~
复制代码


编辑.bashrc 文件


vim ~/.bashrc
复制代码


将以下命令拷贝到.bashrc 文件的最后一行,保存并退出。


export PATH=~/gcc_riscv32/bin:$PATH
复制代码


生效环境变量。


source ~/.bashrc
复制代码


Shell 命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。


riscv32-unknown-elf-gcc -v
复制代码



源码目录 下载完代码后,大家可以进入代码目录


hb set
复制代码


这里我们选择 wifiiot_hispark_pegasus



之后输入:


hb build -f
复制代码


开始编译



编译后的固件


 ls out/hispark_pegasus/wifiiot_hispark_pegasus/
复制代码



最后给大家解释一下 hb

hb 方式

hb 是 OpenHarmony 的命令行工具,用来执行编译命令。以下对 hb 的常用命令进行说明。


hb set


设置要编译的产品


hb set -husage: 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 set 后无参数,进入默认设置流程

  • hb set -root dir 可直接设置代码根目录

  • hb set -p 设置要编译的产品


hb env


查看当前设置信息


hb build


编译产品、部件、模块或芯片解决方案。


hb build -husage: 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 cleanusage: hb clean [-h] [out_path]
positional arguments: out_path clean a specified path.
optional arguments: -h, --help show this help message and exit
复制代码


发布于: 刚刚阅读数: 8
用户头像

鸿蒙之旅

关注

还未添加个人签名 2022-10-26 加入

还未添加个人简介

评论

发布
暂无评论
“程”风破浪的开发者|Hi3861开发环境搭建_OpenHarmony_鸿蒙之旅_InfoQ写作社区