Отговори на тема  [ 6 мнения ] 
Куртекс - забрана/разрешаване на периферни прекъсвания. 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Куртекс - забрана/разрешаване на периферни прекъсвания.
При Куртекса ( а и при доста други контролери), като цяло има две нива на управление на прекъсванията. Едното е на ниво периферен контролер (например UART) другото е на ниво NVIC. Замислих се къде е по - добре, човек да пуска - спира определено прекъсване, дали от периферията или от NVIC. От една страна ако го прави в NVIC е по унифицирано и е удобно ако търсиш някаква автоматизация и ползване на общ код. От друга в NVIC някой прекъсвания са навързани накуп за няколко източника (поне на STM32 де), та блокирайки в NVIC се блокира всичко вързано на тая шина ... Някакви други съображения да имате вие?

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Последна промяна Цецо на Чет Окт 10, 2013 5:09 pm, променена общо 1 път



Чет Окт 10, 2013 4:04 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение Re: Куртекс - забрана/разрешаване на периферни прекъсвания.
Аз винаги забранявам в периферията. Събражения: При забраняване обикновено се налага да се правят и други екшени по периферията, така че там без пипане трудно ще мине. При разрешаване винаги се налага - най-малкото да се изчистят пендващите заявки.
Втори аргумент - в NVIC на една линния често са по няколко реквеста.


Чет Окт 10, 2013 4:23 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Куртекс - забрана/разрешаване на периферни прекъсвания.
Това с няколкото периферии на едно прекъсване е патент на ST ;-)

Не знам Цецо какво му се върти в главата, защото трудно може да се каже кое е "правилно". В общия случай ако няма да се ползва дадена периферия е редно да се спре през NVIC след това да се дръпне шалтера от системния контролер. Поне за 3-та производителя дето ползвам това си става с унифициран код.
Логиката е че при добре проектиран проц всяка периферия би следвало да е отделен клок и отделен power домейн. Някак си не върви да оставиш прекъсване от неклокната или незахранена схема. Но... при ST няма такава опасност май, мисля че нямат отделни power домейни ;-)


Чет Окт 10, 2013 5:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Куртекс - забрана/разрешаване на периферни прекъсвания.
Не говорим за тотално спиране на периферията. Тогава е ясно. А за временно маскиране. Нищо не ми се върти в главата, просто събирам съображения, да не пропускам нещо.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Чет Окт 10, 2013 5:53 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Куртекс - забрана/разрешаване на периферни прекъсвания.
просто нямам идея що питаш и гадая....

Ако периферията не работи не виждам причина да й спираш прекъсванията освен ако не й дърпаш шалтера... Явно искаш докато работи замалко да я забравиш (не че разбирам защо ще го правиш). Не знам какви съображения търсиш, единственото дето се сещам да съобразиш дали няма да ти се получи някаква конкуренция. Т.е. някъде решаваш че ще забраняваш и тръгваш да забраняваш, но междувременно идва прекъсване и да не ти обърка логиката ;-)
Със сигурност ако кодът ти се изпълнява на по-висок приоритет и забраниш през NVIC може да си сигурен че няма да те прекъсне нито да ти се получи дъми прекъсване след това... Ако го правиш през маските и през периферията просто няма как да се генерализира, знам ли дали прекъсванията ти са ниво или фронт и дали не са забравили някъде синхронен буфер.
Аз обикновено не разчитам на перифериите защото много често съм виждал как след подобни игри си влиза в прекъсване, въпреки че няма причина щото то вече е изчистено или забранено...


Чет Окт 10, 2013 6:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Куртекс - забрана/разрешаване на периферни прекъсвания.
Да точно това имах предвид. В NVIC нещата са малко или много унифицирани. Докато в перифериите е бозица.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Пет Окт 11, 2013 9:25 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни