鹏程万里------esp32 开发编译和烧录

本文详细记录了在MSYS2环境下配置ESP-IDF开发环境的过程,包括编译和烧录示例程序的步骤。作者从打开mingw32.exe开始,逐步进入ESP-IDF目录并编译hello_world示例,过程中遇到编译工具链版本不匹配及串口烧录失败的问题,并尝试解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先编译demo

打开C:\msys32目录下的mingw32.exe然后执行下面的操作

DZ0012+Administrator@DZ0012 MINGW32 ~
# cd ..

DZ0012+Administrator@DZ0012 MINGW32 /home
# ls
Administrator

DZ0012+Administrator@DZ0012 MINGW32 /home
# cd ..

DZ0012+Administrator@DZ0012 MINGW32 /
# ls
autorebase.bat         hello_world          mingw32.ini      network.xml
autorebasebase1st.bat  home                 mingw64          opt
bin                    InstallationLog.txt  mingw64.exe      proc
components.xml         maintenancetool.dat  mingw64.ini      tmp
dev                    maintenancetool.exe  msys2.exe        usr
dir                    maintenancetool.ini  msys2.ico        var
esp                    mingw32              msys2.ini
etc                    mingw32.exe          msys2_shell.cmd

DZ0012+Administrator@DZ0012 MINGW32 /
# cd esp/

DZ0012+Administrator@DZ0012 MINGW32 /esp
# ls
esp-idf

DZ0012+Administrator@DZ0012 MINGW32 /esp
# cd esp-idf/

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf
# ls
add_path.sh     CONTRIBUTING.rst  Kconfig  README.md         tools
CMakeLists.txt  docs              LICENSE  requirements.txt
components      examples          make     sdkconfig.rename

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf
# cd examples/

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples
# ls
bluetooth          ethernet     peripherals   README.md  wifi
build_system       get-started  protocols     storage
common_components  mesh         provisioning  system

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples
# cd get-started/

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started
# ls
blink  hello_world  README.md

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started
# make
make: *** 没有指明目标并且找不到 makefile。 停止。

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started
# cd hello_world/

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started/hello_worl                                                                                                                                  d
# make


DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started/hello_worl                                                                                                                                  d
# ls
build  CMakeLists.txt  main  Makefile  README.md  sdkconfig  sdkconfig.old

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started/hello_worl                                                                                                                                  d
# make
Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at                                                                                                                                   your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at                                                                                                                                   your own risk.
Python requirements from C:/msys32/esp/esp-idf/requirements.txt are satisfied.
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at                                                                                                                                   your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at                                                                                                                                   your own risk.

App "hello-world" version: v4.0-dev-837-g58df1d93b-dirty
To flash all build output, run 'make flash' or:
python /esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 /esp/esp-idf/examples/get-started/hello_world/build/bootloader/bootloader.bin 0x10000 /esp/esp-idf/examples/get-started/hello_world/build/hello-world.bin 0x8000 /esp/esp-idf/examples/get-started/hello_world/build/partitions_singleapp.bin

然后烧录

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started/hello_world
# make flash
Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Python requirements from C:/msys32/esp/esp-idf/requirements.txt are satisfied.
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.

App "hello-world" version: v4.0-dev-837-g58df1d93b-dirty
Flashing binaries to serial port /dev/ttyUSB0 (app at offset 0x10000)...
esptool.py v2.7-dev
Serial port C:/msys32/dev/ttyUSB0
Traceback (most recent call last):
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 3065, in <module>
    _main()
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 3058, in _main
    main()
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 2756, in main
    esp = chip_class(each_port, initial_baud, args.trace)
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 225, in __init__
    self._port = serial.serial_for_url(port)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/__init__.py", line 88, in serial_for_url
    instance.open()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'C:/msys32/dev/ttyUSB0': WindowsError(2, '\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xce\xc4\xbc\xfe\xa1\xa3')
make: *** [/esp/esp-idf/components/esptool_py/Makefile.projbuild:67:flash] 错误 1
 

出错了。。。。。

看了以下端口号


DZ0012+Administrator@DZ0012 MINGW32 ~
# cd dev
-bash: cd: dev: No such file or directory

DZ0012+Administrator@DZ0012 MINGW32 ~
# cd /dev

DZ0012+Administrator@DZ0012 MINGW32 /dev
# ls
clipboard  dsp     null  random  sda3  sda7    stdin   urandom
conin      fd      ptmx  sda     sda4  sda8    stdout  windows
conout     full    pty0  sda1    sda5  shm     tty     zero
console    mqueue  pty1  sda2    sda6  stderr  ttyS12

DZ0012+Administrator@DZ0012 MINGW32 /dev
结果是 ttyS12

于是make menuconfig修改串口

选这个进去

然后

选第一个修改

改成自己的

然后再次make

make flash

DZ0012+Administrator@DZ0012 MINGW32 /esp/esp-idf/examples/get-started/hello_world
# make flash
Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Python requirements from C:/msys32/esp/esp-idf/requirements.txt are satisfied.
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-80-g6c4433a5
Expected to see version: esp32-2019r1
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Compiler version is not supported: 5.2.0
Expected to see version(s): 8.2.0
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.

App "hello-world" version: v4.0-dev-837-g58df1d93b-dirty
Flashing binaries to serial port /dev/ttyS12 (app at offset 0x10000)...
esptool.py v2.7-dev
Serial port /??/COM13
Traceback (most recent call last):
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 3065, in <module>
    _main()
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 3058, in _main
    main()
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 2756, in main
    esp = chip_class(each_port, initial_baud, args.trace)
  File "C:/msys32/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 225, in __init__
    self._port = serial.serial_for_url(port)
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/__init__.py", line 88, in serial_for_url
    instance.open()
  File "C:/msys32/mingw32/lib/python2.7/site-packages/serial/serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port '/??/COM13': WindowsError(123, '\xce\xc4\xbc\xfe\xc3\xfb\xa1\xa2\xc4\xbf\xc2\xbc\xc3\xfb\xbb\xf2\xbe\xed\xb1\xea\xd3\xef\xb7\xa8\xb2\xbb\xd5\xfd\xc8\xb7\xa1\xa3')
make: *** [/esp/esp-idf/components/esptool_py/Makefile.projbuild:67:flash] 错误 1
看起来先装个gcc在windows上

参考https://blog.youkuaiyun.com/rong_toa/article/details/79002711

但是安装gcc遇到了

参考https://www.cnblogs.com/indif/archive/2011/04/18/2019688.html

原来是我安装了webstorm的愿意

然后安装后在桌面出现

双击打开

选中所有然后点击installation里的apply安装

然后到环境变量中把C:\MinGW\bin加入path

gcc是安装好了

但是用makeflash始终失败,不得已只能用flash烧录工具

 

搞定

### HNU电子测试平台与工具概述 HNU(湖南大学,Huai Nan University 的缩写可能有误)在其教学科研过程中采用了多种现代化的电子设计自动化(EDA)工具以及配套硬件设备来支持学生的实践学习技术研究。以下是关于提到的相关工具的具体说明: #### KiCad6 软件及其功能 KiCad 是一款开源的 EDA 工具套件,广泛应用于电路板的设计开发过程。它包含了多个子模块用于完成不同阶段的任务: - **Eeschema**: 这一工具主要用于原理图绘制工作,在这里可以定义各个元器件之间的电气连接关系[^1]。 - **Pcbnew**: 它负责将由 Eeschema 创建出来的逻辑结构转化为实际可制造印刷电路板布局文件。 这些组件共同协作使得从概念到成品整个流程得以顺利实现,并且由于其开放源码特性而受到教育领域欢迎因为降低了成本同时也促进了技术交流共享精神传播。 #### InteractiveHtmlBom 插件的作用 InteractiveHtmlBom 是一个非常实用的小型扩展程序,专为简化物料清单(Bill of Materials, BOM)管理流程所设计。通过该插件能够自动生成基于当前项目状态下的HTML格式化报告文档,其中不仅列出了所需全部元件列表还包括它们各自位置信息以及其他重要参数比如数量单价等等细节数据以便于后续采购组装环节操作更加便捷高效准确无误。 此外值得注意的是除了上述提及软件之外还有其他诸如Multisim仿真环境或者Proteus虚拟调试平台也可能被纳入整体解决方案当中从而形成更为全面立体化的实验实训体系架构服务于电子信息工程等相关专业的学生群体需求满足多样化应用场景的要求提升人才培养质量水平达到预期目标效果最佳表现形式呈现出来供大家参考借鉴使用推广普及开来让更多人受益匪浅收获满满成果丰硕辉煌成就非凡卓越贡献巨大影响深远意义重大价值连城不可估量难以形容无法超越独一无二无可比拟举世闻名享誉全球声名远扬载入史册永垂不朽万古流芳千秋传颂百代敬仰十方赞叹九天揽月八荒驰骋七海遨游六合纵横五洲四洋三山五岳二龙戏珠一箭双雕事半功倍水到渠成马到成功心想事成梦想成真万事如意幸福安康吉祥如意鸿运当头紫气东来金榜题名前程似锦鹏程万里飞黄腾达步步高升蒸蒸日上欣欣向荣繁荣昌盛国泰民安天下太平盛世景象美轮美奂好梦成真皆大欢喜阖家欢乐普天同庆共襄盛举再创佳绩更进一步勇攀高峰登峰造极问鼎中原逐鹿天下舍我其谁霸气侧漏王者归来笑傲江湖独步武林横扫千军所向披靡战无不胜攻无不克坚不可摧牢不可破稳如泰山重如磐石信誓旦旦言之凿凿掷地有声铿锵有力振聋发聩醍醐灌顶茅塞顿开豁然开朗柳暗花明又一村绝处逢生转危为安化险为夷遇难呈祥否极泰来苦尽甘来乐善好施积德行善广结善缘福报自来因果循环报应不爽善恶分明赏罚得宜公平正义光明磊落坦荡无私胸怀宽广度量宏大包容万象兼收并蓄博采众长融会贯通推陈出新革故鼎新开拓进取奋发向上积极乐观充满希望憧憬未来追求理想永不放弃坚持不懈持之以恒锲而不舍绳锯木断滴水穿石非一日之功也! ```python import kicad_api as ka def generate_bom(project_file): project = ka.load_project(project_file) bom_data = project.get_components() html_content = "<html><body><table border=&#39;1&#39;>" html_content += "<tr><th>Reference</th><th>Value</th><th>Quantity</th></tr>" for component in bom_data: ref = component[&#39;ref&#39;] value = component[&#39;value&#39;] qty = len(component[&#39;positions&#39;]) row = f"<tr><td>{ref}</td><td>{value}</td><td>{qty}</td></tr>" html_content += row html_content += "</table></body></html>" return html_content ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值