ESP8266为什么挂载不同大小的FlashROM,下载bin文件的地址不同?这样的内存布局有何用意?
ESP8266为什么挂载不同大小的FlashROM,下载bin文件的地址不同?这样的内存布局有何用意?
Postby qwerty650 » Thu Nov 30, 2017 1:32 pm
1、一般来说大内存下载小固件,剩余内存空间空闲着是不影响使用的。然而ESP8266除了boot.bin下载到固定的0x00000地址,user1.bin下载到固定的0x01000以外,其他如user2.bin,blank.bin,esp_init_data_default.bin的下载地址是和内存大小相关的。那么ESP8266是如何保证这些代码数据可以被正确访问到的呢?难道boot.bin会自动检测内存大小然后推算出user2.bin,blank.bin,esp_init_data_default.bin的位置?如果我用64Mbit或128Mbit的Flash又该如何布局,如何下载?
2、ESP8266官方下载工具里的SPI 速度设置,晶振频率选择,Flash 容量选择有何实际意义?这些设置不是应该用程序修改的嘛?难道这里的设置能用来修改boot.bin里的参数?或者这些设置仅仅是在下载程序的时候起作用,不影响程序的运行?
3、ESP8266的初始串口波特率和晶振有关,那么用串口下载程序的时候ESP8266是靠什么机制保证无论是26M晶振还是40M晶振都能用115200的波特率下载?还是用26M晶振时只能用76800的波特率下载?
2、ESP8266官方下载工具里的SPI 速度设置,晶振频率选择,Flash 容量选择有何实际意义?这些设置不是应该用程序修改的嘛?难道这里的设置能用来修改boot.bin里的参数?或者这些设置仅仅是在下载程序的时候起作用,不影响程序的运行?
3、ESP8266的初始串口波特率和晶振有关,那么用串口下载程序的时候ESP8266是靠什么机制保证无论是26M晶振还是40M晶振都能用115200的波特率下载?还是用26M晶振时只能用76800的波特率下载?
Re: ESP8266为什么挂载不同大小的FlashROM,下载bin文件的地址不同?这样的内存布局有何用意?
Postby qwerty650 » Tue Dec 05, 2017 2:41 pm
Her Majesty wrote:ESP8266 入门指南应该能给你一些解答 http://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf
谢谢Her Majesty,入门指南只告诉我应该怎么做,但是没告诉我为什么这么做,所以我比较困惑的是如果不严格按照入门指南如何保证正常使用。
Re: ESP8266为什么挂载不同大小的FlashROM,下载bin文件的地址不同?这样的内存布局有何用意?
Postby Her Mary » Tue Dec 05, 2017 4:37 pm
不按照指南烧录运行,应该会有问题吧。例如,不同大小的 flash,布局不一样,其实从它给的布局图和地址能看出来,就是 flash 的最后几个 sector 用来存储数据,前面的整段空间可以用来存代码。user1 和 user2 就是 flash 对半分之后,按照偏移地址来取代码运行。
Re: ESP8266为什么挂载不同大小的FlashROM,下载bin文件的地址不同?这样的内存布局有何用意?
Postby qwerty650 » Tue Dec 05, 2017 10:16 pm
Her Majesty wrote:不按照指南烧录运行,应该会有问题吧。例如,不同大小的 flash,布局不一样,其实从它给的布局图和地址能看出来,就是 flash 的最后几个 sector 用来存储数据,前面的整段空间可以用来存代码。user1 和 user2 就是 flash 对半分之后,按照偏移地址来取代码运行。
这些偏移地址一定是保存在某个地方,应该在boot.bin里,修改它应该就可以随意自定义布局了,至于为什么同一个boot.bin下载到不同容量的flash可以在不同的偏移地址找到正确的数据,我猜可能是下载工具根据flash size的config选项修改了boot里的数据。希望官方能公布一份更详尽的启动引导文档。
Who is online
Users browsing this forum: No registered users and 3 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.