А есть шанс / возможность намекнуть китайцам на более грамотное решение (если конечно у вас есть это решение), подсчета контрольной суммы?
Это невозможно

Они этого не хотят и этого сообщения "MEM CHECK FAIL!!!" у них нет, т.к. в данный момент при старте модуля ещё не вышел Pll на нормальную частоту и у них в кодах стоит сбросить буфер fifo UART сразу после вывода туда этого сообщения. Но другая ветка старта, если не производится перестройка PLL или сменена процедура вывода в os_printf всё-таки выводит это сообщение и от него нет избавления, т.к. другие процедуры в SDK рушат их-же контрольную китай-OR сумму, без дальнейшего пересчета.

Пересчет китай-OR контрольки есть только в пару процедур, но данные то кто восстановит?
После старта c MEM CHECK FAIL!!!, запустите deep_sleep - часто помогает, т.к. там, в процедуре входа в deep_sleep эта область переписывается и вешается новая OR-китай контролька. В AT и других прошивках необходимо сменить установки связанные WiFi, тогда, при следующем старте без отключения питания или использования CH_PD (софт-перезагрузке) сообщение пропадет.
Но и это теперь не всегда срабатывает, т.к. в SDK от 1.1.0 они вписали новый баг, связанный с user_rf_pre_init(). Она рушит OR-китай контрольку по рандому...
Немного помогает это:
Код:
void ICACHE_FLASH_ATTR user_rf_pre_init(void)
{
/* volatile */ uint32 * ptr_reg_rtc_ram = (/* volatile */ uint32 *)0x60001000;
if((ptr_reg_rtc_ram[24] >> 16) > 4) {
ptr_reg_rtc_ram[24] &= 0xFFFF;
ptr_reg_rtc_ram[30] = 0;
}
}
Производиться проверка, какой режим установлен для RF, и если он более 4-го, то значит старт произошел после обесточенной RAM в RTC, тогда исправляем режим на режим по умолчанию (=0 - будет браться в esp_init_data_default.bin) и сбрасываем OR-китай-контрольку, чтобы явно указать, что там неверные данные...
Часть кода китай-SDK c нововведением user_rf_pre_init() и OR-контролькой описана тут
https://github.com/pvvx/esp8266web/blob/master/info/libs/main/bags_Espressif_SDK.c#L10