Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по скриптам линкера для MIPS
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Konkere
Как сделать так, чтобы мипсовская программа запускалась с некоторого адреса таким кодом:
Код
void foo(void) __attribute__((section(".foo")))
asm("bal main"::);
asm("nop"::);

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


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

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


Вот rolleyes.gif Спасибо, не знал. Хотя вчера добился задачи другим способом: каждую функцию в отдельный файл, далее линковку:
Код
.text:
{
       foo1.o(.text)
       . = . +300;
       foo2.o(.text)
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.