.cals_data(NOLOAD) : { __itcm_start = .; /* Резервируем ровно 20K для .caldata */ .caldata : { KEEP(*(.caldata)) . = ALIGN(4); } > ITCM /* Проверяем размер и заполняем до 20K */ __caldata_end = .; __caldata_start = ADDR(.caldata); __caldata_size = SIZEOF(.caldata); /* Если .caldata меньше 20K, добавляем пустое пространство */ . = __caldata_start + 20K; /* Проверяем, что не превысили размер */ ASSERT((. - __caldata_start) >= 20K, "Зарезервировано менее 20K для .caldata"); ASSERT(__caldata_size <= 20K, "Раздел .caldata превышает 20K!"); KEEP(*(.nvmdata)) . = ALIGN(4); *Model_actuator.c.obj(.bss .bss*) __itcm_end = .; . = ALIGN(4); } > ITCM