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

news2024/9/23 11:18:48

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.鸿蒙南向开发方向

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

连续上榜!Coremail连续十一次入选《中国网络安全行业全景图》

4月12日,国内专业权威咨询机构——安全牛,正式发布第十一版《中国网络安全行业全景图》(以下简称“全景图”)。该全景图包含了16项一级安全分类,108项二级安全分类,共收录454家网络安全厂商。 Coremail作为…

【保姆级】2024年OnlyFans订阅指南

OnlyFans是一个独特的社交媒体平台,它为创作者和粉丝提供了一个互动交流的空间。通过这个平台,创作者可以分享他们的独家内容,而粉丝则可以通过订阅来支持和享受这些内容。如果你对OnlyFans感兴趣,并希望成为其中的一员&#xff0…

D365开发-在视图按钮的js里,引用别的js里的公共方法

公共方法写法: "use strict"; var JJMC window.JJMC || {}; JJMC.SamMCommon JJMC.SamMCommon || {}; (function () { this.cloneRecord function (excludeAttrbuteNames){ / } }).call(JJMC.SamMCommon); 然后在需要调方法的command里面,之…

PNPM 8管理Node版本,卸载了旧版本Node找不到PNPM

前言 用 pnpm env 来管理 node 的版本,安装了新版本之后,卸载了之前的旧版本,调用 pnpm 报错 异常截图 解决方式 从终端获取报错文件到路径,进入编辑修改错误的 node bin 路径为正确的 node 启动路径即可也就是修改 "/Use…

vite+vue3+antDesignVue 记录-持续记录

记录学习过程 持续补充 每天的学习点滴 开始时间2024-04-12 1,报错记录 (1)env.d.ts文件 解决方法: 在env.d.ts文件中添加以下代码(可以看一下B站尚硅谷的讲解视频) declare module *.vue {import { Defi…

SpringBoot基于RabbitMQ实现消息延迟队列方案

知识小科普 在此之前,简单说明下基于RabbitMQ实现延时队列的相关知识及说明下延时队列的使用场景。 延时队列使用场景 在很多的业务场景中,延时队列可以实现很多功能,此类业务中,一般上是非实时的,需要延迟处理的&a…

宠物品牌出海 丨战略布局这样做让你爆单不停

宠物用品市场在电商领域增长迅速。面对国内市场竞争激烈,同质化严重,不少宠物用品公司开始寻求新的市场增长点,将目光转向国外市场。本文将探讨宠物品牌海外扩张的商机和策略,以便帮助其他公司应对挑战,抓住国际市场的…

利用国产库libhv动手写一个web_server界面(二)

目录 一、配置参数解析与响应 1.读取参数 2.设置参数 3.恢复默认参数 二、整体的界面实现以及交互效果 三、关于yaml文件乱码问题解决 四、参考文章 一、配置参数解析与响应 使用cJSON解析库,解析接收到的JSON数据字段,区别接收到的配置参数是请…

数据结构--选择排序

1、选择排序 1.1 基本认识 1.1.1 基本概念 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n) 的时间复杂度。 1.1.2 算法步骤 (1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起…

【VTKExamples::Meshes】第十期 Decimation

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例Decimation,并解析接口vtkDecimatePro,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示:部署成功,访问登录页面登录也成功,强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图,再下面添加这条配置信息 location / {try_file…

macos 查看 远程服务器是否开放某个端口

想要使用mac查看远程服务器某个端口是否开发&#xff0c;可通过 nc 命令&#xff0c;如下&#xff1a; nc -zv <服务器IP> <端口号>如果该端口开发&#xff0c;结果为&#xff1a;succeeded! Connection to <服务器IP> port <端口号> [类型] succeed…

Jetson TX2刷机踩坑实录

刷机前准备 进行跳线 从右往左2号与3号跳线进行刷机 在主机&#xff08;非小车&#xff09;上安装ubuntu系统&#xff0c;用于刷机 安装虚拟机时&#xff0c;遇到无法自适应屏幕的问题&#xff1a; 点击屏幕下方安装vmtools的按钮&#xff1a; 生成了一个DVD文件&#xff1…

EasyImage2.0 简单图床开源 多功能 简单易用图床系统源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 支持API 支持仅登录后上传 支持设置图片质量 支持压缩图片大小 支持文字/图片水印 支持设置图片指定宽/高 支持上传图片转换为指定格式 支持限制最低宽度/高度上传 支持上传其他文件格…

Mac 软件清单

~自留备用~ Macbook用了几年之后, 512G的内置硬盘有些紧张了, 这几天总是提示空间不足, 就重装了下系统, 重装之后竟然不记得有些软件的名字和下载链接, 特此记录 Office 办公套件 直接从微软官网下载Office 安装包https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F…

在Docker里面修改mysql的密码(8.0以上版本)

介绍 我们在阿里或者华为的服务器上安装了mysql而且还公开了端口3306恰好你创建的容器的端口也是3306;那么我建议你修改mysql的密码,而且越复杂越好,因为我就被黑客给攻击过 修改密码 首先我们要启动好mysql容器 进入容器内部 **docker exec -it mysql bash ** 登入初始…

视频号正式推出电商项目,不需要自己直播,也能变现成功!

大家好&#xff0c;我是电商笨笨熊 视频号推出电商项目&#xff0c;这一举动又成了电商圈的热谈&#xff1b; 作为一个不需要自己直播也能卖货的变现方式&#xff0c;对于普通人确实是一个风口&#xff0c;解决了众多玩家想要利用直播变现但又没有相关经验&#xff0c;没有粉…

Testng测试框架(6)--@Factory动态地创建测试类的实例

工厂允许您动态地创建测试。例如&#xff0c;假设您想创建一个测试方法&#xff0c;该方法将多次访问网站上的某个页面&#xff0c;并且您希望使用不同的值来调用它。 public class TestWebServer {Test(parameters { "number-of-times" })public void accessPage(…