首页 文章

我是否可能意外破坏ESP8266 ESP-12F模块的引导程序?

提问于
浏览
1

我是这些设备的新手,即使它们非常便宜,我也不会不必要地想要它们 .

我已经使用esptool将NodeMCU固件刷新到我的模块上 . 这样做时,我需要指定文件写入的地址,通常是0x00000 . 这是否意味着固件实际上包含引导加载程序?或者它位于闪光灯的单独区域?

如果引导加载程序本身包含在固件文件中,那么中断闪烁过程会使模块无效,我想?

谢谢你的澄清!

1 回答

  • 5

    您不能以这种方式损坏模块 . 我可能做了一百次闪烁,其中一些失败(例如由于波特率太高) . 固件本身确实包含引导加载程序在 0x000000 ,但是's a second-stage bootloader which can be exchanged arbitrarily. You shouldn't能够覆盖第一阶段引导加载程序 . 引自创建 rBoot 的人,这是一个开源的替代品,用于http://richard.burtons.org/的Espressif booatloader:

    引导加载程序被写入SPI闪存的第一个扇区并像任何其他程序一样执行,内置的第一阶段引导加载程序不知道它正在加载第二阶段加载程序而不是任何其他程序 . 接下来会发生什么?那么第二阶段引导加载程序不是开源的,它是作为二进制blob提供给我们盲目使用的 .

    简而言之:您不能通过将废话写入 0x00000 来损坏您的模块 . 它可能会在找到无效的操作码之前执行一些任意代码,但这不足以使CPU爆炸或模块被损坏 . 重新刷新固件足以从损坏的第二阶段引导加载程序中恢复 .

    那么第一阶段的引导加载程序到底在哪里呢?根据richard.burtons.org/2015/05/17/esp8266-boot-process的评论,创作者自己回答:

    评论员:我一直在弄清楚第一阶段引导加载程序是在处理器ROM还是在Flash中 . 我猜它在ROM中 . 如果这是在ROM中,那么没有闪乱的风险并使设备无用 . 你能否确认一下 . 理查德:那是对的 . 第一阶段是在rom,你无法做任何事情来打破它 .

相关问题