Вроде разобрался. Но одного понять не могу, какой конечный адрес 8266 32Mbit (4MB)? Я пытаюсь высчитать его по коду:
uint32_t flashSize = ESP.getFlashChipSize(); // получение данных о флеш-памяти
uint32_t flashStartAddr = 0x40200000; // адрес начала флеш памяти
uint32_t flashEndAddr = flashStartAddr + flashSize - 1; // мы вычитаем 1 из вычисленного адреса,
// чтобы получить адрес последней доступной ячейки памяти.
Serial.println("");
Serial.print("Flash size: "); // вывод текста
Serial.println(flashSize); // вывод размера флеш памяти
Serial.print("Flash start address: 0х"); // адрес начала флеш памяти
Serial.println(flashStartAddr, HEX); //вывод значения адреса начала флеш памяти
Serial.print("Flash end address: 0x");
Serial.println(flashEndAddr, HEX); //вывод значения адреса конца флеш памяти
А он мне выдает в монитор:
Flash size: 4194304
Flash start address: 0х40200000
Flash end address: 0x405FFFFF
Тогда получается, что 0x405FFFFF правильный конец адреса? Просто читал, что у этого контроллера адрес должен быть 0x407FFFFF. А если я вообще не буду вычитать, тогда адрес будет 0x40600000. Какой из них правильный или микроконтроллер изменяет адреса флеш-памяти? По правильному конечно вычитать надо -1 так как адресация начинается с нуля.