ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
1037742 Топик полностью
Aleksey_75 (18.09.2020 22:49, просмотров: 522) ответил Aleksey_75 на position independent code ! Вынес в отдельную тему если получится всем будет полезно! у линкера armlink есть параметры (--fpic и --bare_metal_pie)
ПОБЕДА! Подробности 

решил отказаться от флагов --fpic и --bare_metal_pie. На уровне make, линкую два раза с разными фиксированными адресами для ROM и RAM. вычисляю позиции которые изменились и перевожу с абсолютных адресов на адреса по смещению. Добавлю таблицу адресов где указаны смещения. ELF верстаки пришлось парсить на уровне make , т.к. размерность ZI области в бинарнике нету! По сути --bare_metal_pie автоматом добавляет в начало таблицу адресов , но при такой сборке в флеш падает только область .text , все const летят в ОЗУ для меня это не приемлемо! набросал тестовую прогу которая перемещает бинарник по набортному флешу и после перезагрузки выполняет код пока все работает как нуджно!