Приветствую.
В системе имеется несколько источников прерываний:
1) SgDMA Stream To Memory (IRQ #1)
2) Прерывание от PIO (IRQ #0)
На PIO приходит синхроимпульс по которому срабатывает прерывание и запускается SgDMA Memory To Stream. SgDMA Memory To Stream должен за период синхронизации обработать (передать) какое-то количество байт.
Было всё круто, но счас пытаемся выжать максимальную скорость и столкнулся с проблемой - запуск SgDMA Memory To Stream не всегда происходит сразу после прихода синхроимпульса. Иногда запуск SgDMA Memory To Stream происходит с достаточно большой задержкой после прихода синхроимпульса, и, как следствиие, не все данные успевают передаться за период синхронизации. Если отключить прерывания от SgDMA Stream To Memory, то такого не наблюдается.
Видимо, какие-то проблемы с приоритетом прерываний и почемуто прерывание от PIO срабатывает с задержкой. Подскажите куда копать и в чём может быть проблема?
Спасибо.