// Функция безопасного "прогрева" DTCM 64-битными или 32-битными словами
void init_dtcm_ecc(void)
{
// Замените на реальные физические адреса НАЧАЛА и КОНЦА вашей DTCM в адресном пространстве M7
volatile uint32_t *start_addr = (volatile uint32_t *)0x20400000U;
uint32_t size_in_words = 0x10000; // Например, 256 КБ = 64К слов
for (uint32_t i = 0; i < size_in_words; i++) {
start_addr[i] = 0x00000000U; // Пишем строго 32-битное слово целиком
}
__DSB();
__ISB();
}
int main(void)
{
BOARD_InitHardware();
// СНАЧАЛА инициализируем ECC всей DTCM
init_dtcm_ecc();
PRINTF("MCUX SDK version: %s\r\n", MCUXSDK_VERSION_FULL_STR);
PRINTF("Bootloader.\r\n");
tcm_bootloader_main();
}