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

 
 
> Передача данных, fifo, кольцевой буфер и т.д.
Atlantis-
сообщение Dec 12 2016, 15:43
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102



Добрый день!
Мне нужен некий буфер для обмена данными между прерываниями (в одном пишу в буфер, в другом читаю, передаю дальше) с условием, что при чтении данные должны лежать в памяти линейно.
Суть в том, что сейчас я пишу в кольцевой буфер данные в прерывании I2S, потом в прерывании USB SOF смотрю есть ли данные, если есть - отправляю. Проблема в том, что библиотечная функция передачи данных по USB требует в качестве параметров адрес начала массива данных и количество данных. А буфер то у меня кольцевой! Подскажите, какие есть еще способы передачи данных? Я всегда кольцевым буфером пользовался, а тут надо чтобы данные лежали линейно в памяти.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Atlantis-
сообщение Dec 13 2016, 13:41
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102



Столкнулся с такой проблемой: как организовать буфер, чтобы можно было писать в него из нескольких источников?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 14 2016, 08:14
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Atlantis- @ Dec 13 2016, 15:41) *
Столкнулся с такой проблемой: как организовать буфер, чтобы можно было писать в него из нескольких источников?


Есть такая штука у Kinetis называется linked DMA . Не путать со scatter/gather DMA.
С помощью linked DMA можно легко с одного сигнала-триггера собрать в одно место данные от нескольких источников.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 14 2016, 08:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Dec 14 2016, 11:14) *
С помощью linked DMA можно легко с одного сигнала-триггера собрать в одно место данные от нескольких источников.

Это есть почти во всех МК.... кроме STM32. А большинство народу тут сидят именно на ём. laughing.gif
Правда, например в LPC17, такой режим не поддерживает возможности синхронизации от разных источников.
А в Kinetis это возможно?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 14 2016, 08:47
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Dec 14 2016, 10:36) *
Это есть почти во всех МК.... кроме STM32. А большинство народу тут сидят именно на ём. laughing.gif
Правда, например в LPC17, такой режим не поддерживает возможности синхронизации от разных источников.
А в Kinetis это возможно?


Вы наверно перепутали с Linked List DMA или Linked DMA как в Gecko.
Нет, в Kinetis это нечто иное. Смотрите мануал.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Atlantis-   Передача данных   Dec 12 2016, 15:43
- - _Pasha   если взять двумерный массив? пишете в одну страниц...   Dec 12 2016, 16:56
- - G.Simenon   Цитата(Atlantis- @ Dec 12 2016, 16:4...   Dec 12 2016, 18:01
|- - Atlantis-   Цитата(G.Simenon @ Dec 12 2016, 21:01) Мо...   Dec 13 2016, 06:48
- - conan   Цитата(Atlantis- @ Dec 12 2016, 18:4...   Dec 13 2016, 00:59
- - uriy   Два линейных буфера. Один для манипуляций с ним, в...   Dec 13 2016, 04:56
- - Valentine Loginov   Вам предложили работать с несколькими линейными ма...   Dec 13 2016, 07:19
|- - Atlantis-   Цитата(Valentine Loginov @ Dec 13 2016, 10...   Dec 13 2016, 08:32
|- - jcxz   Цитата(AlexandrY @ Dec 14 2016, 11:47) Вы...   Dec 17 2016, 10:51
|- - Atlantis-   Цитата(jcxz @ Dec 17 2016, 13:51) Соверше...   Dec 26 2016, 07:18
|- - AlexandrY   Цитата(Atlantis- @ Dec 26 2016, 09:1...   Dec 26 2016, 09:39
|- - Atlantis-   Цитата(AlexandrY @ Dec 26 2016, 12:39) См...   Dec 26 2016, 11:16
- - uriy   Мютексы. Либо все-таки писать из одного потока, а ...   Dec 14 2016, 04:50
|- - toweroff   Цитата(uriy @ Dec 14 2016, 07:50) Мютексы...   Dec 14 2016, 07:31
|- - Atlantis-   Цитата(uriy @ Dec 14 2016, 07:50) Мютексы...   Dec 14 2016, 12:40
|- - toweroff   Цитата(Atlantis- @ Dec 14 2016, 15:4...   Dec 14 2016, 18:19
- - zltigo   Цитата(Atlantis- @ Dec 12 2016, 17:4...   Dec 14 2016, 22:44
|- - Atlantis-   Цитата(zltigo @ Dec 15 2016, 01:44) Элеме...   Dec 15 2016, 07:35
|- - Valentine Loginov   Цитата(Atlantis- @ Dec 15 2016, 10:3...   Dec 15 2016, 08:28
||- - Atlantis-   Цитата(Valentine Loginov @ Dec 15 2016, 11...   Dec 15 2016, 11:52
||- - AlexandrY   Цитата(Atlantis- @ Dec 15 2016, 13:5...   Dec 15 2016, 13:24
|||- - Atlantis-   Цитата(AlexandrY @ Dec 15 2016, 16:24) Вы...   Dec 15 2016, 14:03
|||- - zltigo   Цитата(Atlantis- @ Dec 15 2016, 16:0...   Dec 16 2016, 08:45
|||- - AlexandrY   Цитата(Atlantis- @ Dec 15 2016, 16:0...   Dec 16 2016, 09:58
||- - Valentine Loginov   Цитата(Atlantis- @ Dec 15 2016, 14:5...   Dec 16 2016, 08:23
||- - Atlantis-   Цитата(Valentine Loginov @ Dec 16 2016, 11...   Dec 16 2016, 14:31
|- - zltigo   Цитата(Atlantis- @ Dec 15 2016, 09:3...   Dec 15 2016, 13:08
|- - Atlantis-   Цитата(zltigo @ Dec 15 2016, 16:08) Не по...   Dec 15 2016, 13:26
|- - zltigo   Цитата(Atlantis- @ Dec 15 2016, 15:2...   Dec 15 2016, 13:30
- - Сергей Борщ   Простите, а что мешает при переходе через конец бу...   Dec 15 2016, 06:46
- - toweroff   можно вообще сделать кольцо из структур uint8_t* p...   Dec 16 2016, 09:45


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

 


RSS Текстовая версия Сейчас: 24th August 2025 - 00:13
Рейтинг@Mail.ru


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