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

 
 
> Нужны ли вложенные прерывания?
Altemir
сообщение Jul 31 2009, 21:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Уважаемые, подскажите, пожалуйста.

Проц LPC2214. Есть задача по прерыванию таймера сразу же производить чтение по I2C с девайса. Алгоритм работы по I2C сделан тоже на прерываниях. Необходима синхронность чтения данных с таймером. Следует ли в данном случае использовать вложенные прерывания или можно каким-то образом обойти? Переделать работу с I2C без прерываний? Объём записывемых/считываемых данных из девайса не более 20Байт.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorMarx
сообщение Aug 7 2009, 20:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268



А кто против прерываний? Да ради бога. Всё от задачи зависит. Просто приведу вам пример из свой практики, когда это не нужно. И процу действительно нечем заняться. Flashloader. Надеюсь, там знакомая. Я написал flashloader. В RAM загружается код, который шьёт flash и плюс EEPROM по шине 2IC. Попробуйте теперь меня убедить, зачем мне это делать не в цикле и что я не тот камень выбрал.

Я это не придумал, это реальный код, и вы бы поступили так же (почитали доку framework, где прерывания, мягко говоря, не предусмотрены) - сделали цикл. Если у кого-то не встречалась ситуация, когда этого делать не нужно, - может, просто опыта недостаточно?

Кстати, вложенность прерываний я и сам использую.

Приведу ещё пример. EEPROM - съёмная энергонезависимая память в устройстве. Предположим, инициализация этого устройства при включении питания зависит от содержимого этой памяти. Например, бутлоадер девайса проверяет что воткнули и не нужно ли скопировать новую прошивку во внутреннюю флешь. Если версия новее - копируем, иначе стартуем исполняемый код, обработчик прерываний которого понятия не имеет ни про какие I2C EEPROM. Каким боком тут прерывания? Ещё пример - сохранение контекста работы устройства (по немаскируемому прерыванию!) и восстановление при включении питания. И много чего ещё.

Цитата(Dog Pawlowa @ Aug 7 2009, 23:19) *
В среднестатистическом устройстве (среди моих - 100%) обращение по I2C (запись в EEPROM) связана с определенными действиями по интерфейсу пользователя, сменой состояний основного процесса, а все, что нужно для функционирования прибора, запихано в свои прерывания, вовсе необязательно вложенные.


Это точно. Вот бьюсь сейчас - GSM модем делает задержки более секунды при обращениях, а опрашивать MDB шину и поддерживать протокол нужно с периодом этак 0.1 сек... Не то мне дополнительный поток делать с диспетчеризацией, не то обрабатывать весь протокол MDB в прерываниях sad.gif

Сообщение отредактировал IgorMarx - Aug 7 2009, 20:04
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Altemir   Нужны ли вложенные прерывания?   Jul 31 2009, 21:45
- - aaarrr   ИМХО, шина I2C вообще не предполагает работу с жес...   Jul 31 2009, 22:05
|- - Altemir   Цитата(aaarrr @ Aug 1 2009, 02:05) ИМХО, ...   Jul 31 2009, 22:27
|- - defunct   Цитата(Altemir @ Aug 1 2009, 01:27) Шина ...   Jul 31 2009, 23:55
|- - Altemir   Цитата(defunct @ Aug 1 2009, 03:55) Так о...   Aug 1 2009, 09:36
|- - smac   Цитата(Altemir @ Aug 1 2009, 13:36) Собст...   Aug 1 2009, 14:38
|- - Altemir   Цитата(smac @ Aug 1 2009, 18:38) Я бы при...   Aug 1 2009, 15:45
|- - defunct   Цитата(Altemir @ Aug 1 2009, 18:45) Да, т...   Aug 1 2009, 23:25
- - IgorMarx   Ответ таков: если вы не планируете выйти из обрабо...   Aug 1 2009, 12:44
|- - singlskv   Цитата(IgorMarx @ Aug 1 2009, 16:44) Что ...   Aug 1 2009, 23:56
||- - IgorMarx   Цитата(singlskv @ Aug 2 2009, 03:56) Ерун...   Aug 7 2009, 17:03
|||- - singlskv   Цитата(IgorMarx @ Aug 7 2009, 21:03) А те...   Aug 7 2009, 23:15
|||- - IgorMarx   Цитата(singlskv @ Aug 8 2009, 03:15) но в...   Aug 8 2009, 04:38
|||- - Dog Pawlowa   Цитата(singlskv @ Aug 8 2009, 02:15) Спас...   Aug 8 2009, 05:45
|||- - zltigo   Цитата(Dog Pawlowa @ Aug 8 2009, 08:45) П...   Aug 8 2009, 06:12
|||- - SasaVitebsk   Цитата(zltigo @ Aug 8 2009, 09:12) Не так...   Aug 8 2009, 20:12
||||- - singlskv   Цитата(SasaVitebsk @ Aug 9 2009, 00:12) А...   Aug 9 2009, 00:21
|||- - Dog Pawlowa   Цитата(zltigo @ Aug 8 2009, 09:12) Однако...   Aug 9 2009, 05:17
|||- - Step_ARM   Цитата(zltigo @ Aug 8 2009, 10:12) А уров...   Aug 10 2009, 04:02
||||- - zltigo   Цитата(Step_ARM @ Aug 10 2009, 07:02) Кто...   Aug 10 2009, 04:10
||||- - Step_ARM   Цитата(zltigo @ Aug 10 2009, 08:10) Понят...   Aug 10 2009, 05:04
||||- - aaarrr   Цитата(Step_ARM @ Aug 10 2009, 09:04) Как...   Aug 10 2009, 08:01
|||||- - Step_ARM   Цитата(aaarrr @ Aug 10 2009, 12:01) Все о...   Aug 13 2009, 05:00
||||- - zltigo   Цитата(Step_ARM @ Aug 10 2009, 07:04) А е...   Aug 13 2009, 05:52
||||- - Step_ARM   Цитата(zltigo @ Aug 13 2009, 09:52) Так п...   Aug 13 2009, 06:50
||||- - zltigo   Цитата(Step_ARM @ Aug 13 2009, 08:50) Как...   Aug 13 2009, 06:57
||||- - Step_ARM   Цитата(zltigo @ Aug 13 2009, 10:57) Интер...   Aug 13 2009, 12:59
||||- - zltigo   Цитата(Step_ARM @ Aug 13 2009, 14:59) в и...   Aug 13 2009, 13:11
|||- - sasamy   Цитата(zltigo @ Aug 8 2009, 09:12) убогос...   Aug 27 2009, 19:15
||- - zltigo   Цитата(singlskv @ Aug 2 2009, 02:56) Ерун...   Aug 7 2009, 18:28
||- - Dog Pawlowa   Цитата(singlskv @ Aug 2 2009, 02:56) Ерун...   Aug 7 2009, 19:19
|- - Step_ARM   Цитата(IgorMarx @ Aug 1 2009, 16:44) Отве...   Aug 3 2009, 06:02
|- - Altemir   Всем спасибо за предложения. Всё сделал, проверил,...   Aug 3 2009, 11:00
- - beer_warrior   А зачем такиие сложности с вложенным прерыванем? Т...   Aug 2 2009, 07:01
- - Troll   Цитата(Altemir @ Aug 3 2009, 15:00) Ещё о...   Aug 3 2009, 12:57
|- - Step_ARM   Цитата(Troll @ Aug 3 2009, 16:57) Хрень к...   Aug 4 2009, 03:54


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

 


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


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