Пт июл 27, 2018 13:30:58
const char my_data[50] __attribute__( (section("my_section")) ) = {0};
Пт июл 27, 2018 14:23:13
Пт июл 27, 2018 14:34:31
А можно все же поинтересоваться, ЗАЧЕМ? Ну должна же быть какая-то причина пришпиленности данных.область в памяти программ по определённым адресам и поместить в неё инициализированный массив
Пт июл 27, 2018 14:41:01
volatile const char my_data[0x100] __attribute__( (section(".fw_info")) ) = {0};
MEMORY
{
fw_info (rx) : ORIGIN = 0x9D040000, LENGTH = 0x100
.....
.....
}
SECTIONS
{
.fw_info ORIGIN(fw_info) : {
KEEP(*(.fw_info))
}
}
Пт июл 27, 2018 14:48:39
fw_info (rx) : ORIGIN = 0x9D040000, LENGTH = 0x100
Пт июл 27, 2018 15:17:34
Может быть.dosikus писал(а):Может все таки rw или даже ro ?
Пт июл 27, 2018 15:30:52
ну дык для оптимизатора компилятора так и есть, а для линкера свою роль играет опция -Wl,-gc-sections - убирать неиспользуемые секцииАlex писал(а):Всегда думал, что квалификатор volatile служит для связывания шаловливых ручек оптимизатора
Пт июл 27, 2018 15:42:12
Пт июл 27, 2018 15:58:59
Пт июл 27, 2018 16:03:35
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector))
. = ALIGN(4);
} >FLASH
.fw_info :
{
. = ALIGN(4);
KEEP(*(.fw_info))
} >FLASH
Пт июл 27, 2018 16:17:48
VladislavS писал(а):Можно было, правда, сразу за векторами прерываний расположить автоматом.