ESP32学习笔记(1)——Linux开发环境搭建

一、安装Linux常用软件:

sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git

二、安装依赖环境:

sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

三、获取esp-idf框架源码:

参考:【ESP32】加快esp-idf下载速度最新方法记录

mkdir ~/ESP32&&mkdir ~/ESP32/tools&&cd ~/ESP32/tools
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
cd ..
git clone -b release/v4.0 https://gitee.com/EspressifSystems/esp-idf.git
cd ~/ESP32/tools/esp-gitee-tools
./submodule-update.sh ~/ESP32/esp-idf

四、安装 ESP-IDF 使用的工具:

【问题解决】ESP32报错:ERROR: Could not find a version that satisfies the requirement

# 比如编译器、调试器、Python 包等,通过脚本安装
# 安装的编译链:xtensa-esp32-elf, xtensa-esp32s2-elf, esp32ulp-elf, esp32s2ulp-elf, openocd-esp32
cd ~/ESP32/esp-idf
./install.sh 

成功标志:
在这里插入图片描述


五、设置环境变量:

!!!注意:该配置命令每打开一个新的命令窗口编译前都要调用

# 通过 ESP-IDF 提供的另一个脚本完成。
. ./export.sh
或者
. $IDF_PATH/export.sh

成功标志:

Adding ESP-IDF tools to PATH...
Using Python interpreter in /home/pjw/.espressif/python_env/idf4.2_py3.8_env/bin/python
Checking if Python packages are up to date...
Python requirements from /home/pjw/ESP32/esp-idf/requirements.txt are satisfied.
Added the following directories to PATH:
  /home/pjw/ESP32/esp-idf/components/esptool_py/esptool
  /home/pjw/ESP32/esp-idf/components/espcoredump
  /home/pjw/ESP32/esp-idf/components/partition_table
  /home/pjw/ESP32/esp-idf/components/app_update
  /home/pjw/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin
  /home/pjw/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin
  /home/pjw/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin
  /home/pjw/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200709/openocd-esp32/bin
  /home/pjw/.espressif/python_env/idf4.2_py3.8_env/bin
  /home/pjw/ESP32/esp-idf/tools
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

  idf.py build
  

手动永久性设置PATH环境变量:

xtensa-esp32-elf. ./export.sh时提示加入了PATH,如果还是出错。通过以下方法设置:

vim ~/.bashrc
export IDF_PATH=~/ESP32/esp-idf
export PATH=~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin:$PATH
export PATH=~/ESP32/esp-idf/tools:$PATH
source ~/.bashrc

# 查看环境变量
echo $IDF_PATH
echo $PATH
# 查询版本验证:
xtensa-esp32-elf-gcc -v

六、工程编译与烧录:

【问题解决】The following Python requirements are not satisfied
【问题解决】make: xtensa-esp32-elf-gcc: Command not found
【问题解决】idf.py:未找到命令
【问题解决】could not open port /dev/ttyUSB0: [Errno 13] Permission denied: ‘/dev/ttyUSB0‘

拷贝工程:

新建工程文件夹,并把hello_world文件夹拷贝过来。

mkdir ~/ESP32/project&&cd ~/ESP32/project
cp -r $IDF_PATH/examples/get-started/hello_world/ .
cd hello_world/

编译:

Makefile的支持make编译命令,有CMakeLists.txt文件的支持idf.py编译命令。

# make命令
make menuconfig	# 图形化配置,配置见图
make			# 编译
make flash		# 下载
make monitor	# 串口监控

# idf.py 命令
idf.py set-target esp32	# 设置编译目标芯片
idf.py menuconfig		# 图形界面配置
idf.py build			# 编译

查询使用的串口号:

ks /dev/tty*(查询串口工具接入前和接入后):
在这里插入图片描述

图形化配置:

在这里插入图片描述

七、串口工具查看输出LOG

安装串口工具:

# 安装
apt-get install cutecom 
# 进入root用户
sudo su
# 运行 波特率74880
cutecom

LOG输出:

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6880
ho 0 tail 12 room 4
load:0x40078000,len:14704
load:0x40080400,len:4292
entry 0x400806e4
[0;32mI (76) boot: Chip Revision: 1[0m
[0;32mI (76) boot_comm: chip revision: 1, min. bootloader chip revision: 0[0m
[0;32mI (41) boot: ESP-IDF v4.0.2-206-g5630b17e1 2nd stage bootloader[0m
[0;32mI (41) boot: compile time 16:22:45[0m
[0;32mI (47) boot: Enabling RNG early entropy source...[0m
[0;32mI (48) boot: SPI Speed      : 40MHz[0m
[0;32mI (52) boot: SPI Mode       : DIO[0m
[0;32mI (56) boot: SPI Flash Size : 4MB[0m
[0;32mI (60) boot: Partition Table:[0m
[0;32mI (63) boot: ## Label            Usage          Type ST Offset   Length[0m
[0;32mI (70) boot:  0 nvs              WiFi data        01 02 00009000 00006000[0m
[0;32mI (78) boot:  1 phy_init         RF data          01 01 0000f000 00001000[0m
[0;32mI (85) boot:  2 factory          factory app      00 00 00010000 00100000[0m
[0;32mI (93) boot: End of partition table[0m
[0;32mI (97) boot_comm: chip revision: 1, min. application chip revision: 0[0m
[0;32mI (104) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x0663c ( 26172) map[0m
[0;32mI (123) esp_image: segment 1: paddr=0x00016664 vaddr=0x3ffb0000 size=0x01fb0 (  8112) load[0m
[0;32mI (126) esp_image: segment 2: paddr=0x0001861c vaddr=0x40080000 size=0x00400 (  1024) load[0m
[0;32mI (131) esp_image: segment 3: paddr=0x00018a24 vaddr=0x40080400 size=0x075ec ( 30188) load[0m
[0;32mI (152) esp_image: segment 4: paddr=0x00020018 vaddr=0x400d0018 size=0x12d3c ( 77116) map[0m
[0;32mI (180) esp_image: segment 5: paddr=0x00032d5c vaddr=0x400879ec size=0x021c0 (  8640) load[0m
[0;32mI (190) boot: Loaded app from partition at offset 0x10000[0m
[0;32mI (190) boot: Disabling RNG early entropy source...[0m
[0;32mI (192) cpu_start: Pro cpu up.[0m
[0;32mI (195) cpu_start: Application information:[0m
[0;32mI (200) cpu_start: Project name:     hello-world[0m
[0;32mI (206) cpu_start: App version:      1[0m
[0;32mI (210) cpu_start: Compile time:     Dec 25 2020 16:22:48[0m
[0;32mI (216) cpu_start: ELF file SHA256:  24567f858aeedc0c...[0m
[0;32mI (222) cpu_start: ESP-IDF:          v4.0.2-206-g5630b17e1[0m
[0;32mI (228) cpu_start: Starting app cpu, entry point is 0x4008105c[0m
[0;32mI (214) cpu_start: App cpu up.[0m
[0;32mI (239) heap_init: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (246) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m
[0;32mI (252) heap_init: At 3FFB2FA0 len 0002D060 (180 KiB): DRAM[0m
[0;32mI (258) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM[0m
[0;32mI (264) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM[0m
[0;32mI (271) heap_init: At 40089BAC len 00016454 (89 KiB): IRAM[0m
[0;32mI (277) cpu_start: Pro cpu start user code[0m
[0;32mI (295) spi_flash: detected chip: generic[0m
[0;32mI (296) spi_flash: flash io: dio[0m
[0;32mI (296) cpu_start: Starting scheduler on PRO CPU.[0m
[0;32mI (0) cpu_start: Starting scheduler on APP CPU.[0m
Hello world!
This is ESP32 chip with 2 CPU cores, WiFi/BT/BLE, silicon revision 1, 4MB external flash
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
Restarting in 6 seconds...
Restarting in 5 seconds...
Restarting in 4 seconds...
Restarting in 3 seconds...
Restarting in 2 seconds...
Restarting in 1 seconds...
Restarting in 0 seconds...
Restarting now.

参考:安信可ESP32-CAM摄像头开发demo–局域网拍照、实时视频、人脸识别

猜你喜欢

转载自blog.csdn.net/p1279030826/article/details/111677244