鸿蒙南向开发环境的搭建(OpenHarmony)

news2024/12/26 11:42:49

在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual StudioCode进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。

在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco DeviceTool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。

本章节介绍开发所需Windows环境的搭建方法。

一.搭建Windows环境

系统要求

Windows 10 64位系统,推荐内存8GB及以上,硬盘100GB及以上。

建议Windows和Ubuntu系统上安装的DevEco Device Tool为最新版本,且版本号需相同。

说明:

下面以4.0 Release版本的IDE进行说明,不同版本的IDE在支持的特性和操作上略有差别,具

体情况可参考该工具的使用指南。

操作步骤

1. 下载DevEco Device Tool最新Windows版本软件包。
2. 解压DevEco Device Tool压缩包,双击安装包程序,单击下一步进行安装。
3. 请详细阅读以下界面的用户协议和隐私声明,需勾选“我接受许可证协议中的条款”后,才能继续下一步的安装。
4. 设置DevEco Device Tool的安装路径,请注意安装路径不能包含中文字符,不建议安装到C盘目录,单击下一步。

5. 根据安装向导提示,安装依赖的工具。

其中,

  • 安装:按照默认路径及参数直接安装。

  • 自定义安装:安装前可以自行修改安装路径及其他设置参数。

安装完成后,各软件状态显示为OK。

6. 依赖的工具安装完成后,单击安装,开始安装DevEco Device Tool。

7. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,单击完成,关闭DevEco Device Tool安装向导。

8. 打开Visual Studio Code,进入DevEco Device Tool工具界面。至此,DevEco Device ToolWindows开发环境安装完成。

二. 搭建Ubuntu环境

在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual StudioCode进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。

在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco DeviceTool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。

本章节介绍开发所需Ubuntu环境的搭建方法。

说明:

如果没有Ubuntu系统,可在Windows系统中通过虚拟机方式搭建Ubuntu系统,具体请参考

Ubuntu系统安装指导。Ubuntu系统安装完成后,请根据指导完成Ubuntu基础环境配置,然后再

根据本章节进行DevEco Device Tool工具的安装。

系统要求

Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16GB及以上,硬盘100GB及以上。Ubuntu系统的用户名不能包含中文字符。建议Ubuntu和Windows系统上安装的DevEco Device Tool为最新版本,且版本号需相同。

说明:

下面以3.1 Release版本的IDE进行说明,不同版本的IDE在支持的特性和操作上略有差别,具

体情况可参考该工具的使用指南。

操作步骤

1. 将Ubuntu Shell环境修改为bash。

  • 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据子步骤2,将Ubuntushell修改为bash。
ls -l /bin/sh

  • 2. 打开终端工具,执行如下命令,输入密码,然后选择No,将Ubuntu shell由dash修改为

bash。

sudo dpkg-reconfigure dash

2. 下载DevEco Device Tool最新Linux版本软件包。

3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。

  • 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-{Version}.zip为软件包名称,请根据实际进行修改。
unzip devicetool-linux-tool-{Version}.zip
  • 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。
chmod u+x devicetool-linux-tool-{Version}.sh

4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。

sudo ./devicetool-linux-tool-{Version}.sh

5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装,可通过键盘的上下按键进行选择。

安装完成后,当界面输出“DevEco Device Tool successfully installed.”时,表示DevEco DeviceTool安装成功。

三. 配置远程访问环境

在搭建了Windows和Ubuntu开发环境后,需要通过下述设置,使得Windows可以远程访问Ubuntu,为后续烧录文件的传输做好准备。

安装SSH服务并获取远程访问的IP地址

1. 在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务。

说明:如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install opensshclient=1:8.2p1-4),再重新执行该命令安装openssh-server。

2. 执行如下命令,启动SSH服务。

3. 执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。

说明:

如果执行ifconfig命令提示“command-not-found”,请执行sudo apt-get install net-tools命令安装网络查询工具,然后重新查询IP地址。

安装Remote SSH

1. 打开Windows系统下的Visual Studio Code,点击,在插件市场的搜索输入框中输入“remotessh”。

2. 点击Remote-SSH的Install,安装Remote-SSH。安装成功后,在INSTALLED下可以看到已安装Remote-SSH。

远程连接Ubuntu环境

1. 打开Windows系统的Visual Studio Code,点击,在SSH TARGETS下,单击+。

2. 在弹出的SSH连接命令输入框中输入“ssh username\@ip_address”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。

3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。

4. 在SSH TARGETS中,找到远程计算机,点击,打开远程计算机。

5. 在弹出的输入框中,选择Linux,然后在选择Continue,然后输入登录远程计算机的密码,连接远程计算机。

说明:

在Windows系统远程访问Ubuntu过程中,需要频繁的输入密码进行连接,为解决该问题,您可以使用SSH公钥来进行设置,设置方法请参考注册远程访问Ubuntu环境的公钥。

连接成功后,等待在远程计算机用户目录下的.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,便可以在Windows的DevEcoDevice Tool界面进行源码开发、编译、烧录等操作。

说明:

如果您之前安装过DevEco Device Tool 3.0 Release及以前的版本,可能出现插件安装失败的情况,Visual Studio Code右下角一直处于如下界面,请参考DevEco Device Tool插件安装失败处理办法进行处理。

至此,环境搭建完成,如下图所示,左下角显示远程连接计算机的IP地址。

四. 创建工程并获取源码

在通过DevEco Device Tool创建OpenHarmony工程时,可自动下载相应版本的OpenHarmony源码。

  • OpenHarmony Stable Version类型的源码为OpenHarmony稳定版本源码,通过镜像站点获取,支持
  • OpenHarmony-v3.0.3-LTS、OpenHarmony-v3.1-Release、OpenHarmony-v3.2-Beta3、
  • OpenHarmony-v3.2-Beta4、OpenHarmony-v3.2-Beta5、OpenHarmony-v3.2-Release版本。

镜像站点的源码,一般取自该稳定版本的发布时间点,因此,通过镜像站点获取的源码可能不是该版本最新源码。如果您需要获取对应版本的最新源码,请参考从码云仓库获取源码,获取源码后,请参考《HUAWEI DevEco Device Tool 使用指南》的“导入OpenHarmony源码”章节,在DevEco Device Tool中导入源码。

此处以下载OpenHarmony Stable Version源码为例,说明操作过程。关于其他类型源码的下载,可参考《HUAWEI DevEco Device Tool 使用指南》。

前提条件

只有在Windows环境通过Remote SSH远程连接上Ubuntu环境的情况下,才可以创建OpenHarmony新工程,具体请参考[搭建开发环境]。

说明:

若Windows环境未远程连接Ubuntu环境,New Project功能仅针对海思企业用户,不支持创建

OpenHarmony工程。

操作步骤

1. 打开DevEco Device Tool,进入Home页,点击New Project创建新工程。

2. 在新工程的配置向导页,配置工程相关信息,包括:

  • OpenHarmony Source Code:选择需要下载的OpenHarmony源码,请选择OpenHarmonyStable Version下的源码版本,支持OpenHarmony-v3.0.3-LTS、OpenHarmony-v3.1-Release、OpenHarmony-v3.2-Beta3、OpenHarmony-v3.2-Beta4、OpenHarmony-v3.2-Beta5、OpenHarmony-v3.2-Release版本。

  • Project Name:设置工程名称。

  • Project Path:选择工程文件存储路径。

  • SOC:选择支持的芯片。

  • Board:选择支持的开发板。

  • Product:选择产品。

3. 工程配置完成后,点击Confirm,DevEco Device Tool会自动启动OpenHarmony源码的下载。由于OpenHarmony稳定版本源码包体积较大,请耐心等待源码下载完成。

五. 编译

DevEco Device Tool支持Rockchip RK3568开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。

说明:

RK3568编译环境为Ubuntu环境。

1. 在菜单栏中点击Project Settings,进入RK3568工程配置界面。

2. 在Tool Chain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备。

  • 如工具为“uninstalled”状态( ),可单击Download Uninstalled Tools,自动安装所需工具,或单击工具后方的Download安装指定工具。

  • 如当前识别到的工具类型有缺失,需要补充,可单击Add Utility添加。

  • 如工具无法通过Download方式安装,表示该工具未被DevEco Device Tool收录,需要开发者自行下载到本地后单击Import导入。

  • 如“OpenHarmony Environment Dependency”的状态异常( ),请单击Install安装。

部分工具的安装需要使用root权限,请在TERMINAL窗口输入用户密码进行安装。

说明:

如果出现安装pip组件失败,可参考修改Python源的方法进行修改,完成尝试重新安装。若出现安装apt组件失败,可参考修改apt源的方法进行修改,完成后尝试重新安装。

安装完成后,工具和环境依赖的状态显示为。

3. 在rk3568配置页签中,设置源码的编译类型build_type,默认为"debug"类型,请根据需要进行修改。

4. 在DevEco Device Tool界面的PROJECT TASKS中,点击对应开发板下的Build,执行编译。

5. 等待编译完成,在TERMINAL窗口输出“SUCCESS”,编译完成。

编译完成后,可以在工程的out目录下,查看编译生成的文件,用于后续的[RK3568开发板烧录]。

六. 烧录

烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco DeviceTool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。RK3568的镜像烧录通过Windows环境进行烧录,开发者启动烧录操作后,DevEco Device Tool通过Remote远程模式,将Ubuntu环境下编译生成的待烧录程序文件拷贝至Windows目录下,然后通过Windows的烧录工具将程序文件烧录至开发板中。

前提条件

下载并安装驱动DriverInstall.exe。当安装窗口显示“安装驱动成功”时,即表示驱动已安装完成,可进入后续烧录步骤。

说明:

如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。

操作步骤

1. 请连接好电脑和待烧录开发板,连接USB接口,具体可参考RK3568开发板介绍。
2. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。

  • 如果Local PC右边连接按钮为,则远程计算机与本地计算机为已连接状态,不需要执行其他操作。
  • 如果Local PC右边连接按钮为,则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。

3. 在菜单栏中点击Project Settings按钮,进入RK3568工程配置界面。

4. 在Tool Chain页签,检查Uploader烧录器工具是否已安装。

  • 如工具为“uninstalled”状态( ),可单击Download Uninstalled Tools,自动安装所需工具或单击工具后方的Download安装指定工具。

  • 如工具无法通过Download方式安装,表示该工具未被DevEco Device Tool收录,需要开发者自行下载到本地后单击Import导入。

5. 在rk3568页签,设置烧录选项,包括upload_partitions和upload_protocol。

配置完成后工程将自动保存。

  • upload_partitions_profile:选择待烧录程序的配置文件,该配置文件会指定烧录文件名称、起始烧录地址、地址长度等信息;同时请勾选Enable to use upload_partitions_profile for upload选项。

  • 说明:

    如需修改烧录profile文件,在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件

    的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件

    的分区地址设置不能出现重叠。

    首次烧录,请勾选Enable to use upload_partitions_profile for upload选项,会自动生成

    upload_partitions文件。再次烧录时,可根据实际情况选择生成upload_partitions文件进行

    自定义烧录,也可以再勾选Enable to use upload_partitions_profile for upload选项,使

    用upload_partitions_profile重新生成upload_partitions文件用于烧录。

  • upload_protocol:选择烧录协议,固定选择“upgrade”。

6. 在PROJECT TASKS中,点击rk3568下的Upload按钮启动烧录。

7. 当屏幕提示“Operation paused,Please press Enter key to continue”,请按回车键继续。

说明:

如果开发板未处于烧录模式,屏幕会提示“The board is not in Loader mode.Please Hold on theVOL+key…”,此时,请长按音量+键,3秒后点击RESET键,然后再过3秒放开音量+键,使开发板进入烧录模式。

等待开发板烧录完成,当屏幕提示如下信息时,表示烧录成功。

视频讲解:https://www.bilibili.com/video/BV1Wj411p7XN

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习资源,请移步前往小编:https://qr21.cn/FV7h05

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

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

相关文章

2024年智能手表行业线上市场销售数据分析

智能手表市场近几年随着各大厂商的加入,逐渐朝着专业化、智能化发展。从一开始被认为是“智商税”、“鸡肋产品”到如今可以成为人体心脑血管健康监测、专业运动测速、移动定位的“多功能电子管家”,智能手表市场仍在不断发展中。 根据鲸参谋数据显示&a…

CSS中设置透明度的2个属性:opacity,RGBA以及它们的区别

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合…

关于SSL加密,您应该知道什么?

SSL加密,全称为安全套接字层加密,是一种网络安全协议,主要用于在网络通信中提供隐私和数据完整性。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传输过程中不被窃取或篡改。随着互联网的普及和电子商务的快速发展&am…

多种方法求1+12+123+1234……

有网友出了一道题: 从键盘输入一个小于10的正整数n,计算1121231234……,即前n项之和。 第一眼看到题目,直觉告诉我必须使用嵌套的两个for循环,里面的循环生成每一项,外面的循环求和。错误的方向和思路让我…

[C++ QT项目实战]----C++ QT系统实现多线程通信

前言 在C QT中,多线程通信原理主要涉及到信号与槽机制和事件循环机制。 1、信号与槽机制: 在QT中,信号与槽是一种用于对象间通信的机制。对象可以通过发送信号来通知其他对象,其他对象通过连接槽来接收信号并进行相应的处…

与 Apollo 共创生态:Apollo 七周年大会给带来的震撼

文章目录 一、七年蛰伏,Apollo 迎来“智变”时刻二、Apollo 企业生态计划与开放平台2.1 Apollo X 企业自动驾驶解决方案2.2 Apollo 开放平台携手伙伴共创生态 三、个人感悟 一、七年蛰伏,Apollo 迎来“智变”时刻 让我们把时间倒回到 2013 年&#xff0…

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

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

C++中的queue(容器适配器)

目录 一、成员函数 一、构造函数 二、入栈 push 三、出栈 pop 四、判空 empty 五、队列大小 size 六、取队头元素 front 七、取队尾元素 back 八、入栈 emplace 九、交换函数 swap 二、非成员函数重载 一、关系运算符重载 二、交换函数 swap C中的queue不再是容…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介:pytest-xdist插件使用新的测试执行模式扩展了pytest,最常用的是在多个CPU之间分发测试以加快测试执行,即 pytest -n auto同时也是一个非常优秀的分布式测试插件,分别支持ssh和socket两种方式实现master和worker的远程通讯。…

Java8 Stream常见用法

Stream流的常见用法&#xff1a; 1.利用stream流特性把数组转list集合 //定义一个数组Integer[] array {5,2,1,6,4,3};//通过stream特性把数组转list集合List<Integer> list Arrays.stream(array).collect(Collectors.toList());//打印结果System.out.println(list);…

Ubuntu16.04搭建webrtc服务器

本人查阅无数资料,历时3周搭建成功 一、服务器组成 AppRTC 房间+Web服务器 https://github.com/webrtc/apprtcCollider 信令服务器,在AppRTC源码里CoTurn coturn打洞+中继服务器 Nginx 服务器,用于Web访问代理和Websocket代理。AppRTC 房间+Web服务器使用python+js语言 App…

两大成果发布!“大规模量子云算力集群”和高性能芯片展示中国科技潜力

在当前的科技领域&#xff0c;量子计算的进步正日益引起全球的关注。中国在这一领域的进展尤为显著&#xff0c;今天&#xff0c;北京量子信息科学研究院&#xff08;以下简称北京量子院&#xff09;和中国科学院量子信息与量子科技创新研究院&#xff08;以下简称量子创新院&a…

2024年度延安市农业农村领域科技创新研发平台申报类别程序、相关要求

一、征集类别 此次征集类别包括市级农业科技园区、星创天地、县域科技创新试验示范站、科技示范镇、乡村振兴科技示范村。 二、申报程序 1.农业科技园区由乡(镇)人民政府牵头申报,经县(市、区)科技管理部门审核后向市科技局推荐报送。(申请模板见附件1)。 2.县域科技创新试…

Unreal Engine子类化系统UButton

UE系统Button点击事件无法传递参数&#xff0c;通过子类化系统Button添加自定义参数扩展实现Button点击事件参数传递点击C类文件夹&#xff0c;在右边的区域点击鼠标右键&#xff0c;在弹出的菜单中选择“新建C类”在弹出的菜单中选中“显示所有类”&#xff0c;选择Button作为…

DSP开发实战教程--EPWM模块的影子寄存器详细讲解原理和代码实例

EPWM模块影子寄存器的原理 在TI&#xff08;Texas Instruments&#xff09;的DSP28335中&#xff0c;EPWM&#xff08;Enhanced Pulse Width Modulator&#xff09;模块提供了高精度、高灵活性的PWM信号生成功能。为了能在不影响当前PWM波形输出的情况下预装载新的PWM参数&…

5.Labview簇、变体与类(下) -- 项目与Labview类的使用

本文介绍Labview类的使用&#xff0c;在Labview中&#xff0c;何为类&#xff1f;应该如何理解&#xff1f;具体有什么应用场景&#xff1f; 本文基于Labview软件&#xff0c;讲解了类函数的使用方法和场景&#xff0c;从理论上讲解其数据流的底层概念&#xff0c;从实践上建立…

机器人前馈控制MATLAB实现

在机器人控制中&#xff0c;前馈控制是一种常用的方法&#xff0c;用于补偿系统中的已知动态。前馈控制通常与反馈控制结合使用&#xff0c;以提高系统的跟踪性能和响应速度。在MATLAB中实现机器人前馈控制涉及几个步骤&#xff0c;包括系统建模、设计前馈控制器、实现控制算法…

Docker 入门篇(二)-- Linux 环境离线安装

引言 docker 系列文章&#xff1a; Docker 入门篇&#xff08;一&#xff09;-- 简介与安装教程&#xff08;Windows和Linux&#xff09; 一、安装环境准备 centos &#xff1a;CentOS Linux release 7.6.1810 (Core)docker 版本&#xff1a;docker-26.1.0.tgz 官网下载地址…

【算法基础实验】图论-基于DFS的连通性检测

基于DFS的连通性检测 理论基础 在图论中&#xff0c;连通分量是无向图的一个重要概念&#xff0c;特别是在处理图的结构和解析图的组成时。连通分组件表示图中的一个子图&#xff0c;在这个子图中任意两个顶点都是连通的&#xff0c;即存在一条路径可以从一个顶点到达另一个顶…

理解归并排序的两种方法(超详细)

目录 前言 一.方法一&#xff1a;归并排序 1.1 归并思路 1.1.1 递归(分解) 1.1.2 区间(排序) 1.1.3 合并拷贝回原数组(合并) 二.归并排序过程 2.1 递归(分解)图解 2.2 归并有序区间(排序)图解 2.2.1 单独一趟排序 2.2.2 有序区间递归排序 2.2.3 数组拷贝(合并) 2.3 归并全部代码…