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


/* Must be last in romable region */
#if !defined(CONFIG_SDRAM_LMA_ADJUST)
SECTION_PROLOGUE(.last_section,,)
{
  KEEP(*(.last_section))
} GROUP_LINK_IN(ROMABLE_REGION)
#else
  /* ХАК: Раскрываем макрос секции вручную, чтобы задать динамический VMA.
     1. LOADADDR(device_states) + SIZEOF(device_states) — динамически дает 
        физический адрес конца данных во флеше (0x6001002c).
     2. Вычитаем 0x60000000, чтобы получить чистый относительный сдвиг прошивки.
     3. Прибавляем базовый адрес RAM (0x80000000).
     В итоге VMA строго равен 0x8001002c и полностью зависит от реального размера данных! */

  .last_section (0x80000000 + (LOADADDR(device_states) + SIZEOF(device_states) - 0x60000000)) : 
  {
    KEEP(*(.last_section))
  } AT> NXP_FLASH_LMA
#endif