1

我想使用esp-progesptool对带有 esp32 的板进行编程。当我这样做时,我收到以下错误:

...
Crystal is 40MHz
MAC: c8:2b:96:b8:e7:e0
Uploading stub...
Running stub...
Traceback (most recent call last):
File "/home/martin/workspace/esp/esp-idf/components/esptool_py/esptool/esptool.py", line 3470, in <module> _main()
...

但是,如果我使用带有选项的esptool --no-stub,我可以对电路板进行编程而不会出错。那么这个存根是什么?使用--no-stub的用途和意义是什么?

4

1 回答 1

1

在软件开发中,存根是一段代码或代替另一个使用的程序。它们经常模拟原始特征的行为,有时它们被用作未开发代码的临时替代品。

esptool的情况下,它使用stub loader,它基本上取代了 ESP 中使用的原始引导加载程序,通过串行端口将程序加载到 ESP32 设备的 ROM。

基本上,这个存根引导加载程序与原始引导加载程序具有相同的行为,但它使用了一些 UART 例程,这些例程经过更严格的优化来加载 ROM 代码。

使用--no-stub您将使用原始的 ESP32 引导加载程序,众所周知,它在刷新程序和其他一些操作时速度较慢。有些命令只能在 esptool 引导加载程序中使用,但如果您不使用任何可选命令来引导代码,则可以安全使用--no-stub

于 2021-01-16T14:08:55.637 回答