Size: a a a

2021 March 25

E

Evgen in Embedded Group
Alexander
Ок, удачно запилить.
глупый вопрос
Если мне надо узнать количество байт принятых просто смотреть регистр счетчика байт DMA?
источник

V

Vitalii in Embedded Group
Alexander
Да, на старших процах у UART вроде есть аппаратный расчет таймаута.
Usart receiver timeout RTOR, отлична штука, скорее ее нет на более древних только
источник

AJ

Arm Jedi in Embedded Group
Посылка всегда заканчивалась 10 13 и обработчик коллбек вызывал
источник

AJ

Arm Jedi in Embedded Group
Evgen
глупый вопрос
Если мне надо узнать количество байт принятых просто смотреть регистр счетчика байт DMA?
Есть ещё прерывание по половине приема
источник

E

Evgen in Embedded Group
Arm Jedi
Есть ещё прерывание по половине приема
да но есть несколько вариантов, что до половины приема не дошли, что половину приема перешли, а данные пошли намного раньше позже
источник

V

Vitalii in Embedded Group
Evgen
глупый вопрос
Если мне надо узнать количество байт принятых просто смотреть регистр счетчика байт DMA?
Можно
источник

AJ

Arm Jedi in Embedded Group
Evgen
да но есть несколько вариантов, что до половины приема не дошли, что половину приема перешли, а данные пошли намного раньше позже
Только счётчик тогда
источник

E

Evgen in Embedded Group
Arm Jedi
Только счётчик тогда
как я себе представляю запомнил начальный, запомнил конечный
высчитал количество байт принятых по дма
Вот
источник

AJ

Arm Jedi in Embedded Group
Evgen
как я себе представляю запомнил начальный, запомнил конечный
высчитал количество байт принятых по дма
Вот
Можно так что бы постоянно не опрашивать счётчик по таймеру его посматривать
источник

A

Alexander in Embedded Group
Evgen
глупый вопрос
Если мне надо узнать количество байт принятых просто смотреть регистр счетчика байт DMA?
После каждого таймаута либо сбрасывай счетчик DMA либо запоминай начальное значение.
источник

E

Evgen in Embedded Group
Alexander
После каждого таймаута либо сбрасывай счетчик DMA либо запоминай начальное значение.
да я так и думал
Спасибо
источник

AZ

Aleksander Zholtkovs... in Embedded Group
а не проще запилить сборку пакета целиком в прерываниях (с приёмом длинных частей известной длины через дма) ?
источник

SK

Stas Koynov in Embedded Group
Aleksander Zholtkovskii
а не проще запилить сборку пакета целиком в прерываниях (с приёмом длинных частей известной длины через дма) ?
он я так понял не знает сколько придет! из-за этого ему нужен бубен!
источник

E

Evgen in Embedded Group
Aleksander Zholtkovskii
а не проще запилить сборку пакета целиком в прерываниях (с приёмом длинных частей известной длины через дма) ?
грубо говоря у вас в модбасе может прийти 20 байт, а может  55
а я хочу к dma прикрутить, а не прерываниями дергать
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Evgen
грубо говоря у вас в модбасе может прийти 20 байт, а может  55
а я хочу к dma прикрутить, а не прерываниями дергать
а там заголовков, с указанием длины, нет?
источник

E

Evgen in Embedded Group
Aleksander Zholtkovskii
а там заголовков, с указанием длины, нет?
в модбасе есть
только вам надо принять тогда минимум 3 байта, вырвать длину, прибавить контрольную сумму 2 байта
и пахнет костылями
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Evgen
в модбасе есть
только вам надо принять тогда минимум 3 байта, вырвать длину, прибавить контрольную сумму 2 байта
и пахнет костылями
по мне большой кольцевой буфер с сопутствующей обслугой, тоже неслабые костыли
источник

AZ

Aleksander Zholtkovs... in Embedded Group
там ещё поллинг и прочие непотребства
источник

E

Evgen in Embedded Group
Aleksander Zholtkovskii
по мне большой кольцевой буфер с сопутствующей обслугой, тоже неслабые костыли
нет полинга все на дма
завязано и прерываниях
плюс в старшей серии костыль таймера не надо
точнее на новых сериях
источник

E

Evgen in Embedded Group
Aleksander Zholtkovskii
там ещё поллинг и прочие непотребства
За вас все будет делать дма, вам только обработать пакет надо и длину не забывать считать
идеально же
источник