[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 18 октября 2006 г. 13:29
В ответ на: Ну про сбор в прерывании - это, конечно, возможно. И сам иногда так делаю. Просто такой подход имеет ряд ограничений и годится только для случаев, когда не так много задач, прерывающих одна другую. По-хорошему в прерывании надо только сделать release semaphore и все. Все остальное сделает операционка (+) отправлено <font color=gray>homekvn</font> 18 октября 2006 г. 13:04

Вот как раз централизованный процесс имеет большущий минус - он жрет ресурс в процессе переключения контекстов. А сохранить-восстановить в современных процессорах DSP надо ой-ой сколько всего. Я просто ухожу от этой операции и контекстов (в смысле сохранения регистров процессора, переключения стеков, и т.п., а не контекста в смысле текущего состояния задачи) вообще, высвобождая ресурсы.

А сбор данных я скидываю на задачу только тогда, когда по каким-то причинам это нельзя сделать в прерывании. Обычно "задача" прерывания просто пихает данные в очередь, которую потом разгребает задача. В случае DMA, действительно, только "семафорит", так как уже принят целый блок.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание