ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
703439 Топик полностью
VVB (04.10.2016 13:19, просмотров: 64) ответил SciFi на Вот так?
Нет, не отлично. По адресу LMA не создаётся блок, содержащий инициализируемые данные. Вместо этого линкер продолжает размещать секции, указанные дальше.
.data           0x000185a0      0x9d0 load address 0x00018f70
                0x00018f70                __data_load = LOADADDR (.data)
                0x000185a0                __data_start = .

...

 .data          0x00018f70        0x0 stdlib\libnosys.a(_exit.o)
                0x00018f70                . = ALIGN (0x4)
                0x00018f70                __data_end = .

.bss            0x00018f70      0x358 load address 0x00019940
                0x00018f70                __bss_start__ = .
Как видно, в месте размещения LMA вместо констант я вижу секцию .bss, которая дальше в скрипте линкера. Попробую после .data зарезервировать неиспользуемую секцию размером SIZEOF(.data) и погляжу, чем её проинициализирует линкер.