OpenHarmony开发-系统烧录

news2024/11/20 0:38:38

本文详细介绍了烧录OpenHarmony系统到开发板的操作流程。从基础的硬件准备和软件环境设置入手,详细说明了如何配置开发环境、构建系统镜像等过程,详细描述了烧录过程中的关键步骤,以及如何使用专用工具将OpenHarmony系统镜像传输到开发板。同时,文章也列出了烧录过程中可能遇到的常见问题及其解决方案。


一、OpenHarmony介绍

Open Harmony 是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会 Open Harmony 项目群工作委员会负责运作。由全球开发者共建的开源分布式操作系统,具备面向全场景、分布式等特点,是一款“全(全领域)・ 新 (新一代)・ 开(开源)・ 放(开放)”的操作系统。

OpenHarmony的设计理念体现在其面向全场景、分布式的架构上,与传统操作系统相比,它在多个方面展现出显著优势:

特性OpenHarmony传统操作系统
适应性面向全场景,能够适用于从小型物联网设备到大型服务器的广泛设备。通常专注于特定领域,如个人电脑、手机或服务器。
架构分布式设计,可实现设备间的无缝协作和资源共享。主要基于单一设备,设备间互操作性有限。
开发模式开源社区驱动,全球开发者共同参与,快速迭代。可能是开源也可能是封闭源,开发和迭代速度不一。
系统更新支持模块化更新,可以针对系统的特定部分进行更新,而不需要重启整个系统。更新往往需要整个系统重启,影响设备使用。
安全性设计时考虑了分布式环境下的安全需求,支持多层次安全策略。安全性依赖于单个系统的设计,可能不适用于分布式环境。
资源利用率高效的资源管理,能在资源受限的设备上运行,优化了低功耗和性能。可能需要较多资源,不一定适合资源受限的环境。
用户体验通过分布式能力,实现跨设备的流畅体验和服务共享,为用户提供更连贯的操作体验。用户体验通常局限于单一设备,跨设备使用可能不便。

OpenHarmony的这些优势,使其成为一个非常有潜力的操作系统,能够满足未来技术发展的需求,特别是在物联网和跨设备协同工作方面。它不仅提供了技术上的创新,还通过开放源代码的方式,鼓励全球开发者共同参与,推动了生态系统的快速发展。


二、HCPAD-100开发板介绍

本文使用的开发板为鸿诚志远 HCPAD-100 ,是基于瑞芯微 RK3568 设计的一款人工智能开发板,板就四核 64位 A55 处理器,采用先进艺制程,主频高达 2.0GH2,该开发板适配 Open Harmony 标准系统,适用于智慧显示、视频类、工业自动化等终端产品和边缘计算网关类产品。


三、准备工作

1、硬件准备

  • HCPAD-100开发板(或RK3568开发板)
  • 双USB口数据线
  • 电源适配器等。

2、软件准备

  • 获取OpenHarmony的源代码。
  • 准备RK3568的烧录工具,例如RKDevTool。
  • 安装并配置开发环境,比如确保有适合的编译工具链。

四、烧录步骤

1、下载驱动和烧录工具

访问:Firefly | 让科技更简单,让生活更智能 (t-firefly.com)

下载RK驱动助手和AndroidTool烧录工具。

下载完成后进行安装。

① 安装RK驱动助手

双击安装程序,选择驱动安装,安装完成后电脑连接开发板时才可以识别。


② 安装AndroidTool烧录工具

选择安装路径安装,安装完成后打开如下,在没有连接设备时显示 No Devices Found

识别到连接设备时显示 Found One LOADER Device。


2、下载HDC命令工具

HDC (OpenHarmony Device Connector) 是为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc_std进行调试,该工具支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模拟器)进行连接调试通信。

① 获取HDC工具

官方或者社区链接下载均可,压缩包里包含windows和linux两个版本。

下载链接①:https://repo.huaweicloud.com/harmonyos/os/3.2-Release/ohos-sdk-windows_linux-public.tar.gz

下载链接②:developtools_hdc_standard: Device debug connector that provides the device connection capability and a command line tool | 设备调试连接器,提供了连接设备的能力,并提供了对外的命令行工具

下载链接③:访问:每日构建 | OpenHarmony CI ,在CICD的每日构建中找到ohos_sdk,选择最新版本下载即可。

下载完成后压缩包如下:

解压后进入目录ohos-sdk\windows,继续解压toolchains-windows开头的压缩包。

在解压后的toolchains-windows开头的文件夹\toolchains目录下,找到hdc。

当前目录命令行里可以直接调用hdc的命令。

比如,我们查看版本:

hdc -v


② 解压并配置环境变量

为了使用hdc方便,我们可以配置环境变量,把hdc的路径配置到path里,这样以后我们访问hdc就不需要切换路径了。

我们在使用查看版本的命令。

下面是hdc的一些常用命令:

命令描述
hdc list targets列出当前连接的所有目标设备。
hdc shell启动目标设备的shell终端。
hdc file send <local> <remote>将本地文件 <local> 传输到目标设备的 <remote> 位置。
hdc file recv <remote> <local>将目标设备的 <remote> 文件传输到本地 <local> 位置。
hdc install <package-path>在目标设备上安装应用程序包。
hdc uninstall <package-name>从目标设备卸载应用程序。
hdc start <package-name>启动目标设备上的应用程序。
hdc stop <package-name>停止目标设备上的应用程序。
hdc debug <package-name>启动目标设备上的应用程序并连接调试器。
hdc getprop获取目标设备的系统属性。
hdc setprop <key> <value>设置目标设备的系统属性。
hdc reboot重启目标设备。
hdc connect <device-ip>通过IP地址连接到远程设备。
hdc disconnect <device-ip>断开与远程设备的连接。
hdc shell ohos进入OpenHarmony设备的OHOS交互命令行。
hdc file pull <device-file> <local-dir>从目标设备下载文件到本地指定目录。
hdc file push <local-file> <device-dir>将本地文件上传到目标设备指定目录。

使用这些命令时,需要替换为具体的参数值。例如 <local> 需要替换为本地文件路径,<remote> 需要替换为目标设备上的文件路径,<package-path> 需要替换为应用包的路径,而 <package-name> 则是应用的名称或包名。


3、连接电脑和开发板

在开发板断电情况下按住烧录键,通过双USB数据线连接电脑和开发板,再给开发板通电。

如果操作正确,主板将进入USB烧录模式,同时,RK烧录工具识别到连接设备,显示 Found One LOADER Device,后面我们使用RK烧录工具进行系统烧录即可。


4、下载OpenHarmony镜像

访问:每日构建 | OpenHarmony CI ,在 CICD 的 每日构建 中找到 dayu200,选择最新版本下载即可。


5、烧录OpenHarmony系统

在镜像下载完成后,我们需要导入镜像配置到烧录工具中。右键Loader导入配置,选择解压的镜像包中的config.cfg文件。

导入新配置后,misc、sys-prod、chip-prod三个分区不存在镜像,烧写时不能勾选。

点击执行,出现下载完成,即表示烧录成功。

如果烧录失败,在工具界面右侧会用红色的字体显示烧录错误信息,更多出错信息查看 Log 目录下的文件。


6、重启设备

烧录完成后,断开连接并重启设备,完成系统启动。


五、常见问题及解决办法

1、Loader和Maskrom模式

在我们烧录 Open Harmony 系统到 RK3568 开发板中时,可能会遇到两种烧录模式(Loader模式和Maskrom模式)。具体是哪种模式,主要取决于是否已经烧录过固件,如果固件已被烧录,系统将进入Loader固件烧写模式。如果是新开发板,默认进入Maskrom模式。本文我使用的开发板是已经烧录过的,所以烧录工具直接显示的是Loader模式。

下面是两种模式的详细介绍:

特征Loader模式Maskrom模式
定义一种中间启动模式,用于加载和执行更高级别的固件,如U-Boot或其他引导程序。一种硬件级别的故障恢复模式,当设备无法通过正常方式启动时自动进入。
启动条件设备可以正常访问存储介质中的引导加载程序。设备无法从闪存(如NAND、eMMC)启动,可能由于引导部分损坏导致。
功能主要用于固件升级、调试和开发。可以通过USB或其他接口与PC通信,进行数据传输和命令执行。用于紧急恢复固件,只能通过特定的硬件接口(通常是USB)与PC通信,进行最低级别的数据传输。
使用场景开发者或维修技师需要对设备进行更新、调试或维修时使用。当设备无法正常启动,需要进行底层固件恢复时使用。
如何进入通常通过特定按键组合、命令或通过在启动过程中检测到特定条件自动进入。当设备检测不到有效的启动介质或启动文件损坏时自动进入;也可以通过硬件操作(如短接特定引脚)强制进入。
优势提供了一个灵活的接口,用于系统升级和调试,不需要设备处于最底层的故障状态。在设备软件严重损坏,无法通过Loader模式恢复时,提供了一个救命稻草,允许用户重新烧录启动程序。

Loader模式和Maskrom模式是两种常见的设备启动模式,尤其在与RK系列芯片(如RK3568)进行系统烧录时。这两种模式在功能、启动条件和使用场景上有所不同。

在使用烧录工具时,两种模式都可以进行烧写。


2、烧录完成后无法开机

  • 确保烧录的固件版本与设备兼容。
  • 重新检查烧录过程中的分区配置,确保没有错误的分区操作。
  • 如果可能,尝试重新烧录较早版本的固件,以判断是否为固件兼容性问题。
  • 检查设备的硬件状态,如内存和存储是否存在问题。

3、烧录工具未发现设备

要严格按照下述操作,才可以进入开发板的烧录模式。

在开发板断电情况下按住烧录键,通过双USB数据线连接电脑和开发板,再给开发板通电。

如果操作正确,主板将进入USB烧录模式,同时,RK烧录工具识别到连接设备,显示 Found One LOADER Device。


六、OpenHarmony烧录总结

烧录OpenHarmony系统到开发板上是一个充满挑战但又极具价值的过程。作为一个开源分布式操作系统,OpenHarmony代表了当前软件开发的最新趋势。无论是智能家居、可穿戴设备、车载系统还是工业自动化,OpenHarmony均提供了广泛的应用潜力。通过参与到OpenHarmony的开发和烧录中,开发者不仅能探索技术前沿,还能为构建全场景智能生活贡献力量,同时也是对开源社区的重要贡献。

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

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

相关文章

【Rust】环境搭建

Rust 支持很多的集成开发环境&#xff08;IDE&#xff09;或开发专用的文本编辑器。 官方网站公布支持的工具如下&#xff08;工具 - Rust 程序设计语言&#xff09; 本课程将使用 Visual Studio Code 作为我们的开发环境&#xff08;Eclipse 有专用于 Rust 开发的版本&#…

vue使用iview导航栏Menu activeName不生效

activeName不生效 一、问题一、解决方案&#xff0c; 一、问题 根据ivew官网的提示&#xff0c;设置了active-name和open-names以后&#xff0c;发现不管是设置静态是数据还是设置动态的数据&#xff0c;都不生效 一、解决方案&#xff0c; 在设置动态名称的时候&#xff0c…

docker笔记(一):安装、常用命令

一、docker概述 1.1docker为什么会出现 各种环境配置十分繁琐&#xff0c;每一个机器都需要配置环境&#xff0c;难免出现各种问题。 发布一个项目jar需要配置&#xff08;MySQL、redis、jdk、…&#xff09;&#xff0c;项目不能都带上环境安装打包&#xff1a; 传统&…

Redis实战篇-集群环境下的并发问题

实战篇Redis 3.7 集群环境下的并发问题 通过加锁可以解决在单机情况下的一人一单安全问题&#xff0c;但是在集群模式下就不行了。 1、我们将服务启动两份&#xff0c;端口分别为8081和8082&#xff1a; 2、然后修改nginx的conf目录下的nginx.conf文件&#xff0c;配置反向代…

前端:注册页面(后端php实现)

效果 代码 Regist.php <!-- 内部员工注册 --> <?php require_once get_db_conn.php; $conn db_connect();?> <?php //设置变量的默认值 if (!isset($_POST[UserID])) {$_POST[UserID] ; } if (!isset($_POST[Password])) {$_POST[Password] ; } if (!i…

数据字典

文章目录 一、需求分析二、表设计&#xff08;两张表&#xff09;三、功能实现3.1 数据字典功能3.1.1 列表功能3.1.2 新增数据字典3.1.3 编辑数据字典 3.2 数据字典明细3.2.1 列表功能3.2.2 新增字典明细3.2.3 编辑字典明细 3.3 客户管理功能3.3.1 列表功能3.3.2 新增用户3.3.3…

【最新可用】Claude国内镜像,可上传图片,可用Claude3全系模型(包括Pro版本的Opus)!亲测比GPT好用!

亲测可用&#xff0c;镜像地址&#xff1a;Claude 3 镜像 使用方法 访问镜像&#xff1a;Claude 3 镜像 2. 点击设置&#xff0c;配置授权码&#xff0c;关闭设置。这里免费赠送一个体验版的授权码 sk-SZcJyvx3RXRID624E2D3795578Df44C7Af03F2909a8f5eA0 即可发起对话啦&…

总包不足80w的高龄Android程序员,被面试官diss混得太差,网友狂吐槽……

有网友直言&#xff1a;90%的人一辈子一年也拿不到80万 有网友分析到&#xff1a;看面试情况&#xff0c;没什么希望就直接其实我觉得30岁年薪低于1000万的都是loser&#xff0c;你我都是 有网友说&#xff1a;这几年互联网行业极大发展&#xff0c;让互联网行业成为了明星行…

Python-VBA编程500例-033(入门级)

角色定位(Role Positioning)在编程中的实际应用场景主要体现在以下几个方面&#xff1a; 1、权限管理&#xff1a;在开发企业级应用或复杂的系统时&#xff0c;角色定位用于定义和管理用户的权限。例如&#xff0c;一个系统可能有管理员、普通用户、访客等不同角色&#xff0c…

CSS设置字体样式

目录 前言&#xff1a; 1.font-family&#xff1a; 2.font-style&#xff1a; 3.font-weight&#xff1a; 4.font-size&#xff1a; 5.font-variant&#xff1a; 6.font&#xff1a; 前言&#xff1a; 在网页中字体是重要的组成部分&#xff0c;使用好字体可以让网页更…

手动实现Tomcat底层机制+自己设计Servlet

文章目录 1.Tomcat整体架构分析自己理解 2.第一阶段1.实现功能2.代码1.TomcatV1.java 3.调试阶段1.阻塞在readLine导致无法返回结果 4.结果演示 3.第二阶段1.实现功能2.代码1.RequestHander.java2.TomcatV2.java 3.调试阶段1.发现每次按回车会接受到两次请求 4.结果演示 4.第三…

基于Spring Boot的简历系统设计与开发

基于Spring Boot的简历系统设计与开发 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 部分系统展示 前台首页界面 简历模板管理界面 用户管理界面 管理员登录界…

C++设计模式:策略模式(二)

1、定义与动机 定义一系列算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可互相替换&#xff08;变化&#xff09;&#xff0c;该模式使得算法可独立于使用它的客户程序&#xff08;稳定&#xff09;而变化&#xff08;扩展&#xff0c;子类化&#xff09; 在软…

pinia 的介绍和使用

pinia是vue2,vue2 尤其是vue3官方推荐的状态管理器&#xff0c;和vuex类似&#xff0c;但使用起来更为简单&#xff0c; 概念&#xff1a; state:定义响应式共享变量 getter&#xff1a;相当于计算属性 actions&#xff1a;相当于方法 npm安装 npm install pinia创建pinia ,注…

【Python】常见容器

Python容器 列表元组字符串集合字典 列表 定义方法&#xff1a;[元素1, 元素2, …] 列表一次可以存储多个不同数据类型的数据&#xff0c;支持嵌套。 例如&#xff1a; list1 ["张三", 33, True] print(list1) print(type(list1))list2 [list, "李四", …

企业数据资产评估的财报显性化及数据资产入表的主要应用场景

一、背景 近年来&#xff0c;企业“数据资产”的概念不断受政府/企业重视和建设.根据《数据资产评估指导意见》规定&#xff0c;数据资产评估是指资产评估机构及其资产评估专业人员遵守法律、行政法规和资产评估准则&#xff0c;根据委托对评估基准日特定目的下的数据资产价值…

Halcon的HWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)

Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍&#xff08;包括绘制ROI&#xff09; 文章目录 Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍&#xff08;包括绘制ROI&#xff09;一、 引入hSmartWindowControl控件二、 编写打开图像功能三、 编写绘制RO…

【热门话题】Stable Diffusion:本地部署教程

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Stable Diffusion&#xff1a;本地部署教程一、引言二、环境准备1. 硬件配置2. …

Java多态练习2

设计金融产品类Financial&#xff0c;属性包括产品名称、产品介绍、起投金额、产品期限&#xff08;int&#xff09;、年化收益&#xff08;百分数&#xff09;&#xff1b;方法包括发布、截止、投资。 设计金融产品类子类&#xff1a; 基金产品Fund&#xff0c;继承金融产品类…

【JAVASE】带你了解面向对象三大特性之一(继承)

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来…