天天看點

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)