реклама на сайте
подробности

 
 
> Прерывания в Keil, Обработчик в 8 байт.
AntonC
сообщение Apr 29 2008, 18:25
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 15-10-07
Пользователь №: 31 367



Здравствуйте, уважаемые...

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

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

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

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
skripach
сообщение Apr 29 2008, 21:05
Сообщение #2


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



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

Или я чего-то не понял?

Сообщение отредактировал skripach - Apr 29 2008, 21:06


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
AntonC
сообщение Apr 30 2008, 06:48
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 15-10-07
Пользователь №: 31 367



Линковщик помещает код обработчика по адресу 0х0056, а в 0х0003 ставит инструкцию LJMP, хотя обработчик вполне влезает в 8 отведенных байт...
Меня интересует как это исправить, обработчик большего размера мне не нужен.
Я хочу чтоб код начиналсяя сразу с адреса 0х0003.
Go to the top of the page
 
+Quote Post
kosyak©
сообщение Apr 30 2008, 06:58
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 1-10-07
Из: НЧ
Пользователь №: 30 966



вот тут
http://www.onembedding.com/tools/keil/arti.../explicit_addr/
есть статья про то как в кейле размещать инициализированные переменные в памяти кода по заданному адресу ...
скорее всего такой трюк возможен и с функциями....
Go to the top of the page
 
+Quote Post
редактор
сообщение May 6 2008, 11:27
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



А не проще в startup файле поместить обработчик с указанием абсолютного адреса сегмента

CSEG AT 03h
...


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016