Site icon EfmSoft

Что означает код возврата ядра macOS 0xE0004003 (kIOUSBDataToggleErr)?

 
Предыдущий Следующий
kIOUSBBitstufErr kIOUSBPIDCheckErr

kIOUSBDataToggleErr

Синхронизация DATA0/DATA1 потеряна

kIOUSBDataToggleErr относится к состоянию data toggle, используемому для синхронизации неизохронных USB-передач. Хост и конечная точка поддерживают согласованное состояние переключателя, чтобы распознавать принятый пакет и не считать повторную передачу новыми данными. Документация Apple по USB указывает, что отправитель переключается после положительного подтверждения, а получатель — после принятия безошибочного пакета с ожидаемым идентификатором.

Поэтому код принципиально отличается от kIOUSBCRCErr: CRC указывает на повреждённое поле, а ошибка data toggle — на несовпадение состояния двух сторон конечной точки. Он также отличается от общего тайм-аута, который означает отсутствие своевременного завершения, но не определяет эту рассинхронизацию.

Восстановление должно соответствовать состоянию конечной точки

Остановка конечной точки и data toggle связаны. Apple документирует, что снятие halt сбрасывает переключатель на стороне хоста, тогда как восстановление, которому также нужно снять halt и сбросить состояние конечной точки, должно выполняться явно или через API для обеих сторон. Поэтому одного сброса на стороне хоста может быть недостаточно, если требуется изменить и состояние устройства.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version