Показать сообщение отдельно
Старый 05.06.2019, 21:17   #54
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,182
Вес репутации: 4133/90
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Подскажите по указателям

maagalex
через макрос - посмотрите что делает макрос или disasm.
с помощью DMA можно легко считывать принятые данные в буфер, а сделав chained DMA 2 каналов, вызывать прерывание по завершению приема буфера.

Однако в общем случае есть момент - DMA, естественно, будет заниматься перемещением по завершению приема - в случае ошибок никакой их верной отработки она проводить не будет.

скорость в 250kBaud подразумевает, что за 1 ms Вы получите 25 байт полезной нагрузки. Если у Вас ядро работает допустим на 50MHz, то получается по 2000 инструкций на байт.

В общем странно это всё. по идее у Вас всё ядро должно успевать. Поэтому можно посмотреть, что происходит с помощью логического анализатора. Ну и с помощью systick проверить времена выполнения операций.

DimaS
это понятно - что польза от DMA неимоверная. с другой же стороны, как мне кажется, DMA и CPU в данной ситуации будут ломиться по одним и тем же шинам к примерно тем же данным, что, естественно, будет требовать дополнительной осмотрительности. Шину придется делить, если есть cache то придется думать и о нем.
besogon вне форума   Ответить с цитированием