Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывания в Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
AntonC
Здравствуйте, уважаемые...

Писал обработчик прерывания для INT0, уложился в 7 байт.
Писал для С8051F320, хотя это наверное не важно, писал на С и на ASM.

Проблема:
Как поместить эти инструкции прямо по адресу 0x0003, без перехода (LJMP)?

Так же есть обработчик прерывания таймера, больше чем на 8 байт.

Спасибо.
skripach
Отключите прерывания идущие по след. адресам после INT0, и поместите обработчик сколь угодно большой без перехода.
Это конечно если остальные прерывания не используются.

Или я чего-то не понял?
AntonC
Линковщик помещает код обработчика по адресу 0х0056, а в 0х0003 ставит инструкцию LJMP, хотя обработчик вполне влезает в 8 отведенных байт...
Меня интересует как это исправить, обработчик большего размера мне не нужен.
Я хочу чтоб код начиналсяя сразу с адреса 0х0003.
kosyak©
вот тут
http://www.onembedding.com/tools/keil/arti.../explicit_addr/
есть статья про то как в кейле размещать инициализированные переменные в памяти кода по заданному адресу ...
скорее всего такой трюк возможен и с функциями....
редактор
А не проще в startup файле поместить обработчик с указанием абсолютного адреса сегмента

CSEG AT 03h
...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.