11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ХАКЕР 04 /171/ 2013 Через эмуляцию к звездам 57USB_PUBLIC uchar usbFunctionWrite(uchar *data,uchar len) {uchar i;// Сохранить полученную порцию данных в буферfor(i = 0; dataReceived < dataLength && i next) {// Перебрать все устройства на шинеfor(dev=bus->devices; dev; dev=dev->next) {// Если идентификаторы вендора и продукта// не совпадают...if(dev->descriptor.idVendor != vendor ||dev->descriptor.idProduct != product)continue; // ...пропустить эту итерацию// Попробовать получить дескриптор устройстваif(!(handle = usb_open(dev))) {Тестирование взаимодействия с ATtiny2313 по USB(заливаем в чип строку, а затем cчитываем ее)fprintf(stderr, "%s\n", usb_strerror());continue;}return handle; // Вернуть дескриптор}}// Устройство не найденоreturn NULL;Как видно, параметрами usbOpenDevice выступают числовыеидентификаторы производителя и устройства. В случаеесли устройство присутствует на шине, возвращается его дескриптор.Если устройств на V-USB будет несколько — придетсядописать проверку символьных имен вендора и продукта.И функция main консольной утилиты usbtest:int main(int argc, char **argv) {// Дескриптор устройстваusb_dev_handle *handle = NULL;int nBytes = 0;char buffer[256];// Ищем устройствоhandle = usbOpenDevice(0x16C0, 0x05DC);if(handle == NULL) {fprintf(stderr, "Could not find USB device!\n");exit(1);}// Аргумент out — получить данные от чипаif(strcmp(argv[1], "out") == 0) {nBytes = usb_control_msg(handle,USB_TYPE_VENDOR | USB_RECIP_DEVICE |Перехват USB-пакетов в WiresharkDVDНа прилагаемомк журналу дискележат исходные кодыописанного в статьепримера и последняяверсия библиотекиV-USB.PROTEUSОТДЫХАЕТВсенародно любимыйсимулятор электрическихсхем Proteus ISISбесполезен при разработкеустройств с программнойреализациейUSB. Его эмулятор USBподдерживает толькочипы с аппаратной поддержкойуниверсальнойпоследовательной шины(например, AT90USB646или AT90USB1286).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!