Загрузка данных


// Функция безопасного "прогрева" 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();
}