日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP32开发 -- 试玩ESP32

發布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP32开发 -- 试玩ESP32 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前文要測試網絡調試助手,手頭正好有個ESP32一直沒有試過。這次正好拿來試玩一下。

一、ESP32官網查看

官網:ESP32官網

這款最小系統開發板搭載了樂鑫最新的系統級芯片 ESP32, 支持 Wi-Fi 和藍牙功能,具有豐富的外設,能夠讓開發者盡情發揮想象力進行二次開發!

二、Ubuntu系統下ESP32開發環境的搭建

參看:Ubuntu系統下ESP32開發環境的搭建

1、安裝交叉編譯工具鏈依賴的環境:

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

2、創建ESP32專用的工作目錄:

sudo mkdir /esp32

3、設置文件夾的歸屬為當前用戶:

sudo chown user:user /esp32

4、創建三個文件夾:

crossTools、demos、sources分別保存交叉編譯工具鏈、樣例和SDK源碼:
cd /esp32
mkdir crossTools demos sources

5、進入crossTools文件夾,下載官方的交叉編譯工具:

注意,需要查看你的linux是32位還是64位的。
在linux終端輸入 getconf LONG_BIT 命令
如果是32位機器,則結果為32
[root@localhost ~]# getconf LONG_BIT
32
如果是64位機器,則結果為64
[root@localhost ~]# getconf LONG_BIT
64

Linux(x32):wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-59.tar.gz
Linux(x64):wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-59.tar.gz

6、 解壓文件到當前目錄下:

tar -xzvf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz

三、修改環境變量

1、將解壓后的交叉編譯工具連添加到系統的PATH環境變量中

sudo vim /etc/profile

2、在最后面添加交叉編譯工具鏈bin文件夾的目錄

export PATH=$PATH:/esp32/crossTools/xtensa-esp32-elf/bin

3、然后更新一下profile文件,使之生效

source /etc/profile

4、檢查是否安裝成功

xtensa-esp32-elf-gcc -v
如果看到有版本信息顯示,說明已經安裝成功

5、可以看到使用的gcc版本為4.8.5

針對的目標機器格式為xtensa-esp32-elf,支持編譯的源文件有C和C++,支持的線程模式是單線程single,整套的交叉編譯工具鏈是使用crosstool-NG工具制作,如果不怕折騰,用戶也可以自己制作一個新的

$ xtensa-esp32-elf-gcc -v Using built-in specs. COLLECT_GCC=xtensa-esp32-elf-gcc COLLECT_LTO_WRAPPER=/esp32/crossTools/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/4.8.5/lto-wrapper Target: xtensa-esp32-elf Configured with: /home/vagrant/crosstool-NG/.build/src/gcc-4.8.5/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-sysroot=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-59-g8d95cad' --disable-__cxa_atexit --enable-cxx-flags='-fno-exceptions -fno-rtti' --with-gmp=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-cloog=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-libelf=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-libgomp --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-nls --disable-multilib --enable-languages=c,c++ Thread model: single gcc version 4.8.5 (crosstool-NG crosstool-ng-1.22.0-59-g8d95cad)

四、從Github上獲取ESP-IDF

可以直接通過gitclone的方式獲取ESP-IDF:
git clone –recursive https://github.com/espressif/esp-idf.git

ESP-IDF的目錄結構如下:
components:ESP-IDF的核心組件
examples:ESP-IDF提供的實例程序
make:ESP-IDF工程管理目錄
tools:ESP-IDF提供的工具集
docs:ESP-IDF相關文檔

將esp-idf拷貝到 /esp32/sources

1、將ESP-IDF目錄下examples中的hello_world樣例拷貝到我們之前新建的demo文件夾中

cp /esp32/sources/esp-idf/examples/get-started/hello_world/ /esp32/demos/ -rf

打開Makefile,發現里面需要一個IDF_PATH的變量
在/etc/profile中添加這樣一個環境變量:
export IDF_PATH=/esp32/sources/esp-idf
source /etc/profile

2、配置項目工程,在工程的根目錄下使用make menuconfig

  • 進入SDK tool configuration查看交叉編譯工具鏈是否指定正確,已經python命令是否正確安裝,ESP-IDF需要你的python屬于python2的版本,最好不要實用python3
  • 進入Bootloader config目錄,配置bootloader的打印日志顯示信息等級為warning
  • 進入Secure boot configuration,開發階段建議關閉secure boot功能
  • 進入Serial flasher config,指定用于燒寫程序的串口設備,一般使用USB轉串口的選擇/dev/ttyUSB0即可,設置默認的波特率為115200,Flash的SPI模式為DIO,SPI速率為40MHz,Flash的大小為2MB
  • 進入Partition Table設置分區表,為了更好的管理SPI Flash,ESP-IDF引入了分區表的概念,默認使用Single factory app,no OTA制作分區BIN
  • Component config是對ESP-IDF的內核進行的更加詳細的配置





  • 退出make menuconfig的配置界面,保存剛才的配置,將會在工程根目錄下新生成一個build文件夾和sdkconfig文件

  • 在工程根目錄下輸入make all將會編譯所有的BIN文件,默認會編譯bootloader、partition_table、app文件,并且還會提示如何進行燒寫
  • 3、安裝gcc-5.2.0

    因為gcc版本應該為gcc-5.2.0,而我的為gcc-4.8.5。所以編譯出現警告。
    WARNING: Compiler version is not supported: 4.8.5
    Expected to see version(s): 5.2.0

    參看:編譯安裝GCC 5.2.0
    相關軟件下載:
    gmp 6.0、mpfr 3.1.3、mpc 1.0.3、gcc-5.2.0

    安裝gmp 6.0

    tar xvf gmp-6.0.0a.tar.bz2
    cd gmp-6.0.0
    ./configure
    make -j4
    make check
    make install

    安裝mpfr 3.1.3

    mpfr依賴于gmp。

    tar xvf mpfr-3.1.3.tar.bz2
    cd mpfr-3.1.3
    ./configure –with-gmp-include=/usr/local/include \
    –with-gmp-lib=/usr/local/lib
    make -j4
    make install

    安裝mpc 1.0.3

    mpc依賴于gmp和mpfr。

    tar xvf mpc-1.0.3.tar.gz
    cd mpc-1.0.3
    ./configure –with-mpfr-include=/usr/local/include \
    –with-mpfr-lib=/usr/local/lib \
    –with-gmp-include=/usr/local/include \
    –with-gmp-lib=/usr/local/lib
    make -j4
    make check
    make install

    安裝GCC

    tar xvf gcc-5.2.0.tar.bz2
    cd gcc-5.2.0
    先unset若干個系統變量,以免出現某些宏找不到的情況。
    unset CPLUS_INCLUDE_PATH LIBRARY_PATH
    配置環境變量:
    vi /etc/profile
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    source /etc/profile

    配置GCC
    ./configure \
    –with-gmp-include=/usr/local/include \
    –with-gmp-lib=/usr/local/lib \
    –with-mpfr-include=/usr/local/include \
    –with-mpfr-lib=/usr/local/lib \
    –with-mpc-include=/usr/local/include \
    –with-mpc-lib=/usr/local/lib \
    –enable-languages=c,c++ \
    –enable-threads=posix \
    –disable-multilib
    詳細的配置項說明可參考安裝文檔,這里只編譯c和c++的編譯器。
    然后make -j8,啟用多線程編譯。(時間有點長)

    安裝
    如果編譯順利通過,make install即可。
    gcc和g++默認被安裝到/usr/local/bin目錄下,libgcc和libstdc++默認被安裝到/usr/local/lib64(x64)。

    記得更下下動態庫緩存。
    ldconfig

    # gcc -v 使用內建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/5.2.0/lto-wrapper 目標:i686-pc-linux-gnu 配置為:./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib --with-mpfr-include=/usr/local/include --with-mpfr-lib=/usr/local/lib --with-mpc-include=/usr/local/include --with-mpc-lib=/usr/local/lib --enable-languages=c,c++ --enable-threads=posix --disable-multilib 線程模型:posix gcc 版本 5.2.0 (GCC)

    總結

    以上是生活随笔為你收集整理的ESP32开发 -- 试玩ESP32的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。