-
- Конечно поддерживает. Смотрите в мануале Table 5-4. Summary of triggers, transaction complete flag and channel disable according to DMA channel configuration. Apтём(184 знак., 07.04.2017 16:36)
- А как этому DMA задают, сколько байт надо ему качать, если буфер кольцевой? Например, DMA успел передать только часть данных из буфера, а в это время надо добавить в буфер еще порцию. Как тут поступить? Ждать завершения операции, чтобы потом дать Ксения(76 знак., 07.04.2017 21:53)
- Вы несколько переводите тему. Apтём(1898 знак., 07.04.2017 22:22)
- Но меня интересует передача. Буфер тоже кольцевой, в него время от времени подбрасываются еще порции. Какую тактику вы бы посоветовали в этом случае? - Ксения(07.04.2017 22:38)
- Я наверное сделал бы также как и при передаче с использованием прерывания UDRE, только с ДМА передавались бы не байты, а блоки из буфера передачи. Apтём(827 знак., 07.04.2017 23:09)
- Но здесь я не вижу разрешения коллизии, когда вызван SendBuffer(), когда DMA еще не окончил предыдущее задание. Разве запуск новой передачи StartDMATx() не повредит окончанию старой? - Ксения(07.04.2017 23:17)
- Коллизии нет никакой - надо просто правильно сделать (ошибку заложить конечно можно). Apтём(1082 знак., 07.04.2017 23:33 - 08.04.2017 02:03)
- Насколько я понимаю, CRITICAL_SECTION на DMA не действует. Ксения(686 знак., 08.04.2017 07:39)
- CRITICAL_SECTION: Apтём(1225 знак., 08.04.2017 14:11)
- Насколько я понимаю, CRITICAL_SECTION на DMA не действует. Ксения(686 знак., 08.04.2017 07:39)
- Коллизии нет никакой - надо просто правильно сделать (ошибку заложить конечно можно). Apтём(1082 знак., 07.04.2017 23:33 - 08.04.2017 02:03)
- Но здесь я не вижу разрешения коллизии, когда вызван SendBuffer(), когда DMA еще не окончил предыдущее задание. Разве запуск новой передачи StartDMATx() не повредит окончанию старой? - Ксения(07.04.2017 23:17)
- Я наверное сделал бы также как и при передаче с использованием прерывания UDRE, только с ДМА передавались бы не байты, а блоки из буфера передачи. Apтём(827 знак., 07.04.2017 23:09)
- Но меня интересует передача. Буфер тоже кольцевой, в него время от времени подбрасываются еще порции. Какую тактику вы бы посоветовали в этом случае? - Ксения(07.04.2017 22:38)
- Вы несколько переводите тему. Apтём(1898 знак., 07.04.2017 22:22)
- А как этому DMA задают, сколько байт надо ему качать, если буфер кольцевой? Например, DMA успел передать только часть данных из буфера, а в это время надо добавить в буфер еще порцию. Как тут поступить? Ждать завершения операции, чтобы потом дать Ксения(76 знак., 07.04.2017 21:53)
- Конечно поддерживает. Смотрите в мануале Table 5-4. Summary of triggers, transaction complete flag and channel disable according to DMA channel configuration. Apтём(184 знак., 07.04.2017 16:36)