реклама на сайте
подробности

 
 
> SPI и ARM9 под Линуксом
DenisAlecs
сообщение Sep 8 2009, 05:48
Сообщение #1





Группа: Участник
Сообщений: 4
Регистрация: 25-05-07
Пользователь №: 27 953



Есть устройство в составе которого SAM7 - слэйв (AT91SAM7S256) и ARM9 - мастер под Линуксом (AT91RM9200).
Оба эти процессора взаимодействуют по SPI.
Проблема в том, что при обращени по SPI чаще чем раз в 1,5-2 секунды происходит перемешивание входных и выходных данных...такое ощущение что операционка не успевает отдать буфер приема и начинает туда засовывать данные для передачи...
Вот собственно вся проблема, как решить и в чем дело то?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DenisAlecs
сообщение Sep 8 2009, 07:38
Сообщение #2





Группа: Участник
Сообщений: 4
Регистрация: 25-05-07
Пользователь №: 27 953



...да...точно...драйвера посторены именно с использованием DMA, а выделение памяти происходит стандартной функцией ядра kmalloc...
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 8 2009, 16:29
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(DenisAlecs @ Sep 8 2009, 11:38) *
...да...точно...драйвера посторены именно с использованием DMA, а выделение памяти происходит стандартной функцией ядра kmalloc...


Если разработка на уровне ядра - можно выделить некэшируемый буфер (dma_alloc_coherent) и сообщить драйверу spi что буфер уже смапен (is_dma_mapped).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 22:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016