-
- узнать указатели элементарно: 0men(300 знак., 04.10.2017 17:20)
- Давайте определимся в терминах, а то хвост - голова кажись наоборот! запись на голову, читаем с хвоста. При приеме из уарта пишем на голову, а getchar() читает с хвоста, при передаче putchar() пишет на голову, уарт читает с хвоста - IBAH(04.10.2017 17:33)
- да, наоборот у меня ) 0men(157 знак., 04.10.2017 17:37)
- а как с передачей? постаринке? через прерывания? - IBAH(04.10.2017 17:39)
- постаринке, не было необходимости - 0men(04.10.2017 17:42)
- А возможно ли это вообще? - IBAH(04.10.2017 17:49)
- Да, только несколько геморройнее. Кольцо надо делать руками, отправлять - через DMA - LightElf(04.10.2017 17:54)
- смутно представляю... какие события запустят и остановят отправку по DMA? - IBAH(04.10.2017 18:00)
- Ууу, блин. Делаю так (схематично): LightElf(312 знак., 04.10.2017 18:07)
- я так понимаю "количество данных" можно менять динамически во время работы ДМА? - IBAH(04.10.2017 18:10)
- отправка вручную (или по событию), в ней указывается кол-во передаваемых байт - 0men(04.10.2017 18:02)
- дык это не фифо, а какая-то хрень через DMA - IBAH(04.10.2017 18:08)
- Шо маемо. - LightElf(04.10.2017 18:22)
- дык это не фифо, а какая-то хрень через DMA - IBAH(04.10.2017 18:08)
- Ууу, блин. Делаю так (схематично): LightElf(312 знак., 04.10.2017 18:07)
- эт точно, кольцо заполнять нужно руками, дма передаст без проблем. Или кольцо заполняется от другого источника дма )) - 0men(04.10.2017 17:57)
- Остался только один вопрос: но зачем, Холмс? - SciFi(04.10.2017 18:02, картинка)
- *Пожимает плечами* У меня данные для отправки приходят большими пакетами, а скорость UART - 115200 и выше. Вся дурь кортекса уйдет в свисток прерываний. - LightElf(04.10.2017 18:10)
- У меня критичные действия выполняются по регулярному таймеру и UARTы обслуживаются в пулинговом режиме. Termit(275 знак., 11.10.2017 22:28)
- Дык, с кольцом дополнительных действий ровно столько же. Только буфер один большой. - LightElf(12.10.2017 10:28)
- Во-первых, я намекал на то, что именно "кольцо" здесь скорее всего не нужно, обычно можно проще. Во-вторых, без реальных замеров сказки про дурь и свисток - это всего лишь сказки. - SciFi(04.10.2017 18:14)
- Специально посмотрел - на передачу 12-14 команд (кортекс М0), это же целая вечность! - IBAH(04.10.2017 18:26)
- Покупают стомегагерцовые процы, а потом боятся их загружать. Это убогое 8-битное мЫшление, вот что я вам на это скажу. - SciFi(04.10.2017 18:29)
- Текущий проект показывает что если грузить 120 МГц проц не сильно задумываясь, по быстродействию он постепенно превращается в АТмегу, причем, не самую быструю. - AlexG(04.10.2017 18:44)
- У меня и так есть, чем его загрузить. Ваш кэп. - LightElf(04.10.2017 18:31)
- Покупают стомегагерцовые процы, а потом боятся их загружать. Это убогое 8-битное мЫшление, вот что я вам на это скажу. - SciFi(04.10.2017 18:29)
- По 11000 прерываний в секунду на 4 портах - это тяжко. - LightElf(04.10.2017 18:20)
- Если принять 100 тактов на прерывание, то это всего 4,4 млн тактов в секунду. Фигня. - SciFi(04.10.2017 18:22)
- 100 тактов вряд ли. Да и скорости могут быть 230400 и выше. И при неудачном стечении обстоятельств может стать грустно. Ну и самое главное - почему бы и нет? - LightElf(04.10.2017 18:29)
- Мне стало грустно, правда на приеме, теперь приходится разбираться с ДМА, В ST какие-то странные, всякой хрени понаделали, не могли фифо нормальный сделать - IBAH(04.10.2017 18:38)
- Да не такой сложный этот DMA-контроллер. Я разок с ним разобравшись каждый раз удивляюсь, чего его некоторые не используют. Это же так удобно: даешь указатель на буффер с данными (да хоть на строковую константу), запускаешь DMA, просыпаешься, lloyd(202 знак., 04.10.2017 19:18, ссылка)
- Делал процедуры для SPI шлешки - DMA с поллингом оказался значительно проще, чем просто поллинг. - SciFi(04.10.2017 20:26)
- Я надеюсь не выделял огромный (больше одного слова) буффер для передачи данных по MOSI во время чтения? - lloyd(04.10.2017 20:58)
- Делал процедуры для SPI шлешки - DMA с поллингом оказался значительно проще, чем просто поллинг. - SciFi(04.10.2017 20:26)
- Имхуется мне, что они эту периферию лицензировали у кого-то. И теперь лепят везде подряд. - LightElf(04.10.2017 18:47)
- Да не такой сложный этот DMA-контроллер. Я разок с ним разобравшись каждый раз удивляюсь, чего его некоторые не используют. Это же так удобно: даешь указатель на буффер с данными (да хоть на строковую константу), запускаешь DMA, просыпаешься, lloyd(202 знак., 04.10.2017 19:18, ссылка)
- Ну, если заняться больше нечем, то действительно, почему бы и нет? - SciFi(04.10.2017 18:30)
- Один раз написал - много лет юзаешь. Благо у STM32 периферия конструктивно близкая. - LightElf(04.10.2017 18:32)
- Мне стало грустно, правда на приеме, теперь приходится разбираться с ДМА, В ST какие-то странные, всякой хрени понаделали, не могли фифо нормальный сделать - IBAH(04.10.2017 18:38)
- 100 тактов вряд ли. Да и скорости могут быть 230400 и выше. И при неудачном стечении обстоятельств может стать грустно. Ну и самое главное - почему бы и нет? - LightElf(04.10.2017 18:29)
- Если принять 100 тактов на прерывание, то это всего 4,4 млн тактов в секунду. Фигня. - SciFi(04.10.2017 18:22)
- Специально посмотрел - на передачу 12-14 команд (кортекс М0), это же целая вечность! - IBAH(04.10.2017 18:26)
- У меня критичные действия выполняются по регулярному таймеру и UARTы обслуживаются в пулинговом режиме. Termit(275 знак., 11.10.2017 22:28)
- я не спорю ) для себя я такой необходимости не увидел ) - 0men(04.10.2017 18:04)
- *Пожимает плечами* У меня данные для отправки приходят большими пакетами, а скорость UART - 115200 и выше. Вся дурь кортекса уйдет в свисток прерываний. - LightElf(04.10.2017 18:10)
- Остался только один вопрос: но зачем, Холмс? - SciFi(04.10.2017 18:02, картинка)
- смутно представляю... какие события запустят и остановят отправку по DMA? - IBAH(04.10.2017 18:00)
- Да, только несколько геморройнее. Кольцо надо делать руками, отправлять - через DMA - LightElf(04.10.2017 17:54)
- А возможно ли это вообще? - IBAH(04.10.2017 17:49)
- постаринке, не было необходимости - 0men(04.10.2017 17:42)
- а как с передачей? постаринке? через прерывания? - IBAH(04.10.2017 17:39)
- да, наоборот у меня ) 0men(157 знак., 04.10.2017 17:37)
- Давайте определимся в терминах, а то хвост - голова кажись наоборот! запись на голову, читаем с хвоста. При приеме из уарта пишем на голову, а getchar() читает с хвоста, при передаче putchar() пишет на голову, уарт читает с хвоста - IBAH(04.10.2017 17:33)
- узнать указатели элементарно: 0men(300 знак., 04.10.2017 17:20)