Easyelectronics.ru

Электроника для всех
Текущее время: 26 фев 2021, 03:57

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: AvrStudio, перекрытие кода и половые извращения
СообщениеДобавлено: 24 фев 2010, 20:22 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1027
Откуда: Винница
Есть таблица векторов прерываний, записанная в виде
Код:
.org   0
rjmp RESET ; Reset Handler
.org   INT0addr
reti;rjmp EXT_INT0 ; IRQ0 Handler
...
.org   URXCaddr
reti;rjmp USART_RXC ; USART RX Complete Handler
...
.org INT_VECTORS_SIZE

Есть программный модуль в отдельном файле. В этом модуле, в зависимости от условий компиляции, используется USART на прием или на передачу. Можно ли как-то сделать, чтобы вектор для приемника\передатчика задавался в этом модуле, не трогая таблицу векторов?

Я попробовал
Код:
l1:
.org   URXCaddr
rjmp USART_RXC
.org l1

USART_RXC:
   push   temp
...

В надежде, что дойдя до ".org URXCaddr" оно перезапишет "reti", хранящийся по этому адресу, а потом вернется на адрес метки "l1" и продолжит дальше по тексту :)
Но получил "error: Overlap in .cseg: addr=0xb conflicts with 0xb:0xc"

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AvrStudio, перекрытие кода и половые извращения
СообщениеДобавлено: 24 фев 2010, 20:37 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1027
Откуда: Винница
Ога, все оно прекрасно может, только не хочет. Надо просто поставить "-O i" или "-O w" в дополнительных параметрах компиляции, что или отключает сообщение о перекрытии кода или выводит его как варнинг, а не еррор :)

_________________
Show


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


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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB