【重要】23集 搭建ESP-IDF和VSCODE开发环境 编译Helloword和AI聊天工程-《MCU嵌入式AI开发笔记》
参考文档:
https://lceda001.feishu.cn/wiki/Xqx3wH8wMi3BrrkmeTXcgLL7nQk
我们修改了secretkey等,之后我们修改menuconfig
配置menuconfig
之后出现问题了:问题见下面:你遇到这个问题了么?
评论区讨论留言
里面有个error:
---------------------------ERROR--------------------------
CMake Error at D:/ESP-IDF/tools/cmake/build.cmake:544 (message):
ERROR: Because espressif/esp_lcd_touch_ft5x06 (1.0.6) depends on
espressif/esp_lcd_touch (^1.0.4) which doesn't match any versions,
那我们看
esp_lcd_touch_ft5x06 (1.0.6)这个没有依赖。
我们在乐鑫官网上找一下
https://components.espressif.com/components?q=esp_lcd_touch_ft5x06
我们点进去
之后在vscode里面执行这个命令:
idf.py add-dependency esp_lcd_touch_ft5x061.0.0
但是出现如下错误:
PS D:\workspace\esp-idf\ai_chat> idf.py add-dependency esp_lcd_touch_ft5x061.0.0
idf.py : 无法将"idf.py"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确
,然后再试一次。
所在位置 行:1 字符: 1
- idf.py add-dependency esp_lcd_touch_ft5x06==1.0.0
+ CategoryInfo : ObjectNotFound: (idf.py:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
+
要解决VSCODE里面无法识别idf.py这个问题了。
重新安装ESP-IDF
先卸载,我们的版本有问题:
之后打开https://dl.espressif.cn/dl/esp-idf/?idf=4.4,
看一下版本:
选择5.2.2版本的离线安装版本。下载到如下位置:
e:\technology\ESP32\esp-idf-tools-setup-offline-5.2.2.exe
之后点击安装。
这回有framework了,之前安装的版本里面没有。
开始安装。
等待。
安装完成。
我们老老实实的先玩转hello word例程。
把hello word放到如下目录
D:\workspace\esp-idf\hello_world
在vscode里面打开目录到此。
分别设置esp32c3 和menuconfig,把flash设置成8M,之后我们点击build按钮开始编译
等待看看编译结果。
开来这回编译环境是真的搭建正确了。
之后我们打开AI-CHAT工程。menuconfig
但是提示:
[0;33mHINT: The component audio_sal could not be found. This could be because: component name was misspelled, the component was not added to the build, the component has been moved to the IDF component manager or has been removed and refactored into some other component.
Please look out for component in 'https://components.espressif.com' and add using ** 'idf.py add-dependency'** command.
所以我们打开https://components.espressif.com
这里找不到这个audio_sal,所以猜测应该是需要再次安装esp-ADF
我们安装esp-adf,之后选择本地的目录和gitee。
开始安装
但是安装提示无法clone,应该是下载不了。所以直接下载到本地
e:\technology\ESP32\esp-adf.7z,之后解压到Espressif文件夹内。
下载,等待。
同时在重新安装以下esp-adf
把原来的改名
之后vscode里面重新安装esp-adf
看一下这次是否安装成功。还是如下问题,看来
算了,还是消停的等待把esp-adf下载到本地吧
还有一种方法:
看看能否成功。还是不行,还是等下载整个esp-adf包吧。
下载完成,我们直接解压缩,把esp-adf 拷贝到espressif目录下:
安装好后我们看一下
C:\Users\phlr\AppData\Roaming\Code\User\settings.json
这回我们在看看vscode
这回看着往下执行了。
等待吧
menuconfig配置
1:配置flash
2:确认分区表选择的是自定义,名称是partitions.csv。
3:确认开发板型号,是自定义的板子。
4:确定勾选Swap the 2 bytes of RGB565
5:确定LVGL的内存设置为下图所示:
6:确认勾选允许大量字符。
7:确认LVGL的第三方库GIF解码库被勾选
经过上面的配置,现在就可以编译下载了,下载好程序后,就可以体验了。
我们save一下。之后编译。
等待:
至此,编译完成。可以下载了,我们下一集开始下载。
附件:错误信息:
== SDK Configuration Editor]
---------------------------ERROR--------------------------
WARNING: Python interpreter "D:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe" used to start idf.py is not from installed venv "D:/Espressif/python_env/idf5.2_py3.11_env"
-----------------------END OF ERROR-----------------------
Executing action: confserver
Running cmake in directory D:\workspace\esp-idf\ai_chat\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=D:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DCCACHE_ENABLE=1 D:\workspace\esp-idf\ai_chat"...
-- Found Git: D:/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: D:/Espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/Espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- git rev-parse returned 'fatal: not a git repository (or any of the parent directories): .git'
-- Could not use 'git describe' to determine PROJECT_VER.
-- Building ESP-IDF components for target esp32c3
Dependencies lock doesn't exist, solving dependencies.
Using component placed at D:\workspace\esp-idf\ai_chat\components\espressif__esp_lcd_touch_ft5x06 for dependency espressif/esp_lcd_touch_ft5x06(^1.0.6), specified in D:/workspace/esp-idf/ai_chat/main\idf_component.yml
...Using component placed at D:\workspace\esp-idf\ai_chat\components\espressif__esp_lcd_touch_ft5x06 for dependency espressif/esp_lcd_touch_ft5x06(^1.0.6), specified in D:/workspace/esp-idf/ai_chat/main\idf_component.yml
---------------------------ERROR--------------------------
CMake Error at D:/ESP-IDF/tools/cmake/build.cmake:544 (message):
ERROR: Because espressif/esp_lcd_touch_ft5x06 (1.0.6) depends on
espressif/esp_lcd_touch (^1.0.4) which doesn't match any versions,
-----------------------END OF ERROR-----------------------
---------------------------ERROR--------------------------
espressif/esp_lcd_touch_ft5x06 is forbidden.
So, because project depends on espressif/esp_lcd_touch_ft5x06 (1.0.6),
version solving failed.
Call Stack (most recent call first):
D:/ESP-IDF/tools/cmake/project.cmake:605 (idf_build_process)
CMakeLists.txt:8 (project)
-----------------------END OF ERROR-----------------------
...-- Configuring incomplete, errors occurred!
See also "D:/workspace/esp-idf/ai_chat/build/CMakeFiles/CMakeOutput.log".
---------------------------ERROR--------------------------
cmake failed with exit code 1, output of the command is in the D:\workspace\esp-idf\ai_chat\build\log\idf_py_stderr_output_19612 and D:\workspace\esp-idf\ai_chat\build\log\idf_py_stdout_output_19612
-----------------------END OF ERROR-----------------------
---------------------------ERROR--------------------------
SDK Configuration editor confserver process exited with code: 2
-----------------------END OF ERROR----------------------- ==