天天看点

Ubuntu系统上进行lv_micropython固件编译(unix)

作者:代码碎片

一、开发环境:Ubuntu 16.04.7 LTS(下载VMware和Ubuntu系统镜像文件进行安装,若有linux环境可跳过此步骤)如下截图我本机安装的虚拟机

Ubuntu系统上进行lv_micropython固件编译(unix)

二、安装依赖库:

sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial ssh
sudo apt-get install libsdl2-dev
sudo apt-get install libsdl1.2-dev           

三、下载lv_micropython源码:

git clone https://gitee.com/l_y_r/lv_micropython.git           

下载后进入源码目录如下截图

Ubuntu系统上进行lv_micropython固件编译(unix)

四、进行unix端口编译,更新子模组(若不更新,代码下好后编译会发现很多报错,很多依赖库找不到)

cd lv_micropython/
git submodule init lib/berkeley-db-1.xx
git submodule init lib/axtls
git submodule init lib/lv_bindings
git submodule update
 
cd lv_micropython/lib/lv_bindings/
git submodule init lvgl
git submodule init pycparser
git submodule update
 
cd lv_micropython/lib/lv_bindings/driver/png/
git submodule init lodepng
git submodule update
(执行过程可能会失败,则一直执行至更新成功)           

五、修改mpconfigvariant.h文件(支持help('modules')命令)

cd ports/unix/variants/standard目录下,执行vi mpconfigvariant.h命令,添加如下内容:

#define MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE (1)
#define MICROPY_PY_BUILTINS_NEXT2      (1)
#define MICROPY_PY_BUILTINS_RANGE_BINOP (1)
#define MICROPY_PY_BUILTINS_HELP       (1)
#define MICROPY_PY_BUILTINS_HELP_MODULES (1)           

截图:

Ubuntu系统上进行lv_micropython固件编译(unix)

六、编译(先编译mpy-cross工具)

cd lv_micropython
make -C mpy-cross           
Ubuntu系统上进行lv_micropython固件编译(unix)

(再编译nix端口的mpy)

cd lv_micropython
make -C ports/unix/           
Ubuntu系统上进行lv_micropython固件编译(unix)

编译成功后会在ports/unix/目录下生成micropython文件

七、测试

1、执行命令查看micropython版本及模块信息

./ports/unix/micropython           

如截图micropython版本v1.18及支持的模块信息

Ubuntu系统上进行lv_micropython固件编译(unix)

2、打开UI界面测试(可以使用micropython开发lvgl应用)

cd lib/lv_bindings/examples/
vi  advanced_demo.py

添加如下代码:
 
if __name__ == '__main__':
    import time
    while True:
        time.sleep(1)           
Ubuntu系统上进行lv_micropython固件编译(unix)

添加完代码,执行如下命令:

/home/huaquan/lv_micropython/ports/unix/micopython advanced_demo.py           

运行效果:

Ubuntu系统上进行lv_micropython固件编译(unix)