Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Библиотека дескрипторов USB на С++

Пт июн 17, 2022 20:28:10

Накидал библиотеку шаблонных классов на основе списка типов для определения дескрипторов USB. Код и примеры тут.

Что мы получаем по сравнению обычным и/или макросным подходом:
1. Всё поля типизированы. Нарушить формат дескрипторов проблематично.
2. Автоматическое вычисления размеров, количества интерфейсов и т.д.
3. Автоматически заполняемые и вычисляемые поля скрыты, что улучшает восприятие данных.
4. Проверки на корректность данных, дублирование интерфейсов и конечных точек, диапазон значений параметров и т.д.
5. Из дескрипторов легко "вытащить" на этапе компиляции список интерфейсов или конечных точек. Это можно использовать при инициализации USB-модулей контроллера.

Работающие примеры можно посмотреть в Compiler Explorer для С++17 или C++20

Тут приведу пример дескриптора конфигурации составного устройства из двух CDC.

Вот так из дескриптора можно вытащить, например, адреса конечных точек

Можно много что ещё "поставить на проверку" и автоматизировать. А для начала так. Это уже мощнее любого макроса.

Re: Библиотека дескрипторов USB на С++

Пт июн 17, 2022 21:07:15

Круто.
Иногда, глядя на такое, я уж грешным делом подумываю: а не начать ли изучать С++? Но потом, вспомнив, насколько это сложный ЯП, передумываю!

Re: Библиотека дескрипторов USB на С++

Пт июн 17, 2022 22:06:22

ну не знаю... они все сложные! :))
VladislavS, спасибо, ща посмотрим, усб - это нужно.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 06:47:32

И? Писанина ради писанины, графомания от нефик делать. Обычно, тот кто сам пишет дескриптор, тот понимает, какие поля чего должны содержать, а ошибки допускает только невнимательный.
насколько это сложный ЯП,

Да ничего там слишком сложного нет. Просто применять его надо более достойно, чем графомания с дескрипторами. Есть '10' типа людей - которые не используют возможности ++ где надо, и те, кто сует графоманию там, где не нужно.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 10:42:55

А можно список всех "непростительных заклинаний"? :)))

А то, GPIO - нельзя. Любой джедай должен в 3 ночи проснуться и на память все биты регистров 100500 разных контроллеров выдать.

USB дескрипторы - тоже нельзя. Будь добр сотни байт врукопашную пахать. И только попробуй быть невнимательным и ошибись - сразу из страны розовых пони выгонят.

Давай сразу весь список, где ещё недостойно, а то мы ведь не знаем.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 12:28:30

Да потому что это должно быть оформлено в виде приложения-утилиты с GUI, а на выходе должен быть уже короткий готовый список дескрипторов, без лишней воды. Вот тогда будет толк, потому что это уже по-взрослому. Твою бы энергию да в правильное русло. А то графомания какаято без дела.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 12:56:55

Где-то я это уже слышал. У каждого клона по графическому конфигуратору на каждый чих, только он их никому не покажет.

Только вот как дескриптор в виде массива мёртвых байт использовать в программе? Тут же есть живые интерфейсы и конечные точки - бери да используй их по назначению.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 15:26:18

Up2805 писал(а):Да потому что это должно быть оформлено в виде приложения-утилиты с GUI

Это ещё зачем? Достаточно указать требования к версии компилятора(ов), составу и версиям библиотек, необходимых для сборки, плюс примеры использования. И не забыть о списке МК, на которых это всё должно работать и список МК, на которых проверено. ИМХО, этого достаточно для осознанного использования. А всякие генераторы и ГУИ- нафиг. Цени и уважай время разработчиков, и не требуй лишнего. Пусть они его потратят на что-нибудь ещё, что может оказаться полезным окружающим.

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 15:58:01

Да ничего там слишком сложного нет.

Такое может говорить лишь человек, вообще не имеющий понятия, что такое С++!!!
Видел я "знатоков С++", которые писали на С, но файлы обзывали cpp и компилировали их g++… Чтобы нормально на С++ писать, нужно не только минимум лет 5 на его изучение потратить, но и регулярно читать о новинках и применять их. Мне такое нафиг не нужно. А еще меня бесит, что пять страничек кода на С++ может собираться аж 10 секунд — у меня столько времени даже под 100тыс строк на С не собирается!

Re: Библиотека дескрипторов USB на С++

Сб июн 18, 2022 16:11:38

Видел я "знатоков С++", которые писали на С, но файлы обзывали cpp
О, это про меня :?
Ответить