Jun. 1st, 2021

eddy_em: (Default)
Один товарищ решил проверить, насколько быстро может работать USB на STM32F103 (ссылка на не очень хороший ресурс). И получились у него совсем невзрачные результаты. На что я в своем духе объяснил, что проблема не в камне, а в используемом HAL'е — библиотечке, написанной ленивыми "индусами" для ленивых же "индусов" (интересно, что толпа ардуинщиков активно этой гадостью пользуется, и ни у кого из них не возникало вопроса о вменяемости этого говнокода). Но товарищ (хоть и вендузятник) все же не слился, а решил "пробить" мои велосипеды. И нашел мою реализацию CDC. ЛОРовец "сокрощенец" подкинул ТСу свою реализацию. В итоге у того родилась очередная статья с проверкой наших двух реализаций USB-CDC.
И что бы вы таки думали? Ему удалось гонять данные с предельной для USB на F103 скоростью — около 12Мбит/с!
Честно говоря, я такого не ожидал (у меня никогда не было цели выжать из USB-CDC все возможное). Однако, учитывая то, что тактовая у F103 всего-то 72МГц, в реальных условиях такой скорости можно достигнуть, лишь если отправлять малые порции данных из памяти в блокирующем режиме (для неблокирующего придется проделать значительную работу, чтобы USB могло пинаться DMA).
Радует, что человек понял, что "ограничение скорости USB на STM32" определяется не самим камнем, а кривостью кода! Правда, сдается мне, что он все равно продолжит использовать калокуб вместо того, чтобы писать код по-человечески. Да еще и вендузятник…

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 09:17 pm
Powered by Dreamwidth Studios