-
- так здесь его нет! тут 8 каналов. и как я понимаю, на один uart требуется два канала DMA. минимум. а есть ли возможность организовать кольцевой буфер на DMA? и вот как мне сделать кучку кольцевых буферов на все uart`ы ?? на том что есть сейчас - Mahagam(99 знак., 02.12.2015 18:50)
- вот что прям такая задача, что каждый уарт гонит информацию потоками в оба направления? - Крок(02.12.2015 23:00)
- ну не потоки, и не все в оба направления. однако я могу гарантировать, что случится ситуёвина когда в каждом канале будет одновременно переть небольшой пакетик данных. Mahagam(68 знак., 02.12.2015 23:11)
- на моей любимой скорости 57000 1 байт - это 200 мкс = 40 000 команд. Роман в стихах можно написать за это время. Но наверное на 12 уарт уже надо ПЛИСину лепить... не знаю. - Крок(02.12.2015 23:25)
- у меня скорость в два раза выше, но не суть. не стоит забывать про то, что каждый байтик вызывает прерывание, на каждое прерывание надо сохранить контекст, понять откуда байтик, положить куда надо, взвести флаг "свежий байт", успокоить контроллер Mahagam(466 знак., 02.12.2015 23:45)
- Все учтено могучим ураганом. У уартов есть fifo на 16 байт, DTC спокойно выгребает данные оттуда по мере поступления и складывает в память. Далее уже разруливаете. Суть в том, что у DTC на каждый вектор прерывания - свой дескриптор. - Lightelf(03.12.2015 01:38)
- Ну, у меня такие программы, что по каждому байтику можно не дёргаться ( у пиков буфер на 4 штуки), значит можно проверять изредка. Что позволяет сильно экономить на сохранении контекста. Ну а готовый продукт, да, гонит ПДП. - Крок(03.12.2015 00:04)
- у меня скорость в два раза выше, но не суть. не стоит забывать про то, что каждый байтик вызывает прерывание, на каждое прерывание надо сохранить контекст, понять откуда байтик, положить куда надо, взвести флаг "свежий байт", успокоить контроллер Mahagam(466 знак., 02.12.2015 23:45)
- на моей любимой скорости 57000 1 байт - это 200 мкс = 40 000 команд. Роман в стихах можно написать за это время. Но наверное на 12 уарт уже надо ПЛИСину лепить... не знаю. - Крок(02.12.2015 23:25)
- ну не потоки, и не все в оба направления. однако я могу гарантировать, что случится ситуёвина когда в каждом канале будет одновременно переть небольшой пакетик данных. Mahagam(68 знак., 02.12.2015 23:11)
- Я не настолько погрузился в его потроха, чтобы выдавать идеи. Но там еще есть data transfer controller. Насколько я вижу он один легко все 10 уартов обслужит. Но циклический буфер максимум 256 байт. Но можно юзать chain mode. Ой, блин. Можно же LightElf(128 знак., 02.12.2015 19:09 - 19:49)
- вот что прям такая задача, что каждый уарт гонит информацию потоками в оба направления? - Крок(02.12.2015 23:00)
- так здесь его нет! тут 8 каналов. и как я понимаю, на один uart требуется два канала DMA. минимум. а есть ли возможность организовать кольцевой буфер на DMA? и вот как мне сделать кучку кольцевых буферов на все uart`ы ?? на том что есть сейчас - Mahagam(99 знак., 02.12.2015 18:50)