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

 
 
 
Reply to this topicStart new topic
> вмешаться в сохранение регистров, в обработчике прерывания
Flasher
сообщение Jun 8 2008, 20:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Прерывание по переполнению таймера- хочу загрузить константы в TCNT до сохранения контекста(довольно много регистров) - иначе приходиться делать коррекцию на время сохранения контекста.
Go to the top of the page
 
+Quote Post
vet
сообщение Jun 9 2008, 04:14
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



режим CTC таймера не подходит?


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
Flasher
сообщение Jun 9 2008, 07:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



Лучше вмешатьсяsmile.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 9 2008, 07:45
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



а если просто поставить в начале свой ообработчик на асм, а потом сделать rjmp на С шный обработчик или вообще поставить их друг за другом с помощью указания сегментов.
Код
        COMMON  INTVEC:CODE:ROOT(1); Align at an even address
          ORG  ...
          RJMP  asm_handler


        RSEG   INTASMCODE:CODE:ROOT(1)
asm_handler:
           ......
       EXTERN c_handler
       REQUIRE c_handler


Код
#pragma location="INTCCODE"
void __monitor c_handler(void)
{
....

и разместить сегменты INTASMCODE, INTCCODE подряд - это сэкономит один jmp
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 9 2008, 08:29
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



В IAR для этого существуют директивы типа __raw и __task. См. в хелпе конкретной версии компилятора.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 9 2008, 17:20
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(rezident @ Jun 9 2008, 11:29) *
См. в хелпе конкретной версии компилятора.

Только не pdf, а html, где описаны недокументированные ранее особенности.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 9 2008, 19:01
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(IgorKossak @ Jun 9 2008, 23:20) *
Только не pdf, а html, где описаны недокументированные ранее особенности.
Именно в pdf и все документировано уже года полтора как.
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jun 9 2008, 19:47
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(rezident @ Jun 9 2008, 23:01) *
Именно и все документировано уже года полтора как.

Не знаю как для АРМ и МСП, а в pdf для АВРов точно нету даже напоминания об этом __raw.
__task - это есть. Ключевое слово __raw и примеры его применения есть только в html, если быть точнее то в iccavr и manuals. Причём полная версия компилятора 3.10А матерится, а на 4.21А всё канает. Точно с какой версии __raw работает сказать не могу, извиняюсь за конкретику но это проверенно на компиляторе для АВР.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 9 2008, 22:39
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(sKWO @ Jun 10 2008, 01:47) *
Не знаю как для АРМ и МСП, а в pdf для АВРов точно нету даже напоминания об этом __raw.
__task - это есть. Ключевое слово __raw и примеры его применения есть только в html, если быть точнее то в iccavr и manuals. Причём полная версия компилятора 3.10А матерится, а на 4.21А всё канает. Точно с какой версии __raw работает сказать не могу, извиняюсь за конкретику но это проверенно на компиляторе для АВР.
Ну в IAR ARM такой опции вообще не может быть ввиду особенности архитектуры. А для MSP430 посмотрел состав IAR EW430 3.20A, файл EW430_CompilerReference.pdf датированный 17.06.2004. Там уже есть и __task и __raw. Так что я не вру нисколько laughing.gif В IAR AVR 4.21A (других версий под рукой нету у меня) действительно описана только __task cranky.gif
Go to the top of the page
 
+Quote Post

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

 


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


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