lv_micropython for ESP32-C3

一、开发平台说明

硬件:立创·实战派ESP32-C3开发板。处理器ESP32-C3(内置400KB SRAM),无内置FLASH,2.0寸液晶(液晶驱动IC:ST7789,触屏驱动IC:FT6336),下载口UART0。

ESP32-C3 MicroPython固件:MicroPython - Python for microcontrollers,这是官方编译的,可以直接用。

开发工具:在windows系统上安装了VMware虚拟机,在VMware虚拟机中安装了ubuntu18系统。

二、编译ESP32-C3 + LVGL

        上一篇博客讲了如何下载及编译lv_micropython,编译ESP32-C3+LVGL还需要下载ESP-IDF,当前最新版是v5.2.0,但是MicroPython最大支持到**v4.4** ,所以下载esp-idf v4.4。lv_micropython/ports/esp32的README.md有相关说明,如下:

说明文档:micropython/ports/esp32/README.md at master · micropython/micropython · GitHub

1、下载ESP-IDF

 进入ubuntu系统,启动终端,cd到存放源码的目录。

克隆esp-idf v4.4:

git clone -b v4.4 https://github.com/espressif/esp-idf.git

更新其子模块: 

$ cd esp-idf
$ git submodule update --init --recursive
2、编译固件

安装编译工具、配置环境变量 :

$ ./install.sh all

会在$HOME路径下创建.espressif文件夹存放工具,这个过程大约需要十分钟。install.sh只需要执行一次。执行成功会出现如下提示:

如果提示permit相关的问题,则在指令前加上sudo;如果提示pip相关的问题,请看“遇到问题章节”问题1。

导入编译相关的环境变量:

$ source export.sh

 设置IDF_TARGET:

export IDF_TARGET=esp32c3

设置目标芯片为esp32c3。 

每次打开命令窗口都需要执行一次 source export.sh。执行成功会出现如下提示:

从esp-idf目录离开,进入lv_micropython目录:

$ cd ..
$ cd lv_micropython

我把esp-idf和lv_micropython下载到同一个路径的。

编译mpy-cross: 

make -C mpy-cross

如果之前编译过mpy-cross,就不用再编译了。 

编译 esp-idf和lv_micropython:

$ make -C ports/esp32 submodules
$ make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC_C3

如果提示更高版本的cmake,请看“遇到问题章节”问题2。 

三、遇到问题

问题1

执行sudo ./install.sh all命令时,出现以下错误提示:

意思是没有找到pip,但是通过pip -V指令能查询已安装pip。

在网上一番搜索后,有网友之前也遇到了这个问题,并提供了解决办法。如下所述:

解决方法:

进入~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages目录,下载pip,安装pip:

$ cd ~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages
$ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo ~/.espressif/python_env/idf5.2_py3.8_env/bin/python3 get-pip.py 

然后再次执行sudo ./install.sh all就可以了。

问题2

执行make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC_C3命令时,出现以下错误提示:

解决方法:

进入~/Downloads,下载当前最新的cmake-3.29.2.tar.gz:

$ cd cd ~/Downloads/
$ wget https://cmake.org/files/LatestRelease/cmake-3.29.2.tar.gz

解压到当前目录:

$ tar -xvzf cmake-3.29.2.tar.gz

解压之后此路径下会有一个cmake-3.29.2文件夹。

进入到cmake目录:

$ cd cmake-3.29.2/

配置:

$ chmod 777 ./configure
./configure

编译:

make

安装:

sudo make install

 执行过程如下:

将cmake安装到/usr/local/bin目录下。

将cmake链接到cmake3.29:

$ sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force

 查询cmake版本:

$ cmake --version
cmake version 3.29.2

至此,cmake已升级到3.29.2。

问题3

编译 esp-idf和lv_micropython时,出现以下错误提示:

esp-idf与mycropython版本不匹配。

解决方案:

将esp-idf版本切换到v4.4:

$ cd esp-idf
$ git checkout v4.4
$ git submodule update --init --recursive

 删除~/.espressif:

rm -rf $HOME/.espressif

重新安装工具:

$ ./install.sh all

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AUTOSAR-COMStack-002_Update-Bit 机制

最近在工作中第一次使用了AUTOSAR COM Update-Bit功能,对使用了Update-Bit功能信号的使用,不能得心应手,发送信号比较顺利;测试接收信号功能时,对应的RTE接口始终不能接收到对应的模拟发送的信号值,后来翻阅…

掌握现代 C++:Lambda 在 C++14、C++17 和 C++20 中的演变

深入研究Lambda 在 C14、C17 和 C20 中的演变 一、背景二、C14 中的 Lambda2.1、默认参数2.2、模板参数2.3、广义捕获2.4、从函数返回 lambda 三、C17 中的 Lambda四、C20 中的 Lambda总结 一、背景 Lambda 是现代 C 最受欢迎的功能之一。自从在 C 11 中引入以来,它…

MySQL 嵌套查询

嵌套查询 是指在一个完整的查询语句之中,包含若干个不同功能的小查询;从而一起完成复杂查询的一种编写形式。包含的查询放在()里 , 包含的查询出现的位置: 位置含义SELECT之后把查询结果作为表头使用FROM…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合,今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表,JDK1.7还有人在用?不会吧…… 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组链表红黑树。 数据结…

Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示

1.概述 在14.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.S…

Boost之date_time

Boost.Date_Time库是一个功能丰富的时间日期处理库,它提供了多种用于日期和时间计算、格式化、转换和输入输出的功能。以下是该库的一些详细介绍: 1、日期处理: Boost.Date_Time库中的date类基于格里高利历(Gregorian calendar&…

MySQL基础知识——MySQL日志

一条查询语句的执行过程一般是经过连接器、 分析器、 优化器、 执行器等功能模块, 最后到达存储引擎。 那么, 一条更新语句的执行流程又是怎样的呢? 下面我们从一个表的一条更新语句进行具体介绍: 假设这个表有一个主键ID和一个…

在视频号变现,你还停留在只能自己直播的时代吗?现在新玩法来了

大家好,我是电商笨笨熊 在很多人的固有印象里,视频号当下变现的方式还只有自己开直播带货或者是短视频带货;这种方式虽然变现快,但是对于更多的普通玩家来说相对困难,需要直播经验,自身还要具备足够的粉丝…

ML在骨科手术术前、书中、术后方法应用综述【含数据集】

达芬奇V手术机器人 近年来,人工智能(AI)彻底改变了人们的生活。人工智能早就在外科领域取得了突破性进展。然而,人工智能在骨科中的应用研究尚处于探索阶段。 本文综述了近年来深度学习和机器学习应用于骨科图像检测的最新成果,描述了其贡献、优势和不足。以及未来每项研究…

CTFshow电子取证——内存取证2

接上回 JiaJia-CP-2 2.佳佳在网页上登录了自己的邮箱,请问佳佳的邮箱是? 因为是在网页上登陆的邮箱 用iehistory插件 查看一下网页历史记录 为了方便分析,使用grep命令正则匹配一下 **com 的记录 vol.py -f JiaJia_Co.raw --profileWin…

Git以及Gitlab的快速使用文档

优质博文:IT-BLOG-CN 安装git 【1】Windows为例,去百度下载安装包。或者去官网下载。安装过秳返里略过,一直下一步即可。丌要忉记设置环境发量。 【2】打开cmd,输入git –version正确输出版本后则git安装成功。 配置ssh Git和s…

Matlab求矩阵的逆,3种常用方法总结

几种求逆矩阵的方法总结,以Matlab语言为例 *0* 引言*1* 简单描述函数实现*2* 方法调用计算对比 0 引言 最近在使用函数库求解逆矩阵的时候发现同一个矩阵使用不同的语言、不同的求解方法会产生不同精度的结果,特别是阶数很高的方阵,一些库中的…