目前HarmonyOS的热度愈演愈烈,本文将介绍如何搭建HarmonyOS嵌入式开发环境,帮助想要使用HarmonyOS进行嵌入式开发的人员进行入门。
其实博主以前已经介绍过如何搭建HarmonyOS开发环境了,但是当时还是HarmonyOS1.0,目前开源版本,OpenHarmony已经更新到OpenHarmony3.2了,开发也相比于以前要方便得多,所以本文来介绍如何搭载最新的HarmonyOS嵌入式开发环境。
以下内容在公众号:“物联网知识”,回复对应名称均可获取。
OpenHarmony是一款面向全场景的开源分布式操作系统,采用组件化设计,支持在128KiB到xGiB RAM资源的设备上运行系统组件,设备开发者可基于目标硬件能力自由选择系统组件进行集成。OpenHarmony当前定义了三种基础系统类型:
这三种HarmonyOS基础系统类型的应用场景不同,在我认识里,标准系统大概就是手机等类Linux系统,轻量系统的应用场景在小型设备,也就是普通单核MCU的上面,小型系统更多的在视频和摄像头等专项领域的设备。
对于我们普通的嵌入式开发,更多的是在轻量系统上,本文的开发环境也是基于此。
DevEco Device Tool是我们进行HarmonyOS开发的环境插件。
DevEco Device Tool采用Windows+Ubuntu混合开发环境:
本文的搭建基于Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。
系统要求
ls -l /bin/sh
命令,确认输出结果为bash。如果输出结果不是bash,输入sudo dpkg-reconfigure dash
,输入密码,然后选择No,将Ubuntu shell由dash修改为bash。unzip devicetool-linux-tool-{Version}.zip
chmod u+x devicetool-linux-tool-{Version}.sh
sudo ./devicetool-linux-tool-{Version}.sh
使用如下apt-get命令安装后续操作所需的库和工具。
sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 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 genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
到此,HarmonyOS的嵌入式开发环境就完成了。
当然大家可以在Windows进行编辑,然后在虚拟机中的Linux进行编译。两个进行切换。但我更建议,大家使用远程访问,这方面的例子网上有和很多,在VSCode中使用Remote SSH插件进行访问。
更多精彩欢迎关注:
公众号:物联网知识
抖音号:物联网知识