Цитата(777777 @ Oct 13 2011, 07:15)

Выводится аналоговый сигнал в ЦАП с помощью DMA. Довольно интенсвно, через 264 нс. Пока работает только он, сигнал ровный. Но стоит запрограммировать любую другую периферию с прерываниями, как сигнал начинает тормозиться, увеличивается его период, появляются искажения. Причем только если выполянются прерывания. Как это может быть? Разве DMA не может захватить шину в любой нужный ему момент времени? Или при обработке прерывания запрещаются не только другие прерывания, но и DMA?
Цитата
13.3 DMA functional description
The DMA controller performs direct memory transfer by sharing the system bus with the
Cortex™-M3 core. The DMA request may stop the CPU access to the system bus for some
bus cycles, when the CPU and DMA are targeting the same destination (memory or
peripheral). The bus matrix implements round-robin scheduling, thus ensuring at least half
of the system bus bandwidth (both to memory and peripheral) for the CPU.
Может дело в том что именно в прерывании идёт обращение к тому же куску адресного пространства (или шине), на которое претендует и ПДП. И поэтому только здесь происходит чередование.
Сообщение отредактировал Юрий_СВ - Oct 13 2011, 09:57