OpenHarmony轻量系统开发【3】代码编译和烧录

3.1源码目录

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

这里重点介绍几个比较重要的文件夹:

1 vendor文件夹

该文件夹存放的是厂商相关的配置,包括组件配置、HDF相关配置,代码目录如下:

可以看到有hisilicon文件夹,下面有Hi3516DV300、hispark_aries等,其中hi3861开发板对应的是hispark_pegasus
里面有如下文件:

其中比较重要的是 config.json配置文件,里面定义了内核类型,和使用了哪些子系统。具体我们后再做具体解读。

2 device文件夹

该文件夹存放的是具体开发板、芯片相关的源码。这里OpenHarmony又分为SoC和Board两大块。其中SoC里面是具体芯片相关的代码、包括该芯片相关的驱动; board是开发板相关的代码,具体跟开发板相关。
之所以这样设计,是为将SoC和board区分出来,实现soc相关代码可复用。因为后续可能存在一个soc多个board的情况。

其中,润和的WiFi IoT开发板对应的soc是 hi3861v100文件夹,对应的board是 hispark_pegasus

3 arch文件夹

该文件夹存放具体芯片架构的代码,文件夹路径:
kernel/liteos_m/arch
代码路径如下:

于是OpenHarmony实现了ARCH(架构)、soc(芯片)、board(开发板)3层隔离,降低了代码的耦合性。设计比较合理。

4 applications文件夹

该文件夹存放应用相关代码,后续我们编写代码需要在该文件夹下添加。

3.2编译

轻量系统采用hb编译,在代码根目录下执行
hb set
首次输入可以会提示需要输入路径,直接输入 . (英文的点号)即可

这里我们选择 wifiiot_hispark_pegasus
之后输入:
hb build -f
开始编译
看到如下即表示编译成功:

编译出来的固件位于:out/hispark_pegasus/wifiiot_hispark_pegasus/

其中,Hi3861_wifiiot_app_allinone.bin 是我们要烧录到开发板的。

3.3烧录

(1)基于vscode方式烧录

OpenHarmony可以基于vscode的方式进行烧录,但是该方式比较复杂,这里暂时不推荐。
如果读者感兴趣可以参考:
https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-steps-hi3861-burn-0000001190053075

(2)基于hiburn工具烧录

推荐读者采用此方式,比较简单便捷。
首先下载HiBurn工具,下载链接:
https://harmonyos.51cto.com/resource/29

使用USB线连接到3861开发板,如图:

(1)打开HiBurn工具,
(2)点击select file 选择要下载的Hi3861_wifiiot_app_allinone.bin文件,
(3)勾选上 Auto burn选项
(4)单击 Connect按钮

(5)此时按下开发板上面的 RST 复位按钮,即可看到程序已经开始下载:

(6)注意下载后,我们点击disconnect按钮,不然我们再次复位会重新烧录。我们也可以关闭掉 HiBurn 程序。

3.4运行效果

烧录完后,我们可以打开串口工具,查看串口打印:

这是因为默认打开了xts测试,开发板跑起来系统后会做xts测试。
看到如下提示,则表示xts测试通过

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/545701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA pom.xml显示灰色并被划线

在使用 IDEA 进行开发的过程中,有时候会遇到 pom.xml 显示灰色并被划线的情况,如下图: 这一般是因为该文件被 Maven 忽略导致的,可以进行如下操作恢复: 设置保存后,可以看到 pom.xml 恢复了正常&#xff1a…

github,raw.githubusercontent.com 等网址登陆不上不去的设置方法

目录 提示域名解析错误: 出现的现象: 解决办法:修改host host改完不生效 解决方案1: 解决方案2: 提示域名解析错误: 出现的现象: 登陆github,raw.githubusercontent.com 等网…

解读《算者生存:商业分析的方法与实践》:构建企业经营分析框架的必备指南

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

LOCK、ACC、ON、START的含义及正确使用

背景 前段时间在开发一个远程锁车的需求时,讨论到了电源状态的场景。由于初次进入汽车电子行业,对很多基础概念不清晰。当时听主机厂商的同事介绍一遍后,并不是很理解。于是趁着空闲,给自己充充电,也希望能够帮到有需…

前端打包webpack vite

起步 | webpack 中文文档 | webpack中文文档 | webpack中文网 npm run build 1webpack: mkdir webpack-demo cd webpack-demo npm init -y npm install webpack webpack-cli --save-dev vite : 快速上手 | Vue.js

Netty学习——实战篇2 NIO 群聊系统(简单版) 备份

需求: 1、编写一个NIO群聊系统,实现服务端和客户端之间数据简单通讯(非阻塞) 2、实现多人群聊 3、服务端:可以监测用户上线、离线、并实现消息转发功能。 4、客户端:通过channel可以无阻塞发送消息给其他所有用户,同时…

【位运算】3097. 或值至少为 K 的最短子数组 II

本文涉及知识点 位运算 LeetCode3097. 或值至少为 K 的最短子数组 II 给你一个 非负 整数数组 nums 和一个整数 k 。 如果一个数组中所有元素的按位或运算 OR 的值 至少 为 k ,那么我们称这个数组是 特别的 。 请你返回 nums 中 最短特别非空 子数组 的长度&…

AI大模型语言开源大语言模型完整列表

开源大语言模型完整列表 Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 所谓"语言模型",就是只用来处理语言文…

游戏开发者必看:Perforce Helix Core 的功能特点及游戏开发中的常用工具、典型用例介绍

「不出海,即出局」随着全球化的加速发展,企业出海已成燎原之势。日前,2024 亚马逊云科技出海全球化论坛在深圳成功举办。龙智携手 Perforce 亮相游戏行业展区,展示了Perforce Helix Core如何与主流游戏开发引擎高效集成&#xff0…

关于《CS创世 SD NAND》的技术学习分享

最近发现一个好玩的东西《CS创世 SD NAND》,带大家一起体验一下。 本文引用了部分厂家产品资料及图像,如有侵权,请及时联系我删除,谢谢。 《CS创世 SD NAND》官方网站:http://www.longsto.com/ 什么是CS创世 SD NAND呢…

c++的学习之路:4、入门(3)

摘要 本章将介绍一下auto、for和指针空值,文章末附上入门的所有代码。 目录 摘要 一、auto 二、for 三、指针空值 四、代码 五、思维导图 一、auto 这个关键字是c提出的,可以自动识别变量的类型,可以看出下方图片,auto自…

【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩

文章目录 背景介绍 初始代码 优化代码 分析和应用 总结 背景介绍 在一个嵌入式软件开发项目中,有一个使用MATLAB Function编写的算法模块,功能是从一个较大的数组中提取一段数据,然后求均值输出,示例如下: 初始代…

OpenHarmony实战开发-如何实现图片缩放效果。

介绍 图片预览在应用开发中是一种常见场景,在诸如QQ、微信、微博等应用中均被广泛使用。本模块基于Image组件实现了简单的图片预览功能。 使用说明: 双指捏合对图片进行缩放双击图片进行图片的大小切换,在放大状态下,双击可恢复…

腾讯EdgeOne产品测评体验——多重攻击实战验证安全壁垒:DDoS攻击|CC压测|Web漏洞扫描|SQL注入

腾讯EdgeOne产品测评体验——实战验证安全壁垒:DDoS攻击|CC压测|Web漏洞扫描|SQL注入 写在最前面一、产品概述1.1 什么是边缘安全加速平台 EO?1.2 EdgeOne产品功能 二、准备工作2.1 选择:NS(Name Server)接入模式或 CN…

【架构-13】云原生架构

云原生架构产生背景? (1)大量资源被占用且难以分享,上云后,云厂商提供统一的IaaS能力和云服务。 (2)提供极致性能的云原生算力。 (3)集成服务,构建管理数据、…

如何在CentOS本地部署FastDFS文件系统并实现无公网IP远程上传下载内网文件

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

C语言学习笔记之操作符篇

目录 算术运算符 移位操作符 整型在内存中的存储(补充知识) ​编辑左移操作符 右移操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 && 与 || 的计算特点 条件操作符 逗号表达式 下标引用操作符 函…

负载均衡(理解/解析)

目录 什么是负载均衡 应用场景 网络服务和应用: 云计算和虚拟化: 负载均衡分类 硬件负载均衡器 软件负载均衡器 部署方式 硬件部署: 软件部署: 云部署: 路由模式: 算法实现 轮询法(Round R…

MacOS - 程序坞,但图标消失不见了 但是还能用

如图 强迫症难受死 重启什么的都尝试了。不好使! 差点重装系统。 经验证 改名字可以修复。 但是系统的比如启动台 也显示不出来 全网好使的方案 在“应用程序”中打开“终端” 输入命令如下:(注意:需要 sudo 权限&#xff0…

【CLR】《Cyclical Learning Rates for Training Neural Networks》

WACV-2017 IEEE Winter Conference on Applications of Computer Vision 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 CIFAR-10 and CIFAR-1005.3 ImageNet 6 Conclusion(o…