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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> LPC17xx NVIC - Как заблокировать все IRQ с приоритетом ниже нужного?
_Артём_
сообщение Jul 11 2013, 10:30
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(GetSmart @ Jul 11 2013, 12:29) *
А для CM0 есть механизм аналогичного ограничения приоритетов?

Нет такого механизма. На то он и М0.



Цитата(GetSmart @ Jul 11 2013, 12:29) *
В файле CMSIS для CM0 нет упоминания Base Priority Mask Register.

Только PRIMASK есть.

Может в Cortex-M0+ добавят функциональности...

Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 11 2013, 11:42
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(_Артём_ @ Jul 11 2013, 16:30) *
Нет такого механизма. На то он и М0.

Как-то неполиткорректно sm.gif

В ядре столько много понапихано, что какая-то мелочь ни чуть не добавила сложности/потребления. Даже если цифровой компаратор считать сложным, то маскировка приоритетов по И/ИЛИ просто элементарна.

Сообщение отредактировал GetSmart - Jul 11 2013, 15:22


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 11 2013, 15:00
Сообщение #18


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Мало того, в доке на LPC11xx (CM0) LPC81x (CM0+) об NVIC есть пунктик "4 programmable interrupt priority levels with hardware priority level masking", который трудно перевести как блокировка всех IRQ с конфигурируемыми приоритетами (регистром PRIMASK).

Так что, надежда остаётся? sm.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 11 2013, 16:45
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(GetSmart @ Jul 11 2013, 18:00) *
"4 programmable interrupt priority levels with hardware priority level masking", который трудно перевести как блокировка всех IRQ с конфигурируемыми приоритетами (регистром PRIMASK).

Непонятно как надо понимать эту фразу. Прерывание с приоритетом N может прервать прерывание с приритетом N+1. но не наоборот. Это обеспечивает hardware
PRIMASK запрещает/разрешает выполнение всех прерываний с конфигурируемым проиритетом. Не то.
Цитата(GetSmart @ Jul 11 2013, 18:00) *
Так что, надежда остаётся? sm.gif

Толку с неё, если регистр BASEPRI не реализован? sm.gif

Сообщение отредактировал IgorKossak - Jul 11 2013, 16:58
Причина редактирования: пробельных строк не делайте!!!
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jul 11 2013, 17:44
Сообщение #20


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(_Артём_ @ Jul 11 2013, 22:45) *
Прерывание с приоритетом N может прервать прерывание с приритетом N+1. но не наоборот. Это обеспечивает hardware

Такая интерпретация второй части предложения напоминает масло масляное. Наличие нескольких уровней приоритетов в контроллере ВСЕГДА обязывает контроллер их ограничивать в процессе их обслуживания. В то же время "софтвер маскинг" обозначало бы ручное управление разрешением/запретом конкретных прерываний. А вот "хардвер маскинг" обозначает "лазейку" типа BASEPRI или ещё более простую маскировку, но для 4 уровней от неё экономия будет незаметна.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


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


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