Цитата(spf @ Nov 1 2005, 08:05)
Добрый день,
Поделитесь информацией, не дайте утонуть в чтении гор документации.
Каково минимальное время реакции на прерывание (в тактах ядра) и чем оно определяется ?
Прерывание внешнее (изменение состояние входа).
Прерывание от внутренней периферии.
У LPC2xxx?
У AT91xxx?
У остальных?
PS:
В faq не нашел, поиски по конфе ничего не дали, может не там искал. Если эта тема уже где то рассмотрена сообщите ссылку.
Вот кусок из статьи, которую я еще не дописал...
"...Далее сам контроллер прерываний. Здесь необходимо учитывать латентность (задержку на выполнение) контроллера. Контроллер – статический автомат, шифрующий состояния приоритетов. На входе у него регистр маски прерываний, триггер глобального разрешения-запрета. На прохождение сигнала через эти цепи требуется некоторое время. Далее, сигнал запроса приходит а АЛУ и …. Но перед этим должна завершиться текущая выполняемая команда. И эта команда не всегда бывает однотактная.
В качестве примера возьмем ADuC7025. В самом худшем случае время ожидания для FIQ состоит из самого большого отрезка времени, которое может потребоваться для сигнала запроса, чтобы пройти через синхронизатор, плюс время для завершения самой длинной команды - LDM, которая загружает все регистры, включая PC, плюс время, необходимое для аварийного прекращения работы данных, плюс время для входа в FIQ . В конце этого времени, ARM7TDMI будет выполнять команду, расположенную по адресу 0x1C (адрес вектора прерывания FIQ). Максимальное время - 50 циклов процессора, которое равно 1.2 мкСек для системы, использующей для процессора синхрочастоту в 41.78 МГц. Максимальное вычисление времени ожидания запроса на прерывание IRQ подобно приведенному выше, но необходимо учесть тот факт, что FIQ имеет более высокий приоритет и может задержать вход в запрос на прерывание IRQ, поскольку обслуживание прерывания верхнего уровня может проводиться в течение произвольного отрезка времени.
Минимальное время ожидания может быть уменьшено до 42 циклов, если не используется команда LDM , поэтому некоторые компиляторы имеют такую опцию, позволяющую компилировать, не используя данную команду. Другая опция, позволяющая уменьшить латентность до 22 циклов, состоит в том, что программа должна выполниться в режиме THUMB.
Минимальное время ожидания для FIQ или прерываний IRQ - всего пять циклов, которое состоит из времени, необходимого для того, чтобы запрос мог пройти через синхронизатор плюс время, требуемое для выполнения режима исключения."
Надеюсь, что это Вам поможет. Если найдете, что либо еще интересное, пришлите мне.
Удачи.