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

 
 
 
Closed TopicStart new topic
> вопрос по скриптам линкера для MIPS
Konkere
сообщение Nov 24 2010, 06:35
Сообщение #1


Участник
*

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



Как сделать так, чтобы мипсовская программа запускалась с некоторого адреса таким кодом:
Код
void foo(void) __attribute__((section(".foo")))
asm("bal main"::);
asm("nop"::);

Затем должно идти на данный момент пустое пространство(в дальнейшем здесь будет находится переход на обработку прерывания), равное 300 байтам, затем след. код:
Код
void main()
foo_1();
foo_2();


Я знаю, как указать начало входа программы, но как добиться перехода на строго определенный другой адрес, чтобы зарезервированные адреса не перекрывались ничем другим, не могу вкурить. Буду рад вашей помощи.
Go to the top of the page
 
+Quote Post
alx2
сообщение Nov 25 2010, 04:43
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Konkere @ Nov 24 2010, 11:35) *
Я знаю, как указать начало входа программы, но как добиться перехода на строго определенный другой адрес, чтобы зарезервированные адреса не перекрывались ничем другим, не могу вкурить. Буду рад вашей помощи.

Зарезервировать области памяти можно примерно так:
Код
  .text :
  {
    *(.foo)
    _reserved = .;
    . = . + 300;    /* здесь будет пропущено 300 байт */
    *(.text)
  }  > text


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
Konkere
сообщение Nov 26 2010, 05:42
Сообщение #3


Участник
*

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



Цитата(alx2 @ Nov 25 2010, 09:43) *
Зарезервировать области памяти можно примерно так:


Вот rolleyes.gif Спасибо, не знал. Хотя вчера добился задачи другим способом: каждую функцию в отдельный файл, далее линковку:
Код
.text:
{
       foo1.o(.text)
       . = . +300;
       foo2.o(.text)
}
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:32
Рейтинг@Mail.ru


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