evgeniy1294 (23.12.2018 18:12 - 18:20, просмотров: 230) ответил SciFi на Это не так делается. Нужно 2 прошивки: загрузчик и основная программа.
Да, это самый правильный вариант. Бутлоадер размещается в памяти FLASH с нулевым смещением, основная прошивка размещается в памяти со смещением. Например, первые 64 кБайта памяти отдается под загрузчик, остальное под основную прошивку.
Делается все довольно тупо через тот же скрипт линкера.
Для загрузчика:
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
Для прошивки (128 кБайт смещение):
LR_IROM1 0x08020000 0x00060000 { ; load region size_region
ER_IROM1 0x08020000 0x00060000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}