- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是这些设备的新手,即使它们很便宜,我也不想不必要地把它们弄成砖头。
我使用 esptool 将 NodeMCU 固件刷写到我的模块上。这样做时,我需要指定写入文件的地址,通常是 0x00000。这是否意味着固件实际上包含引导加载程序?或者它位于闪存的单独区域?
如果引导加载程序本身包含在固件文件中,我想中断的刷写过程会使模块无法使用?
感谢您的澄清!
最佳答案
你不能用这种方式损坏模块。我大概做了一百次闪光,其中一些失败了(例如由于波特率太高)。固件本身确实在0x000000
处包含引导加载程序,但这是可以任意更换的第二阶段引导加载程序。您不应该能够覆盖第一阶段的引导加载程序。引用创建 rBoot
的人的话,rBoot 是专有的 Espressif booatloader 的开源替代品,地址为 http://richard.burtons.org/ :
The boot loader is written to the first sector of the SPI flash and is executed like any other program, the built in first stage boot loader does not know it is loading a second stage loader rather than any other program.
So what happens next? Well the second stage boot loader isn’t open source, it’s provided to us as a binary blob to use blindly.
简而言之:您不能通过向0x00000
写入废话来损坏您的模块。它可能会在发现无效操作码之前执行一些任意代码,但这不足以导致 CPU 爆炸或模块损坏。刷新固件足以从损坏的第二阶段引导加载程序中恢复。
那么第一阶段引导加载程序到底在哪里?来自 richard.burtons.org/2015/05/17/esp8266-boot-process 的评论,创作者自己回答为:
Commentator: I have been figuring out if the first stage boot loader is in the processors ROM or in the Flash. I guess it is in the ROM. If this is in ROM then there is no risk of messing flash and leave the device useless.Could you please confirm it.
Richard: That’s correct. Stage one is in rom and you can’t do anything to break it.
关于bootloader - 我会不小心破坏 ESP8266 ESP-12F 模块的引导加载程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40757376/
最近我编写了一个 Android 应用程序,它需要从内置相机拍摄照片并将其取回我的应用程序。我使用了众多教程中的一个,一切正常。但后来我在不同的设备上测试了它,但没有任何效果。似乎有问题,那么我如何确
开发工具:VS2010,MVC4.0,SQLSERVER2008 服务器:Windows server 2012,IIS8,SQLSERVER2012 1、发布后,每个页面第一次打开都很卡,5
这个真的让我很反感。我有一个表单,由应用程序的主要表单生成并拥有,用于搜索记录。表单布局在停靠的 TableLayoutPanel 中,结合了绝对和百分比大小的行/列,以便我的标签在数据输入和结果控件
我正在尝试做这样的事情: #include #include int main() { int l[] = {1,2,3,4}; vector vi(4); copy(l,
我正在使用 Magento 的功能来插入和更新查询。我的要求是在执行这些类型的查询时要处理 SQL 注入(inject)。但我无法找到 Magento 是如何做到这一点的。我正在提供一个起始样本。请给
用换行符分割字符串会导致麻烦的错误。请看我的回答。 原始问题 - 由于无法在日志中看到不可见字符而导致的 XY 问题。 public void DoCommand(String cmd) {
我是一名优秀的程序员,十分优秀!