Перейти к содержанию
    

вопрос по секциям в GNU

Сергей Вам говорит не о "инициализации регистров процессора", а о инициализации "С, С++ контекста" - это совершенно разные понятия.

 

C++ контекст в моем случае не используется, С контекст - будем прописывать сами. Как я уже говорил, этот дополнительный код компилятора может вызвать необрабатываемое прерывание, поэтому он мне не нужен. Насколько я понял, он берется из файла "crt0.o". Как запретить компилятору или линкеру его использовать? К сожелению, вышеуказанный способ избавления от секций ("-R ._init -R .fini", например) у меня почему-то не работает.

 

P.S. Компилятор mips-kgp-elf, спасибо Klen-у

Изменено пользователем Konkere

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понял, он берется из файла "crt0.o". Как запретить компилятору или линкеру его использовать?

 

Ключ линкера -nostartfiles.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С контекст - будем прописывать сами. Как я уже говорил, этот дополнительный код компилятора может вызвать необрабатываемое прерывание, поэтому он мне не нужен.
В таких случаях обычно пишется функция с названием типа low_level_init() и вызывается из стартапа до инициализации. Она настраивает нужуную вам периферию, после чего возвращает управление в стартап. И уже он родным для компилятора образом подготавливает контекст и вызывает main(). Если в crt0.o не предусмотрен вызов подобной функции - никто не заставляет линковать crt0.o. Достаточно добавить его исходник в проект и в него вписать вызов нужной функции. Прописывать контекст самостоятельно - неэстетично :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...