arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
21.93k stars 4.76k forks source link

H801 with 512KB flash supported #2982

Closed RoganDawes closed 6 years ago

RoganDawes commented 6 years ago

Make sure these boxes are checked [x] before submitting your issue - Thank you!

Hi folks,

I have an H801 module that only has 512KB of flash. Trying to use any of the non-minimal firmwares (unsurprisingly?) results in a reboot loop.

I guess this is not so much a troubleshooting issue, as a "Hey, I solved it myself", because I copied a linker script for a 512kB flash with no SPIFFS, reduced the size of the module by commenting out some features that I didn't need, and rebuilding.

Here is the linker script, if there is anyone else in the same boat:

/* Flash Split for 512K chips */
/* sketch 487KB */
/* eeprom 20KB */

MEMORY
{
  dport0_0_seg :                        org = 0x3FF00000, len = 0x10
  dram0_0_seg :                         org = 0x3FFE8000, len = 0x14000
  iram1_0_seg :                         org = 0x40100000, len = 0x8000
  irom0_0_seg :                         org = 0x40201010, len = 0x79ff0
}

PROVIDE ( _SPIFFS_start = 0x4027B000 );
PROVIDE ( _SPIFFS_end = 0x4027B000 );
PROVIDE ( _SPIFFS_page = 0x0 );
PROVIDE ( _SPIFFS_block = 0x0 );

INCLUDE "esp8266.flash.common.ld"

Obviously, I also had to update platformio.ini to refer to the new linker file.

RoganDawes commented 3 years ago

This no longer works, due to reorganisation of the linker scripts. The current solution is to change the linker from eagle....1m.ld to eagle...512k.ld