Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как в winavr напрямую указать адрес функции?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Kibi
Есть необходимость напрямую задать адреса расположения функций в winavr, .init .finit не интересуют, необходимо именно четко определить начальный адрес функции, помогите кто знает...

ах да конструкция
void test0(void) __attribute__ ((section (".test0")));

с директивой -Wl,--section-start=.test0=0xd000 не проходитsad.gif
Kibi
вижу что ни кто не сталкивался, просто конструкция не работает, хоть линкер и пишет что секция по этому адресу создана. но саму функцию наотрез отказывается по этому адресу размещать, а для программы критично, просто неохото на асме переделыватьsad.gif может тогда подскажите что в этой конструкции не верно???? может просто у меня немного руки кривоватыsmile.gif
Сергей Борщ
Надо создать свою секцию и указать ее размещение в скрипте линкера.
Цитата(Kibi @ Mar 14 2008, 09:38) *
вижу что ни кто не сталкивался, просто конструкция не работает, хоть линкер и пишет
Что именно пишет линкер? Приведите текст дословно. Сделайте примитивный пример, вроде
Код
int main()
{
     foo();
}
void foo() __attribute__((section ".mysection"))
{
}
добейтесь неправильного поведения и выложите сюда с мейк-файлом, файлом линкера и текстом сообщений. Что значит "с директивой -Wl, ... не проходит"? Что вы получаете? А что ожидаете? Ответ на ваш вопрос в текщей формулировке требует недюжих телепатических способностей, с котороыми у большинства, увы, напряженка.
Qwertty
Может пусть функция размещается как обычно, а по фиксированному адресу размещать указатель на нее?
Kibi
хм, в простом примере все работает, и секция задается как надо, буду копать, почему не реботает в программе.....
Kibi
все разобрался, нашол пару глюков в компиляторе, вся проблема была в том что описание секций надо делать в основном файле, компилятор не понимает секции если они в доп файлахsad.gif гсм загрузчик готовsmile.gif
amw
Цитата(Kibi @ Mar 17 2008, 13:35) *
все разобрался, нашол пару глюков в компиляторе, вся проблема была в том что описание секций надо делать в основном файле, компилятор не понимает секции если они в доп файлахsad.gif гсм загрузчик готовsmile.gif

????????????????????????????????
Секции описываются в скрипте линкера.
Компилятор не имеет никакого отношения к распределению секций. Все, что может компилятор, это указать имя секции, отличное от имени по умолчанию.
Где и как размещается секция - это решает линкер, на основании скрипта.
Так что никакого глюка там нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.