roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 22:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Как в WinAVR не создавать таблицу векторов прерываний?
СообщениеДобавлено: 28 май 2011, 15:39 
Не в сети
Аватара пользователя

Зарегистрирован: 05 июн 2007, 12:20
Сообщения: 196
Откуда: Киев
прог. языки: C/C++, ASSEMBLER
Есть ли какая-то опция в WinAVR для отключения генерации таблицы векторов прерываний? В avr-libc manual не нашел ничего.

_________________
Глюк по-немецки означает "счастье"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в WinAVR не создавать таблицу векторов прерываний?
СообщениеДобавлено: 28 май 2011, 16:55 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
А с чем связана такая странная задача?

Добавлено спустя 7 минут 40 секунд:
по идее нужно переписывать линкер-скрипты и возможно crt0, но в ГЦЦ там черт ногу сломит, в них ковыряться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в WinAVR не создавать таблицу векторов прерываний?
СообщениеДобавлено: 28 май 2011, 17:52 
Не в сети
Аватара пользователя

Зарегистрирован: 05 июн 2007, 12:20
Сообщения: 196
Откуда: Киев
прог. языки: C/C++, ASSEMBLER
Michael_K писал(а):
А с чем связана такая странная задача?

С тем, что прерывания не использую и захотелось высвободить лишних 3 десятка байт, которые в тиньке с 1К слов лишними не будут :)

P.S. Кстати, в документации на GCC, в разделе "AVR Options" нашел опции -mno-tablejump и -mno-interrupts, но чето они ничего не изменяют, как были вектора так и остались :(

_________________
Глюк по-немецки означает "счастье"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в WinAVR не создавать таблицу векторов прерываний?
СообщениеДобавлено: 28 май 2011, 21:14 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
три десятка байт проще высвободить ручной оптимизацией
-mno-interrupts судя по описанию это оно, но...

http://caxapa.ru/210510.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в WinAVR не создавать таблицу векторов прерываний?
СообщениеДобавлено: 29 май 2011, 11:33 
Не в сети
Аватара пользователя

Зарегистрирован: 05 июн 2007, 12:20
Сообщения: 196
Откуда: Киев
прог. языки: C/C++, ASSEMBLER
Решилось таким образом:
1) отключаем компиляцию стандартных файлов в опциях линкера -nostartfiles
2) правим файл gcrt1.S из исходников avr-libc: убираем все, что связано с__vector_X и __bad_interrupt
3) исправленный gcrt1.S вместе с macros.inc и sectionname.h добавляем в свой проект
4) говорят, для уменьшения кода можно добавить -mno-interrupts

_________________
Глюк по-немецки означает "счастье"...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 27


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO