OpenHarmony设备的开发环境搭建与工程管理(Ubuntu系统环境)
开始前的废话
本来笔者是没有打算写一篇关于如何搭建开发环境和创建项目的文章的,因为官方文档已经写的很清楚了。但是在笔者准备五一放假期间上传一些关于开发板简单基础功能开发的文章的时候,发现官网文档在4月30日进行了大变动,让开发环境的搭建变得更简单,轻松几部便可以完成。
改版后的官方文档对新手很友好,所以为什么笔者会这么激动呢,是因为笔者对于硬件开发其实一开始一点基础都无,虽然官网文档一直都很详细,但是对于缺乏相关知识的笔者来说,阅读学习还是很艰难。所以笔者想将新改版后官方文档中关于开发环境的搭建与工程管理的知识整理输出一份,当然这里看官方文档也可以很简单的完成开发环境的搭建和工程管理,笔者只是想对鸿蒙设备开发的官方文档再作一些宣传(可能官方并不需要(〃´-ω・) ),感谢官网工作人员的完善,并且重新整理输出也是对笔者所学习的知识一个很好的巩固。
本篇文章是介绍在Ubuntu环境下,如何搭建一套完整的可视化开发环境。笔者经过测试Ubuntu 20.04系统环境下操作都可以实现。
笔者是将自己的电脑的win10系统外,重新装了一个Ubuntu 20.04系统(系统语言:英文),在搭建环境之前,只是安装了搜狗输入法和Chrome浏览器。
这里建议Ubuntu系统安装时,系统语言选择英文,可以省去不少麻烦。如果你在装系统的过程中遇到什么问题可以联系笔者。
开发环境的搭建
系统要求:
- Ubuntu20.04及以上版本,内存推荐16 GB及以上;
- 系统的用户名不能含有中文字符。
第一步: 修改Ubuntu Shell环境
-
执行命令如下命令,确认输出的结果末尾是bash,如果输出结果的末尾是dash,请根据步骤二,将Ubuntu Shell的环境修改为bash。
ls -l /bin/sh
-
打开终端工具,执行如下命令,执行以后需要输入密码,然后选择No,就可以将Ubuntu Shell由dash修改为bash。
sudo dpkg-reconfigure dash
-
再次执行步骤一的命令,发现Ubuntu Shell的环境已经修改为bash。
第二步:下载DevEco Device Tool
- 点击下载链接,选择DevEco Device Tool Linux版本的软件包,点击旁边的下载按钮进行下载。
第三步:解压DevEco Device Tool软件包
-
进入DevEco Device Tool软件包下载的文件夹目录下,执行如下命令解压软件包,其中devicetool-linux-tool-3.0.0.401.zip为你下载的软件包名称,请根据你当前下载的实际情况进行修改。
unzip devicetool-linux-tool-3.0.0.401.zip
第四部:解压后的文件夹进行赋权
-
解压后的文件直接就在当前目录下,继续执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.0.0.401.sh请根据实际进行修改。
chmod u+x devicetool-linux-tool-3.0.0.401.sh
第五步:安装DevEco Device Tool
-
执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.401.sh请根据实际进行修改。
安装过程中,会自动检查Visual Studio Code和Python是否安装,且版本符合要求,其中Visual Studio Code为1.62及以上版本,Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。
sudo ./devicetool-linux-tool-3.0.0.401.sh -- --install-plugins
当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。
打开打开Visual Studio Code,点击左侧导航栏的三角形的按钮,便可以打开下载好的DevEco Device Tool工具界面。
工程管理
导入OpenHarmony源码
-
获取OpenHarmony源码;
点击Ubuntu环境下拉取OpenHarmony源码的链接,根据链接网页中的步骤下载源码。下载源码之前,可以新建一个放源码的文件夹,在此文件夹中运行命令,讲源码下载到该文件夹中。(没有强迫症的,直接运行也可以)
下载过程中repo sync -c
这步时间很久,并且如果在下载中遇到问题,可以参考笔者以前写过的博客,看是否能解决你的问题。 -
打开DevEco Device Tool,进入Home页;
-
点击Import Project,选择待打开的工程目录,点击Import打开;
-
出现如下提示框,点击Import;
-
在Select Project type界面,选择Import from OpenHarmony Source;
-
在Import Project界面,选择Product后,会自动填充对应的MCU、Board、company和kernel信息,然后ohosVersion选择对应的OpenHarmony源码版本。下图以开发板Hi3861并导入wifiiot_hispark_pegasus为例进行说明。然后点击Open打开工程或源码;
-
弹出提示怎样打开项目,笔者这里选择在现有窗口下打开项目,你根据你的爱好可以自由选择,不搭噶;
-
可以看到源码和项目就说面导入成功;
-
然后在你写好代码需要编译和烧录之前,还需要进入Project页。DevEco Device Tool会检测你的开发环境所需的工具是否安装完毕,如果检测到有没有安装的,点击Setup按钮进行下载。
下载过程中需要你在下方终端页面输入密码。
最后下载完毕,提示开发环境是完善的。
根据现有解决方案生成工程
-
打开DevEco Device Tool,进入Home页,点击Create Project创建新工程。
-
在新建工程的配置向导页,输入工程配置信息后,点击Finish。
-
Project Name:输入工程名称,只能包含大写字母、小写字母、数字、下划线(_)、短横线(-)和点(.)。
-
Bundle:选择产品对应的解决方案。
这里介绍一下开发板Hi3861的所有解决方案(因为笔者用到的是Hi3861开发板,所以先介绍关于Hi3861的解决方案)
解决方案名称 解决方案介绍 @ohos/hispark_pegasus 无线局域网解决方案 @ohos/mini_system 提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IOT总线读写部件等的解决方案。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。 @ohos/wifi_iot 适用于无线局域网模组开发,连接智能家居,小家电等的解决方案。 @opensource/hoperun_hm_ap 演示如何在Pegasus Wi-Fi IOT智能家居套件上开发wifi_AP模式的解决方案。 @opensource/hoperun_hm_brightlights 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用PWM实现炫彩灯的解决方案。 @opensource/hoperun_hm_cleaner 采用润和的智能小车套件为硬件模型,通过修改代码具备了扫地机器人简易的避障功能及防跌落功能,并且能通过wifi接入数字管家应用场景的解决方案。智能扫地机不仅能接收数字管家应用下发的指令启动或停止扫地机器人,而且还可以加入到数字管家的日程管理中。通过日程可以设定智能扫地机启动的时间段,使其在特定的时间段内,智能扫地机自动启动或者停止。 @opensource/hoperun_hm_delay 基于Hi3861开发板并使用开源OpenHarmony开发的智能家居套件上使用cmsis2.0接口进行OS延时开发的解决方案。 @opensource/hoperun_hm_lem 演示如何在Pegasus Wi-Fi IOT智能家居套件上实现智能环境监测系统的解决方案 @opensource/hoperun_hm_ilcl 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用ADC实现智能光控灯的解决方案 @opensource/hoperun_hm_ithc 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用I2C实现智能温湿度采集的解决方案 @opensource/hoperun_hm_lamp 演示如何在Pegasus Wi-Fi IOT智能家居套件上实现智能台灯的解决方案 @opensource/hoperun_hm_led 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用cmsis 2.0接口进行IO口控制开发的解决方案 @opensource/hoperun_hm_message 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用cmsis 2.0接口进行消息队列开发的解决方案 @opensource/hoperun_hm_moleds 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用SSD 1306库驱动OLED屏的解决方案 @opensource/hoperun_hm_music 基于Hi3861开发板并使用开源OpenHarmony开发的智能家居套件中的蜂鸣器播放两只老虎音乐的解决方案 @opensource/hoperun_hm_mutex 基于Hi3861开发板并使用开源OpenHarmony开发的智能家居套件上使用cmsis2.0接口进行互斥锁开发的解决方案 @opensource/hoperun_hm_oledplayer 基于Hi3516开发板并使用开源OpenHarmony开发的智能家居套件中的OLED屏播放视频案例的解决方案 @opensource/hoperun_hm_safe 智能保险柜方案可以实时监测保险柜中振动传感器,当有振动产生时及时向用户发出警报。在连接网络后,配合数字管家应用,用户可以远程接受智能保险柜的报警信息。后续可扩展摄像头等设备,实现对危险及时报警,及时处理,守护家中财产安全 @opensource/hoperun_hm_semp 演示如何在Pegasus Wi-Fi IOT智能家居套件上使用cmsis 2.0接口进行信号量开发的解决方案 @opensource/hoperun_hm_sta 演示如何在Pegasus Wi-Fi IOT智能家居套件上开发wifi_STA模式的解决方案 @opensource/hoperun_hm_thread 基于Hi3861开发板并使用开源OpenHarmony开发的智能家居套件上使用cmsis2.0接口进行线程开发的解决方案 @opensource/hoperun_hm_timer 基于Hi3861开发板并使用开源OpenHarmony开发的智能家居套件上使用cmsis2.0接口进行定时器开发的解决方案 @opensource/hoperun_hm_trafficlights 演示如何在Pegasus Wi-Fi IOT智能家居套件上实现智能交通灯实验的解决方案 @opensource/hoperun_hm_trashcan 智能垃圾桶解决方案可以通过数字管家应用来监测垃圾桶当前可用容量,提醒主人及时处理垃圾;通过日程管家可以实现和其他智能设备联动。 @opensource/hoperun_hm_uart 演示如何在Pegasus Wi-Fi IOT智能家居套件上实现串口通信的解决方案 @opensource/yevk_hm_beep 该解决方案是基于LYEVK-3861开发板IOT套件开发的音乐播放器,通过不同频率的PWM波驱动蜂鸣器可以产生不同音符的音乐,利用这一特色,就可以奏出一段音乐 @opensource/yevk_hm_park 该解决方案是基于LYEVK3861A IoT开发套件开发,通过获取光照强度变化感知是否有车停放 @opensource/yevk_hm_snake 该解决方案是基于LYEVK-3861开发板IoT讨价开发的简易贪吃蛇小游戏,使用了套件中的OLED屏幕扩展板和带按键的照明版。用OLED屏幕显示游戏运行界面,按键复用为游戏选择和游戏控制方向键 @opensource/yevk_hm_temp 该解决方案是基于LYEVK-3861A IoT开发套件开发,通过温湿度传感器模块获取温度,并上华为云服务器 -
MCU:选择开发板搭载的MCU。
-
Board:选择支持的开发板类型。
-
Location:设置工程的存储路径,默认情况下存储在工具指定的默认路径。
根据选择的Bundle,DevEco Device Tool将会自动通过hpm拉取源码文件及配套的工具链,请耐心等待。
-
-
下载完成后,在左侧的工程目录中即可查看对应的源码文件。
注:不同的开发板对于环境的依赖不同,需要开发者根据开发板类型,执行相应命令配置环境依赖信息。
开发板类型 安装编译环境依赖相关命令 Hi3516DV300小型系统 sudo apt-get install mtd-utils Hi3516DV300标准系统 sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby Hi3518EV300 sudo apt-get install mtd-utils Hi3861V100 - BearPi-HM Nano - Neptune -
以上就是笔者整理的关于Hi3861开发板在Ubuntu系统环境下的开发环境的搭建与项目管理,关于怎么简单的实现一个项目的代码编写、编译和烧录。可以直接看官方文档就可以很简单的实现,我这里就不照搬官网的内容了。
后面笔者会接着发一些关于源码的理解和开发板简单基础功能开发的文章,希望大家多多指导,共同进步。
- 点赞
- 收藏
- 关注作者
评论(0)