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

 
 
> вопрос по секциям в GNU, как сделать секцию не загружаемой
Dopler
сообщение Sep 15 2010, 07:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Программирую на GCC под AVR32.
В моем процессоре ОЗУ начинается с 0-го адреса, Flash начинается с адреса 0x80000000.
В самом начале ОЗУ (с адреса 0) создаю секцию ".exception", в которой находится таблица векторов прерывания. Эта таблица заполняется в коде, т.е. мне нужно, чтобы секция ".exception" только занимала место, но не была загружаемой.
Помещаю структуру в секцию следующим образом:
Код
EXCEPTION_TABLE __attribute__ ((section (".exception"))) ptrEventTable;


В скрипте линкера секция описана так:
Код
   /*секция exception*/
  .exception :
  {
    _evba = .;
    *(.exception)
  } >INTRAM AT>INTRAM :INTRAM_FROM_CODE

Причем INTRAM_FROM_CODE я объявлял и как PT_LOAD, и как PT_NULL.
В любом случае в .elf файле секция включается с такими атрибутами:
Код
  2 .exception    00000104  00000000  00000000  00000c00  2**2
                  CONTENTS, ALLOC, LOAD, DATA

И соответственно попадает в прошивку (с атрибутом PT_NULL дополнительно выдается warning: "allocated section `.exception' not in segment").
Как сделать так, чтобы секция имела только атрибут ALLOC и не попадала в прошивку? Секция .bss, описанная в скрипте линкера аналогичным образом, имеет только атрибут ALLOC, где это задано мне не понятно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Konkere
сообщение Nov 30 2010, 05:20
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 14-01-10
Из: Снежинск
Пользователь №: 54 791



Цитата(demiurg_spb @ Nov 29 2010, 16:00) *
Сергей Вам говорит не о "инициализации регистров процессора", а о инициализации "С, С++ контекста" - это совершенно разные понятия.


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

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

Сообщение отредактировал Konkere - Nov 30 2010, 05:22
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 30 2010, 05:50
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Konkere @ Nov 30 2010, 10:20) *
Насколько я понял, он берется из файла "crt0.o". Как запретить компилятору или линкеру его использовать?


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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dopler   вопрос по секциям в GNU   Sep 15 2010, 07:11
- - Сергей Борщ   Цитата(Dopler @ Sep 15 2010, 10:11) Секци...   Sep 15 2010, 08:14
|- - Dopler   Цитата(Сергей Борщ @ Sep 15 2010, 12:14) ...   Sep 15 2010, 08:19
||- - AHTOXA   NOLOAD? Код .noinit (NOLOAD) : { PR...   Sep 15 2010, 08:43
||- - Dopler   Цитата(AHTOXA @ Sep 15 2010, 12:43) NOLOA...   Sep 15 2010, 09:02
|- - klen   Цитата(Сергей Борщ @ Sep 15 2010, 12:14) ...   Sep 16 2010, 10:12
|- - Dopler   Цитата(klen @ Sep 16 2010, 14:12) в том т...   Sep 16 2010, 14:48
|- - klen   Цитата(Dopler @ Sep 16 2010, 18:48) Ну эт...   Sep 16 2010, 16:24
- - Konkere   Гм, вопрос по секциям elfa. Есть в исполняемом фай...   Nov 26 2010, 10:19
|- - demiurg_spb   Из стандартного makefile от WinAVR:Код# Create fin...   Nov 26 2010, 12:19
|- - Сергей Борщ   QUOTE (Konkere @ Nov 26 2010, 12:19) Можн...   Nov 26 2010, 13:41
|- - Konkere   Цитата(demiurg_spb @ Nov 26 2010, 17:19) ...   Nov 28 2010, 20:46
|- - Сергей Борщ   QUOTE (Konkere @ Nov 28 2010, 22:46) Иниц...   Nov 28 2010, 22:14
|- - Konkere   Цитата(Сергей Борщ @ Nov 29 2010, 03:14) ...   Nov 29 2010, 06:38
|- - demiurg_spb   Сергей Вам говорит не о "инициализации регист...   Nov 29 2010, 11:00
- - Сергей Борщ   QUOTE (Konkere @ Nov 30 2010, 07:20) С ко...   Nov 30 2010, 11:32


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

 


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


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