В проекте на «голом железе» мне нужно записать начальный адрес раздела ПЗУ на выделенный адрес. То, что я нашел до сих пор, похоже на это определение в скрипте компоновщика:
MEMORY{
ROM (rx) : ORIGIN = 0x00018000, LENGTH = 0x8000
UICR (r) : ORIGIN = 0x10001000, LENGTH = 0x400
}
SECTIONS {
.bootloader_addr 0x10001014 :
{
KEEP(*(.bootloader_addr))
} > UICR
}
и чтобы определить значение, которое должно быть размещено по адресу 0x10001014, я мог бы добавить это где-нибудь в файл C++:
std::uint32_t uicr_bootloader_start_address
__attribute__((section(".bootloader_addr"),used)) =
0x18000;
Есть ли у кого-нибудь идея, как мне избежать объявления постоянного целого числа и использовать компоновщик для прямой записи начального адреса раздела кода в 0x10001014
?