Перейти к содержанию
    

Выход из прерывания в требуемую точку

Можно перед выходом из прерывания настроить таймер, чтобы он через некоторое количество тактов сработал и использовать его прерывание для реакции на команду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, ваш вариант "в определенный момент выйти из прерывания (UART) в требуемую точку, а уж оттуда потом продолжить выполнения с места, где возникло прерывание" практически полностью эквивалентен варианту "в конце прерывания вызвать нужную функцию".

да нет, выпав с прерывания в определенную точку то же самое прерывание может выполнится еще раз, вернувшись опять в ту точку и так рекурсивно :)

Скорее рекурсивный глюк выйдет :)

Хотя для кортексов это все не нужно, там есть svc,pendsv,systick, все с настраиваемыми приоритетами, все с tail-chaining, те все быстро и красиво,

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все быстро и красиво,

Да, с вложенными прерываниями - гораздо краше. Код тяжелого обработчика в SVC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать механизм setjmp & longjmp. При этом не забыть в контроллере прерываний деинициализировать текущее прерывание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно ли сделал запись по формированию и вызову программного прерывания? Keil (LPC2468)

 

.
.
#define SoftwareInterrupt asm (" swi #1")
.
.
void SWI_ISR(void) __attribute__ ((interrupt("SWI")));
main
{
    SoftwareInterrupt;    
while(1);
}
.
.
.

void SWI_ISR(void)
{
   бла-бла-бла
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну типа правильно, не помню только что там с приоритетами, armv4 не юзал давно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...