首页 > 其他分享 >ESP32移植Openharmony设备开发---(1)环境搭建

ESP32移植Openharmony设备开发---(1)环境搭建

时间:2024-10-10 15:51:49浏览次数:9  
标签:Openharmony tar repo ESP32 dev --- https hb com

第一章 环境搭建

1.下载ubuntu创建虚拟机

内存分配建议8G

硬盘大于200G

                                                                下载ubuntu20.04

复制特征码打开迅雷即可下载

5F5E8848426129AB63CB4DB717BB54193C1C1AD7 ubuntu-20.04.6-desktop-amd64.iso 特征码 迅雷
2.换源

Ubuntu左下角app应用找到Software&Updates

“Download from"选择other ->这里选择China->阿里云镜像

点击choose Server -> 点击refresh即可

3.更改默认Shell为bash
sudo dpkg-reconfigure dash

不然会出现

4.安装相关软件包和依赖

由于OH环境搭建所需的依赖非常繁多复杂,笔者这里给大家整理好了一份软件包列表,实现一键安装所需依赖

新建test.sh脚本文件并复制下面代码块

给脚本运行权限 chmod +x test.sh

运行bash脚本 ./test.sh

#!/bin/bash

# 软件包列表
packages=(
  apt-utils
  vim
  software-properties-common
  openssh-server
  iputils-ping
  git-lfs
  curl
  net-tools
  bsdmainutils
  kmod
  bc
  rsync
  gawk
  ssh
  ccache
  zip
  python-dev
  make
  m4
  gcc-multilib
  ca-certificates-java
  unzip
  python3-yaml
  perl
  openssl
  libssl1.1
  gnupg
  xsltproc
  x11proto-core-dev
  tcl
  python3-crypto
  python-crypto
  libxml2-utils
  libxml2-dev
  libx11-dev
  libssl-dev
  libgl1-mesa-dev
  lib32z1-dev
  lib32ncurses5-dev
  g++-multilib
  flex
  bison
  doxygen
  git
  subversion
  tofrodos
  pigz
  expect
  python3-xlrd
  python-xlrd
  git-core
  gperf
  build-essential
  zlib1g-dev
  libc6-dev-i386
  lib32z-dev
  openjdk-8-jdk
)

# 更新源列表
sudo apt-get update

# 安装每个软件包
for pkg in "${packages[@]}"; do
  echo "Installing package: $pkg"
  sudo apt-get install -y $pkg
done

echo "All packages installed successfully."
5.获取源码

方式一:直接下载压缩包(下载的是全量代码)

https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fopenharmony%2Fos%2F4.0-Release%2Fcode-v4.0-Release.tar.gz

tar -xzf code-v4.0-Release.tar.gz

方式二:通过repo +https 下载(推荐下载轻量)

sudo su
mkdir Openharmony
cd Openharmony
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 >/usr/local/bin/repo 
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests 
git config --global user.name "Kevin_Huangxy"
git config --global user.email "[email protected]"
git config --global credential.helper store
(轻量版)repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.1-Release -m chipsets/hispark_pegasus.xml -g ohos:mini
  repo sync -c
repo forall -c 'git lfs pull'

小tips:可以多拉取几次 一次拉取代码可能不完整

6.加入esp32补丁(需要esp32补丁可以联系笔者)

将device_board中的文件复制到源码根目录/device/board中

同理将另外两份文件复制到对应文件夹下,补丁就打好了

7.安装hb

openharmony使用hb set报错的几种情况以及解决办法_ubuntu_Keine lösung-华为开发者空间 (csdn.net)

hb是一个构建工具,用作编译,这里我们选择下载hb 1.0.0
python3 -m pip install --user build/hb pip -i  https://mirrors.aliyun.com/pypi/simple/

设置环境变量
vim ~/.bashrc
export PATH=~/.local/bin:$PATH
source ~/.bashrc
验证hb安装是否成功
hb help

hb env h (hb1.00版本内置环境检验工具,可以查看自己环境是否安装完毕)

根据提示信息执行以下命令即可完整的安装所有依赖环境

8.安装gcc_riscv32(WLAN模组类编译工具链)

下载以下交叉编译工具链:

https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fcompiler%2Fgcc_riscv32%2F7.3.0%2Flinux%2Fgcc_riscv32-linux-7.3.0.tar.gz

下载完毕后将其拖入Vmware文件夹中,在文件夹中右键用命令行打开

执行以下命令将压缩包解压到根目录:

tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

vim ~/.bashrc
export PATH=~/gcc_riscv32/bin:$PATH

生效环境变量。

source ~/.bashrc

Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。

riscv32-unknown-elf-gcc -v

9.代码下载和修改

在第一章完成环境搭建、OpenHarmony 4.1版本代码下载之后,请修改文件:

build\hb\util\loader\load_ohos_build.py,使用VScode打开该文件,使用Ctrl+F搜索

raise OHOSException 将其批量替换成print

原先代码如下:

将raise OHOSException改成 print,修改后如下:

10.交叉编译工具链

先通过pip3安装esptool

pip3 install esptool pip -i  https://mirrors.aliyun.com/pypi/simple/

新建一个目录,用来存放下载的编译工具链

mkdir -p ~/download && cd ~/download

下载交叉编译工具链压缩包


wget https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz

解压工具链

sudo tar axvf xtensa-esp32-elf-gcc8_4_0-esp-2021r2-linux-amd64.tar.gz -C /opt/ 

将交叉编译工具添加至环境变量,打开配置文件

vim ~/.bashrc

在文件末尾添加

export PATH=$PATH:/opt/xtensa-esp32-elf/bin

使配置生效

source ~/.bashrc
11.源码编译
sudo bash build/prebuilts_download.sh

方案一:

命令行编译

sudo ./build.sh --product-name esp32 --ccache

方案二:

hb工具编译(推荐)

在代码根目录输入hb set,在选项框中选择esp32

执行hb build -f

至此esp32移植Openharmony已基本完成,环境搭建过程会遇到诸多BUG,解决起来也是非常痛苦,但编译成功后也是非常的有成就感!

标签:Openharmony,tar,repo,ESP32,dev,---,https,hb,com
From: https://blog.csdn.net/2301_77659368/article/details/142789017

相关文章

  • ESP32移植Openharmony设备开发---(3)任务调度
    任务调度官方文档:OpenAtomOpenHarmony基本概念从系统角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,各任务的运行相互独立。OpenHarmonyLiteOS-M的任务模块可以给用户提供多个任务,实现任务间的切换,帮助用户管理业务程序流程。......
  • 基于K-means和RFM模型的电商行业用户画像及商品个性化推荐研究
    文章目录==有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主==项目介绍数据概览数据预处理可视化过程展示RFM模型K-means及改进算法每文一语有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍本研究基于阿里天池平台提供的某......
  • Android:H2-20:水平仪
    任务描述这里介绍的水平仪就是那种比较传统的水平仪,在一个透明的圆盘中充满某种液体,液体中留有一个气泡,当一端翘起时,该气泡将会浮向翘起的一端。该程序用了一个自定义View,该自定义View很简单,就是绘制透明圆盘和气泡——其中气泡的位置会动态改变。在真机中测试该程序,可看到......
  • ant-design 使用Modal组件报错问题记录
    打开modal组件会提示如下报错信息高版本chrome浏览器会出现这个问题 原因是:不能在获得焦点的元素或其祖先上使用aria-hidden解决方案:全局添加如下CSS,暂时将Modal中该属性的元素隐藏掉.ant-modaldiv[aria-hidden="true"]{display:none!important;} ......
  • debian-SSH&FTP
    开启SSH安装虚拟机后,设置网络连接方式为桥接模式修改/etc/ssh/sshd_config文件中的PermitRootLogin改为yes,并取消注释==》可通过ssh连接执行systemctlrestartsshd开启ftpuser安装vsftpd:sudoaptupdatesudoaptinstallvsftpd备份原始配置文件:sudocp/etc/vsft......
  • 软考《信息系统运行管理员》- 4.3 信息系统软件运维的过程
    4.3信息系统软件运维的过程文章目录4.3信息系统软件运维的过程日常运维日常运维的内容日常运行例行测试维护例行测试流程的关键点例行维护流程的关键点定期测试维护缺陷诊断与修复信息系统软件缺陷的概念信息系统软件缺陷的分类信息系统软件缺陷诊断与修复流程缺陷......
  • 组件间通信--插槽
    插槽(slot)可以实现父与子组件间通信,即想让父组件在指定位置插入一些信息。插槽分为三种:默认插槽、具名插槽、作用域插槽默认插槽子组件代码:<h1>我是子组件默认插槽--父组件中子组件标签中的数据会放入slot中</h1><!--默认插槽--><slot></slot>父组件代码:......
  • 全局视角看技术-Java多线程演进史
    作者:京东科技文涛全文较长共6468字,语言通俗易懂,是一篇具有大纲性质的关于多线程的梳理,作者从历史演进的角度讲了多线程相关知识体系,让你知其然知其所以然。前言2022年09月22日,JDK19发布了,此版本最大的亮点就是支持虚拟线程,从此轻量级线程家族再添一员大将。虚拟线程使JVM摆脱......
  • 常用的校验方法-正则表达式(推荐)
    转载:https://blog.csdn.net/JaveWong/article/details/1202102101、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})......
  • SHA256加密-前端 中 HMAC-SHA256的base64加密 和 md5加密
    1、 HMAC-SHA256的base64加密首先npminstallcrypto-js--save项目中使用12345import CryptoJSfrom 'crypto-js';  consthash=CryptoJS.HmacSHA256(zhuan, 'secret');//第一个参数为转换的字符串第二个参数有很多种可能看需要转换的格式consthas......