Прямой доступ к памяти (DMA) - это функция современных компьютеров и микропроцессоров, которая позволяет определенным аппаратным подсистемам внутри компьютера получать доступ к системной памяти для чтения и / или записи независимо от центрального процессора.
3 ответа

Использование DMA для доступа к высокоскоростному последовательному порту

Я использую компонент serialport в C#, и он работает хорошо! Но вопрос в том, как можно быстрее обрабатывать высокоскоростные (например, 2 Мбит / с) передачи данных. Поскольку я исследовал это, я обнаружил, что к памяти можно получить доступ напряму…
28 май '15 в 06:53
1 ответ

free(): неверный указатель только после обращения к драйверу ZMA

У меня есть драйвер, который выполняет передачу DMA в память, которая malloc'ed в приложении пространства пользователя, а затем передается в ядро ​​(get_user_pages...). Проблема: я получаю сообщение "неверный указатель" при вызове free(). Я печатаю …
05 окт '17 в 09:47
2 ответа

Реализовать контроллер кадров UART

Я программирую на плате STM32, и я не понимаю, как использовать мои периферийные устройства: опрос, прерывание, DMA, прерывание DMA... На самом деле, я кодировал модуль UART, который отправляет базовые данные, и он работает в режиме опроса, прерыван…
12 апр '17 в 12:22
1 ответ

DMA для FPGA PCI IO карты

У меня есть mesa electronics 5i20 PCI-карта. Предоставляется приложение, которое принимает данные на ПК и отправляет их в ПЛИС на карту и аналогичным образом считывает данные с ПЛИС на карту на ПК. PCI поддерживает передачу данных 33 МГц. Используя …
13 май '13 в 11:31
0 ответов

Как одновременно воспроизводить два аудиопотока PCM в одном DMA

Я работаю над проектом на плате stm32f769i-disco, который должен запускать видеоигры, сделанные мной. Графическая часть решена, где у меня проблемы, когда мне нужно воспроизвести два или более файлов WAV, я не знаю, как правильно добавить их в один …
11 янв '18 в 15:30
1 ответ

STM32f4 ADC1 Dma конфигурация не работает

Я пытаюсь настроить ADC1 и запустить его. Использование примеров периферийных устройств STM для ADC3 с DMA. В примере я вижу изменения в ADC3ConvertedValue. Вот пример рабочего кода: #include "stm32f4_discovery.h" #include <stdio.h> #define AD…
08 дек '16 в 17:14
0 ответов

Программирование контроллера DMA Atmel

Я работаю над модулем ядра Linux для считывания данных с чипа на шине SPI системы AT91SAM9x25EK на чипе. Я нахожу какое-то необычное поведение, хотя. Чип должен возвращать наборы чисел, которые выглядят так: 170, 172, 172, 172, 170, 173, 173, 173, 1…
27 авг '13 в 22:56
0 ответов

Создание драйвера устройства, к которому можно получить доступ как именованный канал для zedboard

В настоящее время работает с: ПЛИС; особенно Zedboard. ОС: Linux Распространение: Xillinux Цель текущего проекта: воспроизвести аудиофайл в формате mp3, хранящийся на SD-карте, прикрепленной к ZedBoard. Примерный путь 1) FFmpeg будет использоваться …
20 ноя '17 в 10:23
1 ответ

STM32F - SPI с DMA "ErrorCallback" и смещенными кадрами

Я передаю 2 uC (дисплей Arduino как MASTER и STM32F429 как подчиненный). Его связь состоит из 10 байтов в полнодуплексном режиме через SPI с использованием DMA, каждые 150 мс. В течение нескольких минут связь идет очень хорошо, оба ОК правильно отпр…
15 ноя '17 в 11:45
2 ответа

Linux DMA API: указание поведения приращения адреса?

Я пишу драйвер для Altera Soc Development Kit и должен поддерживать два режима передачи данных в / из FPGA: Передачи FIFO: при записи (или чтении) из FIFO FPGA адрес назначения (или источника) не должен увеличиваться контроллером DMA. передачи не в …
09 фев '15 в 17:37
2 ответа

Кеш - сброс и аннулирование операции

У меня есть несколько вопросов по операциям синхронизации кэша. Invalidate: перед тем, как процессор попытается прочитать часть памяти, обновленную устройством, соответствующая память должна быть аннулирована. Очистка: перед тем, как устройство проч…
22 фев '10 в 11:25
1 ответ

Управление сервоприводами с локального сервера Raspberry Pi

Мы проводим исследования по запуску сервера на Pi и общению с ним через веб-приложение (через локальную сеть) для управления 2-3 сервоприводами. Похоже, что Rpi имеет только один аппаратно настроенный вывод PWM, но это можно обойти с помощью сервобл…
15 фев '13 в 01:18
1 ответ

STM32 F3 Discovery АЦП с DMA и Nvic

Мне нужно использовать 4 канала АЦП в моем обнаружении stm32f3, поэтому я решил использовать DMA с Nvic. Значения, отправленные USART, являются правильными, однако прерывание DMA1 Channel1 вызывается только один раз после загрузки кода на флэш-памят…
01 фев '16 в 19:00
1 ответ

Как работает "scatterlist" в linux?

Как мы знаем, список разброса собирает память, физически разбросанную по всей памяти, но, тем не менее, практически непрерывную. При взаимодействии с DMA он обеспечивает абстрактное представление памяти для DMA, поскольку это физически является непр…
2 ответа

Какие-нибудь встроенные методы Linux для устройств типа AXI-Burst?

Мне нужно общаться с устройством FPGA на основе интерфейса AXI-пакета. Как можно получить доступ к такому устройству через Linux, не используя DMA? Burst является неотъемлемым свойством стандарта AXI, которое обычно должно запускаться автоматически …
13 мар '14 в 09:06
1 ответ

Вопросы о dma_sync_single_for_cpu() / dma_sync_single_for_device()

Мой код использует API потокового DMA для сопоставления выделенного буфера с областью DMA, как показано ниже: void perform_dma(void *buffer) { dma_map_single(buffer... DMA_BIDIRECTIONAL); <- map buffer to physical address ring_doorbell() -> no…
11 ноя '18 в 06:25
1 ответ

Быстрый буфер памяти mmaped для DMA

В настоящее время я разрабатываю драйвер Linux для DMA. Драйвер выделяет область памяти, используя dma_alloc_coherent, который я сопоставляю с пользовательским пространством, используя _dma_mmap_id = (int*) mmap(NULL, buffer_size, PROT_READ | PROT_W…
16 май '16 в 16:39
1 ответ

DSPIC33F UART DMA Пример не работает

Я пытаюсь использовать DMA для моих UART Rx и Tx. До сих пор у меня была бесплатная серийная демоверсия ROTOS, работающая нормально. Это все еще работает отлично. Однако теперь я включил пример UART DMA из примеров проектов. код условно компилируетс…
06 фев '15 в 20:57
0 ответов

Драйвер Linux: пример использования scatterlist для DMA/PCIe

Кто-нибудь нашел пример драйвера, который использует new-ish scatterlist API (dma_map_sgи т. д. для 2.6.26+)? У меня много непересекающейся документации, но нет примера кода. Я бы предпочел не загружать все дерево ядра и искать драйверы, которые мог…
06 мар '16 в 16:34
0 ответов

STM32F4 I2C с DMA не работает

Я использую один STM32F4 и хочу связаться с моим акселерометром LSM303. Для этого я использую I2C, и просто использование I2C работает нормально, но когда я пытаюсь использовать DMA с ним, он перестает работать. Когда я использую HAL_I2C_Master_Tran…
07 дек '17 в 23:08