building_with_espdl-3-failure
building_with_espdl-3-failure
这部分在实践的过程中知识有点杂,因此笔记稍显混乱。
windows中的powershell
类似ls的shell语言
Get-ChildItem
列出当前目录下的所有文件和文件夹:Get-ChildItem
递归列出指定目录下的所有文件和文件夹:Get-ChildItem -Recurse C:\MyDocuments
筛选特定类型的文件:Get-ChildItem -Filter *.txt
常用参数:
-Path: 指定要获取子项的路径。-Recurse: 递归搜索子目录。-Filter: 根据文件名模式筛选文件。-Include: 指定要包含的文件名模式。-Exclude: 指定要排除的文件名模式。-Directory: 只返回目录。-File: 只返回文件。
dir
列出当前目录下的所有文件和文件夹:dir
以简略格式列出:dir /B
只列出目录:dir /AD
常用参数:
/B: 以简略格式列出。/AD: 只列出目录。/S: 递归搜索子目录。
其他杂项
打开jupyter notebook中ipynb文件自动关闭jupyter终端:
https://blog.csdn.net/qq_45404853/article/details/121310483?fromshare=blogdetail&sharetype=blogdetail&sharerId=121310483&sharerefer=PC&sharesource=m0_60571820&sharefrom=from_link
windows的conda安装:
https://blog.csdn.net/ciagrate/article/details/140129703?fromshare=blogdetail&sharetype=blogdetail&sharerId=140129703&sharerefer=PC&sharesource=m0_60571820&sharefrom=from_link
在powershell中识别不了conda环境是因为也需要像ubuntu中修改.bashrc一样修改powershell的配置文件。
原文第三部分的复现(失败)
本人在windows11上重新尝试了全文,参数是esp-idf的release/v4.4的branch,esp-dl的idfv4.4的branch,python=3.7,和原作者完全相同。但在执行到第二部分优化和量化模型,在前面笔记提到的三行代码处仍然失败(如下图),证明esp-dl确实有问题。
因此本人改变思路,既然作者自己都无法在24年复现22年的优化和量化过程,那我直接使用22年作者机缘巧合成功生成的cpp文件,直接往esp32s3里面烧录,复现第三部分模型部署,但是仍然遇到问题:
cmake文件路径未标明
外层 CMakeLists.txt 文件已经包含以下行:`set(EXTRA_COMPONENT_DIRS ./components/esp-dl)·
为了确保路径一致性,建议简化路径设置:
1 | |
在 main 文件夹中的 CMakeLists.txt 文件,可以做以下调整:
1、**更新 include_dirs**:
- 将
include_dirs添加components/esp-dl路径,以确保dl_tool.hpp能被找到。set(include_dirs ../model ${CMAKE_SOURCE_DIR}/components/esp-dl)
2、检查idf_component_register设置: - 更新
idf_component_register部分,将INCLUDE_DIRS变量更新为刚刚修改的include_dirs,确保esp-dl的头文件路径被正确添加:idf_component_register(SRCS ${srcs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})
头文件未放置在.components/esp-dl/文件夹中
.hpp 文件是一种 C++ 代码文件的扩展名,用来定义 C++ 的头文件(header file),类似于 .h 文件。本文需要将下图的esp-dl官方的头文件放到此文件夹中。
printf 函数的格式化字符串上(未解决)

当前的代码中,以下几行使用了 printf,并且 %u 与 uint32_t 类型不匹配:
1 | |
要修正这些格式化问题,需要引入 <inttypes.h> 头文件,然后使用 PRIu32 来替代 %u。这是因为 PRIu32 是一个与 uint32_t 类型兼容的格式宏。以下是修改后的代码示例:
1 | |
后续可能解决方案
只有放弃esp-dl,使用其他模型转化工具了。