您的位置:首页 > 科技 > IT业 > lvgl_micropython for esp32

lvgl_micropython for esp32

2024/12/24 10:18:18 来源:https://blog.csdn.net/professionalmcu/article/details/139710862  浏览:    关键词:lvgl_micropython for esp32

一、概述

之前通过修改lv_bindings的代码使编译通过了,但是在执行lvgl相关代码时出错了。目前国外一个大佬开源了一个lvgl_micropython项目,他改了模块的绑定关系,之前LVGL是作为Micropython的依赖项,现在Micro python是作为LVGL的依赖项。通过这样做,简化了更新MicroPython版本的过程。尝试编译这个项目,希望能解决之前lvgl不能用的问题。

 源码链接:GitHub - kdschlosser/lvgl_micropython: LVGL module for MicroPython

二、克隆代码

        由于国内访问github受限的问题,速度比较慢,也可能出错。这次使用了一个香港的云服务器来克隆代码,服务器安装Ubuntu-22.04-x64系统。服务器是一个2核4G的弹性云服务器,带宽1Mb。

1、克隆代码

源码存在在home路径下,执行以下指令克隆代码:

cd /home
git clone https://github.com/kdschlosser/lvgl_micropython.git
2、更新子模块
cd lvgl_micropython/
git submodule update --init --recursive

 由于服务器带宽比较下,所以更新过程比较小,大约40min,但过程比较顺利。

3、安装esp-idf tools

下载esp-idf sdk后需要执行esp-idf tools的安装脚本安装编译工具。执行以下指令:

cd lib/esp-idf/
./install.sh all

执行过程中出现以下问题:

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.apt install python3.10-venv

解决方案:

执行以下指令安装安装 python3-venv 包:

sudo apt install python3.10-venv

 然后再次执行:

./install.sh all

安装成功之后,会出现如下提示信息:

You can now run:. ./export.sh

三、编译ESP32S3固件

1、安装工具

基于ubuntu系统编译时,需要安装以下4个工具:

  • build-essential
  • cmake
  • ninja-build
  • python

ubuntu22系统自带了build-essential和python,只需要安装cmake和ninja-build。     

执行以下命令进行安装cmake:

sudo apt install cmake

执行成功之后查看版本号: 

# cmake --version
cmake version 3.22.1

 执行以下命令进行安装ninja-build:

sudo apt install ninja-build

 执行成功之后查看版本号: 

# ninja --version
1.10.1
2、设置esp-idf的环境变量

 cd到esp-idf目录,然后执行:

. ./export.sh
 3、编译S3固件

退回到lvgl_micropython目录,然后执行:

python3 make.py esp32 submodules clean mpy_cross BOARD=ESP32_GENERIC_S3 BOARD_VARIANT=SPIRAM_OCT DISPLAY=st7796 INDEV=ft6x36

指定内部PSRAM的是接口为8线SPI,液晶屏驱动IC为st7796,触屏驱动IC为ft6x36。

遇到错误:

lvgl_micropython/lib/micropython/extmod/modbluetooth.c:654:(.text.bluetooth_ble_gap_connect+0x9c): undefined reference to `mp_bluetooth_gap_peripheral_connect'
4、编译C3固件
python3 make.py esp32 submodules clean mpy_cross BOARD=ESP32_GENERIC_C3 DISPLAY=st7789 INDEV=ft6x36

适配立创实战派开发板。

遇到错误:

/root/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/13.2.0/../../../../riscv32-esp-elf/bin/ld: /home/lvgl_micropython/lib/micropython/extmod/modbluetooth.c:662:(.text.bluetooth_ble_gap_connect+0xae): undefined reference to `mp_bluetooth_gap_peripheral_connect'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
ninja failed with exit code 1, output of the command is in the /home/lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_C3/log/idf_py_stderr_output_219318 and /home/lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_C3/log/idf_py_stdout_output_219318
-e See https://github.com/micropython/micropython/wiki/Build-Troubleshooting
make: *** [Makefile:66: all] Error 1
make: Leaving directory '/home/lvgl_micropython/lib/micropython/ports/esp32'

 

未完,待续!

lv_micropython技术交流:961509395

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com