|
Передача данных, fifo, кольцевой буфер и т.д. |
|
|
|
Dec 12 2016, 15:43
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Добрый день! Мне нужен некий буфер для обмена данными между прерываниями (в одном пишу в буфер, в другом читаю, передаю дальше) с условием, что при чтении данные должны лежать в памяти линейно. Суть в том, что сейчас я пишу в кольцевой буфер данные в прерывании I2S, потом в прерывании USB SOF смотрю есть ли данные, если есть - отправляю. Проблема в том, что библиотечная функция передачи данных по USB требует в качестве параметров адрес начала массива данных и количество данных. А буфер то у меня кольцевой! Подскажите, какие есть еще способы передачи данных? Я всегда кольцевым буфером пользовался, а тут надо чтобы данные лежали линейно в памяти.
|
|
|
|
|
 |
Ответов
|
Dec 14 2016, 12:40
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(uriy @ Dec 14 2016, 07:50)  Мютексы. Не совсем понял, как их использовать в моем случае?
Сообщение отредактировал Atlantis- - Dec 14 2016, 13:35
|
|
|
|
|
Dec 14 2016, 18:19
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(Atlantis- @ Dec 14 2016, 15:40)  Не совсем понял, как их использовать в моем случае? то есть как? функция, которая пишет в буфер, все используют только ее в начале ждем мютекс, в конце отпускаем если функция вызывается и мютекс занят (кто-то уже вызвал функцию), ОС будет держать вызывающую функцию в ожидании, пока мютекс не освободится (ранее вызвавший функцию записи в буфер закончил работу) типа так Код int write_buf(uint8_t *buf, int len) { os_mut_wait(bufwr_mutex, 0xFFFF); // тут пишем в буфер
os_mut_release(bufwr_mutex); return len; }
|
|
|
|
Сообщений в этой теме
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 Atlantis- Столкнулся с такой проблемой: как организовать буф... Dec 13 2016, 13:41 AlexandrY Цитата(Atlantis- @ Dec 13 2016, 15:4... Dec 14 2016, 08:14  jcxz Цитата(AlexandrY @ Dec 14 2016, 11:14) С ... Dec 14 2016, 08:36   AlexandrY Цитата(jcxz @ Dec 14 2016, 10:36) Это ест... Dec 14 2016, 08:47    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 toweroff Цитата(uriy @ Dec 14 2016, 07:50) Мютексы... Dec 14 2016, 07:31 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|