Подобный волшебнику инструмент может быть милым в первый раз, когда вы его используете, но потом он мешает. Лучшим методом является приличная структура дескрипторов в памяти и несколько полезных макросов и другой логики предварительной обработки, так что вы можете предоставлять информацию на более высоком уровне, и правильные байты и биты автоматически заполняются.
Мой USB-стек для PIC 18 работает так. Вы можете установить это и кучу других вещей на моей странице загрузки программного обеспечения . Статическая настройка USB определяется в двух файлах. Их шаблоны называются QQQ_USB.INS.ASPIC и QQQ_USB0.INS.ASPIC в каталоге SOURCE> PIC. Сначала вы определяете VID / PID, какие конечные точки вы используете и какие типы передачи для каждой конечной точки в файле usb.ins.aspic. Затем вы изменяете дескрипторы в usb0.ins.aspic с небольшим количеством, которое вам нужно настроить. Поскольку он уже знает такие вещи, как типы передачи и размеры буфера, вы оставляете эти символы в покое и просто изменяете то, что уникально для вашей реализации. В большинстве случаев это только корректировка названия производителя и названия продукта. Это вы пишете как обычные строки, а макрос заботится о правильном форматировании.