午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

mpython、micropython的環(huán)境配置完整攻略

 beginnow1 2021-09-29

Mpython的環(huán)境配置

GITHUB上拉去資源:

mkdir -p ~/espcd ~/esp

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

未成功完全拉取子模塊的話,更換網(wǎng)絡(luò),執(zhí)行以下步驟

git submodule update --init 

git submodule update --init --recursive

進(jìn)入esp-idf 目錄 ,拉取子模塊

安裝工具環(huán)境:

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

參考官網(wǎng)鏈接:

https://docs./projects/esp-idf/zh_CN/v4.3/esp32/get-started/linux-setup.html

安裝工具

cd ~/esp/esp-idf

./install.sh

設(shè)置環(huán)境變量

. $HOME/esp/esp-idf/export.sh

拷貝例程測(cè)試下

cd ~/esp

cp -r $IDF_PATH/examples/get-started/hello_world .

cd ~/esp/hello_world

配置工程

idf.py set-target esp32

idf.py menuconfig

編譯

idf.py build

下載測(cè)試

idf.py -p /dev/ttyUSB0 flash

idf.py -p /dev/ttyUSB0 monitor

如果USB權(quán)限不夠,執(zhí)行以下命令

sudo usermod -a -G dialout $USER


再拉取micropython進(jìn)行編譯

cd ~/esp

git clone https://github.com/micropython/micropython --depth=1

接著編譯一下 mpy-coress ,用來(lái)給 Python 文件預(yù)編譯為 bytecode 到固件里的工具鏈。

make -C mpy-cross

然后初始化一下相關(guān)的子倉(cāng)庫(kù)。

git submodule init lib/berkeley-db-1.xx

git submodule update

最后在編譯(make)一下。

cd ports/esp32

Make

如果有問(wèn)題,需要確定esp-idf的版本是否匹配:

micropython 依賴于 esp-idf ,但是需要切換 esp-idf 的版本,也就是說(shuō)隨著 micropython 不一定會(huì)支持最新的 esp-idf 代碼,如果出現(xiàn)錯(cuò)誤,你需要通過(guò) git checkout 切換版本號(hào)。

命令格式示范:git checkout <Current supported ESP-IDF commit hash>

而尾巴的<hash> 存放在 Makefile 文件中的,如下內(nèi)容。

# the git hash of the currently supported ESP IDF version

ESPIDF_SUPHASH := 6b3da6b1882f3b72e904cc90be67e9c4e3f369a9

所以在 esp-idf 的目錄下有如下操作(注意和 readme 有點(diǎn)點(diǎn)不同鴨)

cd esp-idf

git checkout 6b3da6b1882f3b72e904cc90be67e9c4e3f369a9

git submodule update --init --recursive


最后編譯mpython

Python 版本安裝pyserial pyparsing

pip install pyserial 'pyparsing<2.4'

拉取mpythongit倉(cāng)庫(kù),

git clone https://github.com/labplus-cn/mpython.git

將拉取的文件(除了esp-idf,micropython 文件夾)復(fù)制到esp文件夾中,再執(zhí)行

git submodule update --init --recursive

編譯mpython固件

cd ~/esp/port

make

打開(kāi)串口收發(fā),組合 Ctrl + A 和 Ctrl + Q 退出串口(需要安裝 picocom )

picocom -b 115200 /dev/ttyUSB0

擦除 esp32 中 flash 。

make erase

編譯后燒錄 micropython 固件。

make deploy

清理編譯結(jié)果。

make clean

組合命令,燒錄完固件后打開(kāi)串口。

make deploy && picocom -b 115200 /dev/ttyUSB0

額外的信息

為什么固件只有一個(gè) firmware.bin 文件?

固件編譯后的 firmware.bin 文件產(chǎn)生在 port/esp32/build 文件夾,它是通過(guò) makeimg.py 合成的,看一下就知道發(fā)生了什么。

import sys

OFFSET_BOOTLOADER = 0x1000

OFFSET_PARTITIONS = 0x8000

OFFSET_APPLICATION = 0x10000

files_in = [

    ('bootloader', OFFSET_BOOTLOADER, sys.argv[1]),

    ('partitions', OFFSET_PARTITIONS, sys.argv[2]),

    ('application', OFFSET_APPLICATION, sys.argv[3]),

]

file_out = sys.argv[4]

cur_offset = OFFSET_BOOTLOADER

with open(file_out, 'wb') as fout:

    for name, offset, file_in in files_in:

        assert offset >= cur_offset

        fout.write(b'\xff' * (offset - cur_offset))

        cur_offset = offset

        with open(file_in, 'rb') as fin:

            data = fin.read()

            fout.write(data)

            cur_offset += len(data)

            print('%-12s% 8d' % (name, len(data)))

    print('%-12s% 8d' % ('total', cur_offset))

可以得知,firmware.bin 是由 bootloader + partitions + application 而來(lái)的一個(gè)單獨(dú)的 bin ,即為固件,所以只需要在 0x1000 起始位置燒入 esp32 的 flash 里就可以運(yùn)行 micropython 了。

如果要改為0x00開(kāi)始燒寫的話,

cur_offset = OFFSET_BOOTLOADER

改為

cur_offset = 0x00

參考鏈接:

https://github.com/labplus-cn/mpython

https://docs./projects/esp-idf/zh_CN/v4.3/esp32/get-started/index.html#

https://www.cnblogs.com/juwan/p/11448072.html

問(wèn)題參考:

安裝好依賴包,python,cmake3.5以上,pyserial ' pyparsing<2.4 '

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

pip install pyserial pyparsing==2.3.1 

參考:https://docs./projects/esp-idf/zh_CN/latest/esp32/get-started/linux-setup.html

https://docs./projects/esp-idf/zh_CN/latest/esp32/get-started/linux-setup-scratch.html

ubuntu中設(shè)置工具鏈并加入PATH環(huán)境變量

1. 需要先安裝以下軟件包:

 sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial

· 1

1.  Espressif 的網(wǎng)站下載ESP32 工具鏈:
64-bit Linux:https://dl./dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
32-bit Linux:https://dl./dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz

2. 下載完成后,將它解壓到 ~/esp 目錄,更新環(huán)境變量 PATH

export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"

1. 檢查 PATH 設(shè)置是否正確

printenv PATH

     檢查一下字符串的末尾是否包含類似的工具鏈的路徑

$ printenv PATH

/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/user-name/esp/xtensa-esp32-elf/bin

xtensa-esp32-elf命令沒(méi)有,esp32工具鏈

參考:https://blog.csdn.net/qq_40773212/article/details/108931402

fatal error: curses.h: 沒(méi)有那個(gè)文件或目錄

解決辦法:安裝ncurses即可

sudo apt-get install libncurses5-dev

Arch Linux需按照以下應(yīng)用:

sudo apt-get install gcc git wget make libncurses5-dev flex bison gperf python python-setuptools python-cryptography python-pyparsing python-pyelftools

ubuntu軟件中心應(yīng)用商店不見(jiàn)了

sudo apt install ubuntu-software

/bin/sh: 1: /usr/bin/cmake: not found

sudo apt install cmake

#用這指令可以正常安裝到/usr/bin,但是可能會(huì)版本過(guò)低的情況,用容器sudo snap install cmake可以安裝3.20的但是路徑不對(duì)。

參考CMake安裝:https://www.cnblogs.com/wangdongfang/p/13550017.html

1、下載cmake源碼包(https:///download/),解壓后進(jìn)入解壓目錄

2、執(zhí)行安裝配置命令:配置軟件二進(jìn)制安裝到/usr/bin目錄下esp32編譯路徑需改為/usr/bin

./bootstrap --prefix=/usr/bin

3、接下來(lái)執(zhí)行make命令,直至安裝成功

4、sudo make install

記得用sudo不然會(huì)新建不了文件以下報(bào)錯(cuò)

file cannot create directory: /usr/bin/doc/cmake-3.19/cmsys.  Maybe need

  administrative privileges.

安裝路徑還是有問(wèn)題。

Cmake官網(wǎng)有提供APT存儲(chǔ)庫(kù)的添加方法,https://apt./

添加相應(yīng)Ubuntu版本的庫(kù),就能加載更多APT版本

用以下方式查詢APT支持的軟件包版本

apt-cache madison <<package name>>

apt-cache policy <<package name>>

apt-get安裝指定版本

apt-get install <<package name>>=<<version>>

/esp/micropython/ports/esp32目錄下,make出現(xiàn)以下報(bào)錯(cuò)。

esp-idf/components/xtensa

-- Configuring incomplete, errors occurred!

makefile中添加如下內(nèi)容(ESPIDF應(yīng)根據(jù)自己的esp-idf目錄進(jìn)行更改):

ESPIDF = esp/esp-idf

#PORT = /dev/ttyUSB0

#FLASH_MODE = qio

#FLASH_SIZE = 4MB

#CROSS_COMPILE = xtensa-esp32-elf-

include Makefile

esp32 ninja: build stopped: subcommand failed

git checkout 4c81978a3e2220674a432a588292a4c860eef27b

切換分支從新安裝報(bào):FAILED: build.ninja

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多