Настроить блок URB для управляющей передачи
 | Данная функция не реализована в текущей версии библиотеки. Для настройки управляющей передачи используется функция usbd_setup_vendor(). |
#include <sys/usbdi.h>
usbd_setup_control( struct usbd_urb *urb,
uint32_t flags,
uint16_t request,
uint16_t rtype,
uint16_t value,
uint16_t index,
void *addr,
uint32_t len );
- urb
- Дескриптор блока URB, возвращаемый функцией usbd_alloc_urb().
- flags
- Принимает следующие значения:
- URB_DIR_IN
- определяет входящую передачу (от устройства к ПК).
- URB_DIR_OUT
- определяет исходящую передачу (от ПК к устройству).
- URB_DIR_NONE
- не устанавливать направление передачи.
Опционально по "ИЛИ" можно добавить: - URB_SHORT_XFER_OK
- позволяет выполнять короткие передачи.
- request
- Специфичный для устройства запрос.
- rtype
- Тип запроса, принимающий следующее значение:
- USB_RECIPIENT_DEVICE
- USB_RECIPIENT_INTERFACE
- USB_RECIPIENT_ENDPOINT
- USB_RECIPIENT_OTHER
Объединенный по "ИЛИ" со значением: - USB_TYPE_STANDARD
- USB_TYPE_CLASS
- USB_TYPE_VENDOR
- value
- Значение, которое зависит от запроса и используется для передачи параметра устройству.
- index
- Индекс, который зависит от запроса и используется для передачи параметра устройству.
- addr
- Адрес начала передачи, для которого необходимо использовать адрес буфера, выделенного вызовом usbd_alloc().
- len
- Длина передачи данных в байтах.
libusbdi
Функция usbd_setup_control() настраивает блок URB для управляющей (control) передачи.
- EOK
- Успешное завершение.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
Для гарантии того, что будет использоваться правильный физический адрес, необходимо использовать буфер, выделенный usbd_alloc() параметру addr.
usbd_descriptor(), usbd_feature(), usbd_io(), usbd_setup_bulk(), usbd_setup_interrupt(), usbd_setup_isochronous(), usbd_setup_vendor(), usbd_status()
Предыдущий раздел: Библиотека libusbdi