鸿蒙OpenHarmony【轻量系统 编译】 (基于Hi3861开发板)

ops/2025/2/9 12:56:19/

编译

OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码]。

使用build.sh脚本编译源码

  1. 进入源码根目录,执行如下命令进行版本编译。

    ./build.sh --product-name name --ccache

    说明:  _name_为产品名称,例如Hi3516DV300、rk3568等。

  2. 检查编译结果。编译完成后,log中显示如下:

    post_process
    =====build name successful.

    编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。

    说明:  其他模块化编译操作,可参见编译构建指南。

想要详细了解OpenHarmony编译构建模块功能的开发者可参考编译构建指南。

前提条件

  • 已正确[安装库和工具集]。
  • 已正确[安装编译工具]。
  • 已正确[安装Hi3861特有工具])。
  • “Hello World”程序已编写完成。
  • 可正常登录Ubuntu环境。

操作步骤

鸿蒙开发>鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
在Ubuntu环境下进入源码根目录,执行如下命令进行编译:

  1. 设置编译路径。

    hb set
  2. 选择当前路径。

  3. 在hisilicon下选择wifiiot_hispark_pegasus并回车。

    说明:

    同样的开发板在适配不同的场景时,要采用的编译形态不同(即此处要选择的product不同),请参考[编译形态整体说明]。

编译形态整体说明

在编译过程中,需要根据实际需求选择不同的编译形态。单击下表中的链接可获取具体产品配置,从而了解其中差异。

表1 编译构建支持的产品列表

编译形态开发板主芯片内核系统类型
neptune100neptune100winnermicroliteos_mmini
rk3568rk3568rockchiplinuxstandard
rk3568_mini_systemrk3568rockchiplinuxstandard
bearpi_hm_microbearpi_hm_microstm32mp1xxliteos_asmall
bearpi_hm_nanobearpi_hm_nanohi3861v100liteos_mmini
wifiiot_hispark_pegasushispark_pegasushi3861v100liteos_mmini
ipcamera_hispark_arieshispark_arieshi3518ev300liteos_asmall
ipcamera_hispark_taurushispark_taurushi3516dv300liteos_asmall
ipcamera_hispark_taurus_linuxhispark_taurushi3516dv300linuxsmall
hispark_taurus_standardhispark_taurushi3516dv300linuxstandard
watchoshispark_taurushi3516dv300linuxstandard
hispark_phoenixhispark_phoenixhi3751v350linuxstandard
hispark_taurus_mini_systemhispark_taurushi3516dv300liteos_amini
hispark_pegasus_mini_systemhispark_pegasushi3861v100liteos_mmini
gr5515_sk_iotlink_demogr5515_skgr551xliteos_mmini
gr5515_sk_xts_demogr5515_skgr551xliteos_mmini
wifi_demodev_wifi_aasr582xliteos_mmini
xts_demodev_wifi_aasr582xliteos_mmini
display_demov200zrbes2600liteos_mmini
xts_demov200zrbes2600liteos_mmini
iotlink_demov200zrbes2600liteos_mmini
mini_distributed_music_playerv200zrbes2600liteos_mmini
niobe407niobe407stm32f4xxliteos_mmini
qemu_mini_system_demoarm_mps2_an386qemuliteos_mmini
qemu_csky_mini_system_demoSmartL_E802qemuliteos_mmini
qemu_cm55_mini_system_demoarm_mps3_an547qemuliteos_mmini
qemu_xtensa_mini_system_demoesp32qemuliteos_mmini
qemu_riscv_mini_system_demoricsv32_virtqemuliteos_mmini
qemu_ca7_mini_system_demoarm_virtqemuliteos_asmall
qemu_small_system_demoarm_virtqemuliteos_asmall
qemu_arm_linux_minqemu-arm-linuxqemulinuxstandard
qemu_arm_linux_headlessqemu-arm-linuxqemulinuxstandard
iotlink_democst85_wblinkchipsealiteos_mmini
dsoftbus_democst85_wblinkchipsealiteos_mmini
xts_democst85_wblinkchipsealiteos_mmini

图1 Hi3861编译设置图例  

搜狗高速浏览器截图20240326151450.png

  1. 执行编译。

说明:

  • 单独编译一个部件(例如hello),可使用“hb build -T 目标名称”进行编译。
  • 增量编译整个产品,可使用“hb build”进行编译。
  • 完整编译整个产品,可使用“hb build -f”进行编译。

此处以完整编译整个产品为例进行说明。

hb build -f
  1. 编译结束后,出现“build success”字样,则证明构建成功。

须知:  编译结果文件及编译日志获取路径:out/hispark_pegasus/wifiiot_hispark_pegasus。

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统>鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  


http://www.ppmy.cn/ops/28820.html

相关文章

Android Handler用法

Android Handler用法 为什么要设计Handler机制?Handler的用法1、创建Handler2、Handler通信2.1 sendMessage 方式2.2 post 方式 Handler常用方法1、延时执行2、周期执行 HandlerThread用法主线程-创建Handler子线程-创建Handler FAQMessage是如何创建主线程中Looper…

【嵌入式AI开发】轻量化卷积神经网络MobileNetV3详解

前言:对MobileNetv3网络结构进行详细的讲解。 相关回顾:【嵌入式AI开发】轻量化卷积神经网络Mnasnet(神经架构搜索)详解-CSDN博客 Mnasnet是介于MobileNetV2和MobileNetV3之间的一个算法,若想看懂MobileNetV3,最好先看懂Mnasnet再看MobileNetV3。 目录 MobileNetV3概述 …

哈夫曼编码--c语言实现

// 库函数 # include<stdio.h> # include<string.h> # include<stdlib.h>// 创建结构体 typedef struct {double weight; // 权重char s; // 字符int parent, lchild, rchild; // 定义父亲和左右孩子 }HTNode, *HuffmanTree;// 函数定义 void Select(Huffman…

Pointnet++改进即插即用系列:全网首发PPA反向残差移动块 |即插即用,提升特征提取模块性能

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入PPA,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步骤三

如何使用Go语言进行并发安全的数据访问?

文章目录 并发安全问题的原因解决方案1. 使用互斥锁&#xff08;Mutex&#xff09;示例代码&#xff1a; 2. 使用原子操作&#xff08;Atomic Operations&#xff09;示例代码&#xff1a; 3. 使用通道&#xff08;Channels&#xff09; 在Go语言中&#xff0c;进行并发编程是常…

OpenHarmony语言基础类库【@ohos.util.LightWeightMap (非线性容器LightWeightMap)】

LightWeightMap可用于存储具有关联关系的key-value键值对集合&#xff0c;存储元素中key值唯一&#xff0c;每个key对应一个value。 LightWeightMap依据泛型定义&#xff0c;采用轻量级结构&#xff0c;初始默认容量大小为8&#xff0c;每次扩容大小为原始容量的两倍。 集合中…

Java17的stream流里toList和.collect(Collectors.toList())有什么不同

源码分析: .collect(Collectors.toList()); public static <T>Collector<T, ?, List<T>> toList() {return new CollectorImpl<>(ArrayList::new, List::add,(left, right) -> { left.addAll(right); return left; },CH_ID);}在源码里能看到,使用…

leetcode1329--将矩阵按对角线排序

1. 题意 对角线排序 2. 题解 2.1 直接模拟 跟螺旋输出数组实际上有点像&#xff0c;这里需要枚举对角线数组的起始值。 class Solution { public:void sort_dia(int br, int bc, vector<vector<int>> &mat) {vector<int> tmp;int r mat.size();int…