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

 
 
> Errata STM8, Interrupt service routine (ISR) executed with priority of main process
Alt.F4
сообщение Feb 1 2016, 19:57
Сообщение #1


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

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Здравствуйте.

Смотрю Errata на STM8, но не могу уловить сути описанной проблемы:
Interrupt service routine (ISR) executed with priority of main process
If an interrupt is cleared or masked when the context saving has already started, the corresponding ISR is executed with the priority of the main process.

Что это значит, что нельзя сбрасывать флаг прерывания после входа в прерывания, иначе у него теряется приоритет и другое прерывание может его перебить (но флаг то прерываний снят)?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Jury093
сообщение Feb 1 2016, 22:01
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Alt.F4 @ Feb 1 2016, 22:57) *
Что это значит, что нельзя сбрасывать флаг прерывания после входа в прерывания, иначе у него теряется приоритет и другое прерывание может его перебить (но флаг то прерываний снят)?

мимо проходил.. может такой вариант внесет просветления:

Код
Description
If an interrupt is cleared or masked when the context saving has already started, the
corresponding ISR is executed with the priority of the main process. The next interrupt
request can interrupt execution of the service routine
Workaround
At the beginning of the interrupt routine, change the current priority level in the CCR register
by software

зы совершенно не в курсе этой архитектуры.. но смотрел бы change в сторону понижения приоритета
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Feb 2 2016, 08:40
Сообщение #3


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

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Jury093, Ваше описание возможно с другого камня, т.к. в еррата STM8L написано, что решения нет.

Вопрос только, что они подразумевают под "interrupt is cleared or masked", это глобальный флаг прерываний, или флаг текущего прерывания.

Если глобальный, то в принципе другие прерывания не сработают, а если текущего прерывания, то получается, что о никаких приоритетах речи не идет, тупо все прерывания будут перебиты другими.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 02:46
Рейтинг@Mail.ru


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