реклама на сайте
подробности

 
 
> Линкер выкидывает нужный код. Как исправить?
viakon
сообщение Dec 8 2015, 05:23
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Если ставлю -Xlinker --gc-sections выкидывает бутлоадер. Как объяснить линкеру что некоторые секции выбрасывать нельзя?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Непомнящий Евген...
сообщение Dec 8 2015, 05:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Код
SECTIONS
{  
  .text :
  {      
    KEEP(*(.loader.enter)); /* тут имя секции со стартовой функцией бутлоадера */


Неясно впрочем, у вас бутлоадер линкуется вместе с программой?
Go to the top of the page
 
+Quote Post
viakon
сообщение Dec 8 2015, 07:49
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Цитата(Непомнящий Евгений @ Dec 8 2015, 10:34) *
Неясно впрочем, у вас бутлоадер линкуется вместе с программой?

Есть вариант когда вместе, удобнее отлаживать все разом. В данном случае отдельно. Но основная программа вызывает функцию в бутлодыре, вот ее при компиляции и выкидывает.
пробовал KEEP все равно выкидывает.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 8 2015, 08:02
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(viakon @ Dec 8 2015, 10:49) *
Есть вариант когда вместе, удобнее отлаживать все разом. В данном случае отдельно. Но основная программа вызывает функцию в бутлодыре, вот ее при компиляции и выкидывает.
пробовал KEEP все равно выкидывает.


Ну значит надо добавить эту функцию в KEEP. Если не получается - попробуйте сократить пример до минимального и выложить.

Кстати насчет совместной линковки - как минимум не должно быть двух функций main, нужны отдельные копии всех функций из стандартной библиотеки (а часть арифметики к примеру реализована в виде функций), возможно еще что-то.

И зачем отлаживать совместно? В программе делаете некую заглушку, куда приходите по команде "вызвать загрузчик" и отлаживаете себе отдельно от загрузчика...

Даже если вам остро необходим загрузчик, возможно проще будет сделать бинарный образ загрузчика (скомпилированного отдельно) и этот образ прилинковывать к основной программе.

Линковать вместе - это просто поход по граблям...
Go to the top of the page
 
+Quote Post
viakon
сообщение Dec 8 2015, 09:23
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Цитата(Непомнящий Евгений @ Dec 8 2015, 13:02) *
Ну значит надо добавить эту функцию в KEEP.

Можно поподробнее как это делается.
Цитата(Непомнящий Евгений @ Dec 8 2015, 13:02) *
Линковать вместе - это просто поход по граблям...

В чем грабли то? Если загрузчик состоит всего из нескольких функций, то несложно прямо указать их расположение в секции BOOTLOADER.
Вот проект с загрузчиком на базе LWIP это да, все функции пометить префиксом BOOTLOADER та еще работа и можно что-нибудь пропустить.

Сообщение отредактировал viakon - Dec 8 2015, 09:30
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- viakon   Линкер выкидывает нужный код. Как исправить?   Dec 8 2015, 05:23
|- - Сергей Борщ   Цитата(Непомнящий Евгений @ Dec 8 2015, 08...   Dec 8 2015, 07:40
||- - Сергей Борщ   Цитата(viakon @ Dec 8 2015, 12:23) В чем ...   Dec 8 2015, 11:56
|||- - viakon   Цитата(Сергей Борщ @ Dec 8 2015, 16:56) 1...   Dec 8 2015, 15:57
|||- - Сергей Борщ   Цитата(viakon @ Dec 8 2015, 18:57) Просте...   Dec 8 2015, 18:54
|||- - viakon   Цитата(Сергей Борщ @ Dec 8 2015, 23:54) П...   Dec 10 2015, 04:36
||- - Непомнящий Евгений   Цитата(viakon @ Dec 8 2015, 12:23) Можно ...   Dec 8 2015, 12:31
|- - scifi   Цитата(viakon @ Dec 8 2015, 10:49) Есть в...   Dec 10 2015, 07:49
|- - Непомнящий Евгений   Цитата(scifi @ Dec 10 2015, 10:44) Правил...   Dec 10 2015, 07:51
|- - viakon   Цитата(Непомнящий Евгений @ Dec 10 2015, 12...   Dec 18 2015, 05:06
|- - scifi   Цитата(viakon @ Dec 18 2015, 08:06) Как б...   Dec 18 2015, 15:08
- - MrYuran   А я использую __attribute__((used)) Цитатаused Th...   Dec 9 2015, 09:21
- - Анжела   __attribute__((used))   Mar 7 2016, 22:28


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 12:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016