LINUX.ORG.RU

Заюзать изохронный USB дата стрим, используя libopencm3

 , ,


0

2

Здарова, народ.

Решил смастерить на STM32F103x некую простецкую USB аудио карту. Для этого заюзал библиотеку libopencm3.

Но, кажется, что ее создатели решили не реализовывать полную поддержку USB стека, и ограничились только эндпойнтами bulk и interrupt типов.

Оказалось что isochronous ендпойнты не работают вообще там.

Блин, знал бы заранее - то не брал бы эту игрушечную поделку libopencm3, взял бы родной HAL и не парился.

Это называется: начитался много лестных отзывов об libopencm3, но оказалось, что все не так радужно.

Есть на форуме люди, которые ее юзали? Мож у кого есть «патченная версия» с работой этих USB?

★★

Последнее исправление: kuzulis (всего исправлений: 1)

Ответ на: комментарий от Eddy_Em

И что, это работает???

Да, конечно. Кому не нравится, могут заменить на wait_us() :)

не понял, зачем там было делать ассемблерные вставки, да и дескрипторы на асме расписывать…

Дескрипторы довольно удобно на асме описывать — можно смешивать поля разной длины. Некоторые простые функции написаны на ассемблере для оптимизации. Например, GCC нельзя объяснить, что старшая половина слова PMA-области не значащая и он вставляет ненужные манипуляции для извлечения полуслов, в то время как фунции копирования из/в эту область должны быть быстрыми. Может быть сложение семплов и можно было бы написать по асмовской логике, но я оставил простой вариант. Что касается цикла задержки, то на Си его в принципе нельзя писать.

anonymous
()
Ответ на: комментарий от COKPOWEHEU

Да мне так проще. В проекте из одного сишного файла, думаю, не имеет большого сымсла описывать цели сборки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.