{"id":316194,"date":"2021-01-11T15:01:31","date_gmt":"2021-01-11T15:01:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=316194"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=316194","title":{"rendered":"\u0423\u0447\u0438\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438 \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 FX3"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0412 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 USB 3.0 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 FX3. \u041f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u044e \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f PC. \u041d\u0443, \u0438 \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0448\u0438\u0440\u0438\u043d\u044b \u043a\u0430\u043d\u0430\u043b\u0430 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a? \u0418 \u043d\u0435 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430? \u041a\u0442\u043e \u0445\u043e\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c, \u043d\u0435 \u043f\u043e\u0432\u0435\u0440\u0438\u0442 \u0432 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0437\u043d\u0430\u0447\u0438\u0442, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445. \u0410 \u044f \u043d\u0430 \u044d\u0442\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043b\u0435\u0442 \u043f\u044f\u0442\u044c, \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0432\u044b\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0441\u0451 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xc\/2w\/2x\/xc2w2xlva_y5h836nxuciyr7p3e.png\"><br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0446\u0438\u043a\u043b\u0430:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ol>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/531494\/\">\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043e\u043f\u044b\u0442\u044b \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c USB 3.0 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 FX3 \u0444\u0438\u0440\u043c\u044b Cypress<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/post\/534646\/\">\u0414\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 USB 3.0, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SignalTap, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Quartus<\/a> <\/li>\n<\/ol>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <\/p>\n<h2>1 \u0422\u0435\u043e\u0440\u0438\u044f \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a USB<\/h2>\n<p>  <\/p>\n<h3>1.1 Windows <\/h3>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043d\u043e\u0432\u043e\u0435, \u0434\u043e\u0441\u0435\u043b\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u042d\u0412\u041c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Windows, \u043e\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 \u0436\u0451\u043b\u0442\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0430. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e Windows \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u0435\u043d \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u044e \u043f\u0440\u043e \u044d\u0442\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u043d\u043e \u043d\u0435 \u0441 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f, \u0430 \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u0440\u0430\u0441\u043a\u0440\u044b\u0432 \u0447\u0438\u0441\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b, \u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0432 \u0442\u0435\u043e\u0440\u0438\u044e. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0443\u0441\u043d\u0443\u043b\u0438. \u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0443\u0442\u044c \u0431\u044b\u043b\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u044f\u0434 \u0441\u043a\u0443\u0447\u043d\u044b\u0445 \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c.<\/p>\n<h4>1.1.1 \u0414\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435<\/h4>\n<p>  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e? \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u041d\u043e \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u044d\u0442\u0438 \u0442\u043e\u0447\u043a\u0438 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b. \u0414\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e, \u0435\u0449\u0451 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0442\u044b\u0441\u044f\u0447\u0435\u043b\u0435\u0442\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u0434\u0435\u043b\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 UART16550, \u043f\u043e\u0434 \u043d\u0435\u0451 \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f Windows, \u0438 \u0432\u0441\u0435 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f\u043c\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430. \u0418 \u0441 \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u043e\u0439 \u0442\u0440\u0443\u0434\u043d\u043e \u0441\u043f\u043e\u0440\u0438\u0442\u044c. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u043c\u0438\u043d\u0443\u0442\u043a\u0443, \u0447\u0442\u043e \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u043c USB-COM \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 USB-\u0448\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435, \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u0415\u0441\u0442\u044c \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u0438\u044f CDC: \u0434\u0432\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0438 \u0442\u0443\u0434\u0430-\u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434, \u043f\u043e\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 EP0. \u042d\u0442\u043e \u0432\u0441\u0451 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u0445, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a USB.<\/p>\n<p>  \u0412\u0441\u0451? \u041d\u0435\u0442, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043b\u043e! Prolific \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u0442\u043e\u0447\u043a\u0438 EP0, \u043d\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 CDC. \u0410 FTDI \u2013 \u0441\u0432\u043e\u0439. \u041e\u043d \u043d\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u043d\u0438 \u0441 CDC, \u043d\u0438 \u0441 Prolific. \u0422\u0430\u043a \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 USB-COM \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0435\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043d\u0435\u043b\u0435\u0433\u043a\u043e. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, Prolific \u0438 FTDI \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0447\u0438\u043f\u043e\u0432, \u0430 \u0434\u043b\u044f CDC \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0441\u0430\u043c\u0430 Microsoft \u0438 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 Windows. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u043c (\u043f\u043e\u043c\u043d\u044e, \u043c\u044b \u0446\u0435\u043b\u044b\u0439 NDA \u043b\u0435\u0442 15 \u043d\u0430\u0437\u0430\u0434 \u0441 FTDI \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442 \u043d\u0438\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c, \u043f\u0440\u0438\u0447\u0451\u043c \u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0438\u043c \u043f\u043e\u0441\u043b\u0430\u043b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0431\u044e\u0440\u043e\u043a\u0440\u0430\u0442\u044b, \u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0432\u0441\u0451 \u0441\u0430\u043c \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u043b \u0438\u0437\u0443\u0447\u0438\u0442\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0448\u0451\u043b \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441 \u043c\u043e\u0438\u043c). \u041d\u0430 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0432\u0441\u0435\u0445 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0434\u0430\u044e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c \u0434\u043e\u0431\u0440\u044b\u043c UART16550.<\/p>\n<p>  \u0422\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0438 USB-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439. \u041c\u0430\u043b\u043e \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043c \u0434\u0432\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0438. \u041f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0442\u0430\u043c \u043d\u0430\u0434\u043e \u0433\u043e\u043d\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u041a\u0430\u043a \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0437\u043d\u0430\u0435\u0442 \u0435\u0449\u0451 \u043c\u0435\u043d\u044c\u0448\u0435 \u043b\u044e\u0434\u0435\u0439. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <b>usbstor.sys<\/b>, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 Microsoft, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0441 \u0434\u0438\u0441\u043a\u0430\u043c\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0448\u0438\u043d\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u044b.<br \/>  \u0423\u0434\u043e\u0431\u043d\u043e? \u041e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e! \u041d\u043e \u0432\u043e\u0442 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u0432\u043e\u0451 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0435 \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0438 \u0441 \u043a\u0430\u043a\u0438\u043c \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445. \u0418 \u0447\u0442\u043e \u043d\u0430\u043c \u0442\u0435\u043f\u0435\u0440\u044c, \u0432\u0441\u0435\u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440?<\/p>\n<p>  \u041d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0415\u0441\u043b\u0438 \u043d\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438, \u0442\u043e \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u043d\u0438\u0445. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c.<\/p>\n<h4>1.1.2 CyUSB<\/h4>\n<p>  \u0421 \u044d\u0442\u0438\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u0440\u0443\u0433\u0438\u0445. \u0411\u044b\u043b\u043e \u044d\u0442\u043e 12 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434. \u0412\u043e\u0442 \u0441 \u043d\u0435\u0433\u043e \u0438 \u043d\u0430\u0447\u043d\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437. \u041f\u0440\u0430\u0432\u0434\u0430, \u0441\u043a\u0430\u0436\u0443 \u043b\u0438\u0448\u044c \u0432\u0441\u043a\u043e\u043b\u044c\u0437\u044c. \u0424\u0438\u0440\u043c\u0430 Cypress, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u044f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b FX2LP, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u043d\u0430 \u0431\u044b\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0441\u0432\u043e\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c. \u0418 \u043e\u043d\u0430 \u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0430. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2013 \u0438\u0449\u0438\u0442\u0435 \u043f\u043e \u0441\u043b\u043e\u0432\u0443 CyAPI. \u042d\u0442\u043e DLL-\u043a\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0440\u044f\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u042f \u043a\u0430\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0449\u0438\u043a \u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 DLL, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0435\u0431\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 IOCTL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0435\u0451 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u043e\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 Cypress. \u0410 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0442\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0441\u0442\u0430\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 AT90USB \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u0435 \u2013 \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c. \u0414\u0430\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0432\u043e\u0439\u2026 \u041d\u043e \u0432\u0441\u043a\u043e\u0440\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0442 Microsoft, \u0438 \u044f \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<h4>1.1.3 WinUSB<\/h4>\n<p>  \u042d\u0442\u043e\u0442 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0443\u0445\u043e\u0434\u0438\u0442 \u0441\u0432\u043e\u0438\u043c\u0438 \u043a\u043e\u0440\u043d\u044f\u043c\u0438 \u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 UMDF. \u041a\u043e\u0433\u0434\u0430 \u0444\u0438\u0440\u043c\u0430 Microsoft \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430\u0434 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0437\u0430\u0449\u0438\u0442\u044b, \u043e\u043d\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440-\u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0443 WinUSB. \u041d\u043e \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u0436\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0438\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 UMDF-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2013 \u0432\u0431\u0435\u0439\u0442\u0435 \u0432 \u043f\u043e\u0438\u0441\u043a <b>WinUSB API<\/b>. \u0427\u0435\u0440\u0435\u0437 \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0447\u0435\u0440\u0435\u0437 CyUSB, \u043d\u043e \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043b\u044e\u0431\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  \u0421\u0430\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 Windows, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 Win7 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0435\u043c. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u0442 Microsoft \u0438\u043b\u0438 \u043d\u0430\u0439\u0442\u0438 \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 inf \u0444\u0430\u0439\u043b, \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u043d\u0451\u043c VID\/PID \u043d\u0430 \u0441\u0432\u043e\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 WIN8, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u043d\u043e \u0438 INF \u0444\u0430\u0439\u043b. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c VID\/PID \u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d. \u0412\u043e\u0442 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 inf \u0444\u0430\u0439\u043b.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c inf \u0444\u0430\u0439\u043b<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">; ; Android WinUsb driver installation. ; [Version] Signature           = &quot;$Windows NT$&quot; Class               = AndroidUsbDeviceClass ClassGuid           = {3F966BD9-FA04-4ec5-991C-D326973B5128} Provider            = %ProviderName% DriverVer           = 06\/06\/2017,2.0.0010.00003 CatalogFile.NTx86   = MT16_x86.cat CatalogFile.NTamd64 = MT16_x64.cat  ; ; This section seems to be required for WinUsb driver installation. ; If this section is removed the installer will report an error ; &quot;Required section not found in INF file&quot;. ; [ClassInstall32] Addreg = AndroidWinUsbClassReg  [AndroidWinUsbClassReg] HKR,,,0,%ClassName% HKR,,Icon,,&quot;-26&quot;  [Manufacturer] %ProviderName% = Google, NTx86, NTamd64  [Google.NTx86] %CompositeAdbInterface1%     = USB_Install, USB\\VID_1234&amp;PID_0001 %CompositeAdbInterface2%     = USB_Install, USB\\VID_1234&amp;PID_0002 %CompositeAdbInterface3%     = USB_Install, USB\\VID_1234&amp;PID_0003 %CompositeAdbInterface5%     = USB_Install, USB\\VID_1234&amp;PID_0005 %OldBox%     \t\t     = USB_Install, USB\\VID_4844&amp;PID_8816 %HIDkey%     \t\t     = USB_Install, USB\\VID_A1A2&amp;PID_2001  [Google.NTamd64] %CompositeAdbInterface1%     = USB_Install, USB\\VID_1234&amp;PID_0001 %CompositeAdbInterface2%     = USB_Install, USB\\VID_1234&amp;PID_0002 %CompositeAdbInterface3%     = USB_Install, USB\\VID_1234&amp;PID_0003 %CompositeAdbInterface5%     = USB_Install, USB\\VID_1234&amp;PID_0005 %OldBox%     \t\t     = USB_Install, USB\\VID_4844&amp;PID_8816 %HIDkey%     \t\t     = USB_Install, USB\\VID_A1A2&amp;PID_2001  [USB_Install] Include = winusb.inf Needs   = WINUSB.NT  [USB_Install.Services] Include     = winusb.inf AddService  = WinUSB,0x00000002,WinUSB_ServiceInstall  [WinUSB_ServiceInstall] DisplayName     = %WinUSB_SvcDesc% ServiceType     = 1 StartType       = 3 ErrorControl    = 1 ServiceBinary   = %12%\\WinUSB.sys  [USB_Install.Wdf] KmdfService = WINUSB, WinUSB_Install  [WinUSB_Install] KmdfLibraryVersion  = 1.7  [USB_Install.HW] AddReg  = Dev_AddReg  [Dev_AddReg] HKR,,DeviceInterfaceGUIDs,0x10000,&quot;{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}&quot;  [USB_Install.CoInstallers] AddReg    = CoInstallers_AddReg CopyFiles = CoInstallers_CopyFiles  [CoInstallers_AddReg] HKR,,CoInstallers32,0x00010000,&quot;WdfCoInstaller01009.dll,WdfCoInstaller&quot;,&quot;WinUSBCoInstaller2.dll&quot;  [CoInstallers_CopyFiles] WinUSBCoInstaller2.dll WdfCoInstaller01009.dll  [DestinationDirs] CoInstallers_CopyFiles=11  [SourceDisksNames] 1 = %DISK_NAME%,,,\\i386 2 = %DISK_NAME%,,,\\amd64  [SourceDisksFiles.x86] WinUSBCoInstaller2.dll  = 1 WdfCoInstaller01009.dll = 1  [SourceDisksFiles.amd64] WinUSBCoInstaller2.dll  = 2 WdfCoInstaller01009.dll = 2  [Strings] ProviderName                = &quot;GM Software&quot; CompositeAdbInterface1      = &quot;MT16 Device&quot; CompositeAdbInterface2      = &quot;MT16 Ports 1-5&quot; CompositeAdbInterface3      = &quot;MT16 Ports 12-16&quot; CompositeAdbInterface5      = &quot;TBR Flasher&quot; OldBox      \t\t    = &quot;Old MT16 Box&quot; HIDkey      \t\t    = &quot;HID Dongle via WinUSB&quot; WinUSB_SvcDesc              = &quot;MT16 COM Ports&quot; DISK_NAME                   = &quot;MT16 Driver Installation Directory&quot; ClassName                   = &quot;MT16 USB Devices&quot; <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0420\u0430\u043d\u044c\u0448\u0435 \u0442\u0430\u043a\u0438\u0445 inf \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0441\u0435\u0442\u0438 \u0431\u044b\u043b\u043e \u043c\u043d\u043e\u0433\u043e. \u0410\u043d\u0434\u0440\u043e\u0438\u0434-\u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u043d\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c. \u0421\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0434\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0441\u043b\u043e\u0432\u0443<b> WinUSB.sys<\/b> \u0432\u043d\u0443\u0442\u0440\u0438. \u041d\u0443, \u0438\u043b\u0438 <b>\u00abServiceBinary = %12%\\WinUSB.sys\u00bb<\/b>.<\/p>\n<p>  \u042f \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b \u00ab\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0443\u00bb \u0434\u043b\u044f FX3 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ec\/nn\/fh\/ecnnfh7ewyntqppb7zd6taixprs.png\"><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">const uint8_t CyFxUSB30DeviceDscr[] __attribute__ ((aligned (32))) = {     0x12,                           \/* Descriptor size *\/     CY_U3P_USB_DEVICE_DESCR,        \/* Device descriptor type *\/     0x00,0x03,                      \/* USB 3.0 *\/     0x00,                           \/* Device class *\/     0x00,                           \/* Device sub-class *\/     0x00,                           \/* Device protocol *\/     0x09,                           \/* Maxpacket size for EP0 : 2^9 *\/ #ifdef CY_VID_PID     0xB4,0x04,                      \/* Vendor ID *\/     0xF1,0x00,                      \/* Product ID *\/ #else     0x34,0x12,                      \/* Vendor ID *\/     0x05,0x00,                      \/* Product ID *\/ #endif \u2026 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0433\u0443 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0445\u043e\u0442\u044c \u043f\u043e\u0434 CyUSB, \u0445\u043e\u0442\u044c \u043f\u043e\u0434 WinUSB \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0443\u0441\u044f \u0443 \u043c\u0435\u043d\u044f inf \u0444\u0430\u0439\u043b\u0443. \u0410 \u0442\u0430\u043a \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u041e\u0421 \u0432 \u0440\u0435\u0436\u0438\u043c, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432, \u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e.<\/p>\n<h4>1.1.4 \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 libusb<\/h4>\n<p>  \u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 WinUSB \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439, \u043d\u043e \u043d\u0435 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u043e\u0434 Linux \u043d\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0436\u0435 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Microsoft \u0434\u043b\u044f Windows. \u041a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2013 \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libusb. \u041f\u0440\u0438\u0447\u0451\u043c \u043f\u043e\u0434 Windows \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0441\u0451 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB. \u041d\u0430\u0448\u043b\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u043d\u0430\u043a\u0430\u0442\u0438\u043b\u0438 \u0435\u0433\u043e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0421\u043a\u0430\u0447\u0430\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043d\u0430\u0447\u0430\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c. \u041d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u2013 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0451 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u0434 Linux. \u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e? \u0414\u0430. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0432\u043e\u0451 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u041d\u043e, \u0443\u0432\u044b, \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u043d \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB, \u043c\u044b \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b \u0442\u0435\u0440\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b ControlCenter. \u041d\u0443, \u0438 \u044f \u043d\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043f\u0440\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 Streamer, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u2026 \u0412 \u043e\u0431\u0449\u0435\u043c, \u0435\u044e \u043c\u044b \u0442\u043e\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430 WinUSB.<\/p>\n<p>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0440\u0443\u0433\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f \u043d\u0435 \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438. \u042f \u0445\u043e\u0442\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c, \u0430 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u0430 \u043c\u0435\u043d\u044f \u0434\u0435\u043b\u0430\u043b\u0430 \u0441\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043a\u0430. \u041d\u043e \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u043f\u043e\u0441\u0430\u0434\u0438\u043b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 WinUSB, \u041e\u0421 \u0431\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u0438 \u043d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u043d\u0435 \u0432\u0441\u0435\u043c\u0435\u0440\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0437 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0430\u0436\u0438\u0432\u0430\u044f \u0438\u0445 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440? \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0434\u0430 (\u043f\u0440\u0430\u0432\u0434\u0430, \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434\u2026 \u041f\u0440\u0430\u0432\u0434\u0430, \u0432 \u043a\u043e\u043d\u0446\u0435 \u2014 \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043a\u0440\u0438\u0442\u0438\u043a\u0443\u044e \u0435\u0433\u043e.<\/p>\n<h4>1.1.5 \u0414\u0440\u0430\u0439\u0432\u0435\u0440 UsbDk<\/h4>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 libusb \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0434\u0432\u0443\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u0412\u0435\u0440\u0441\u0438\u044f 0.1 \u0438 \u0432\u0435\u0440\u0441\u0438\u044f 1.0. \u041e\u0431\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0443. \u0418 \u0432\u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u044f 1.0 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB, \u043d\u043e \u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 UsbDk. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b? \u0412\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0434\u0435\u0442\u0441\u0442\u0432\u043e, \u0441\u043a\u0430\u0437\u043a\u0443 \u043e \u0446\u0430\u0440\u0435 \u0421\u0430\u043b\u0442\u0430\u043d\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ng\/z2\/sq\/ngz2sqwi-fh9rwmfietr35fqrak.jpeg\"><\/p>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u0441\u0442\u0430\u0451\u0442 \u043d\u0430 \u043f\u0443\u0442\u0438 IRP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043e\u0442 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0443 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. IRP \u2014 \u044d\u0442\u043e \u0433\u043e\u043d\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0433\u0430\u044e\u0442 \u0442\u0443\u0434\u0430-\u0441\u044e\u0434\u0430. \u0410 \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0438\u0445 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044f, \u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u041e\u043d \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u0434\u0430\u0431\u044b \u0442\u0435 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u044f\u043c\u043e\u043c \u0438 \u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u0443\u0442\u0438. \u041d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c, \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c. \u0418 UsbDk \u044d\u0442\u0438\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u041e\u0447\u0435\u043d\u044c \u0441\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043e\u043f\u0443\u0441\u0442\u0438\u0432 \u0440\u044f\u0434 \u043d\u0435\u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/n7\/jf\/sa\/n7jfsagwlltuzpqyxfdflbfsj7o.png\"><\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0443\u0442 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 UsbDK \u043f\u043e\u0434\u0441\u0435\u043b \u043d\u0430 \u043f\u0443\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043e\u043d \u043f\u043e\u0434\u0441\u0435\u043b \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a\u043e \u0432\u0441\u0435\u043c USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438\u0446\u0435\u043f\u0438\u043b\u0441\u044f \u043a \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 USB):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ie\/cx\/od\/iecxodkew85gmjble70lg0h7qwu.png\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libusb 1.0 \u0441\u043a\u0430\u0437\u0430\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">    libusb_init(&amp;m_ctx);     libusb_set_option(m_ctx, LIBUSB_OPTION_USE_USBDK); <\/code><\/pre>\n<p>  \u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u043d\u0435 WinUSB, \u0430 UsbDk. \u0423\u0440\u0430? \u041d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438.<\/p>\n<p>  <b>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f.<\/b> \u0415\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0432\u044b\u0448\u043b\u0438, \u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e. \u041d\u043e \u0432\u043e\u0442 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u0438\u0441\u044c. \u0414\u0430 \u0445\u043e\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0441\u0442\u043e\u044f\u043b\u0430 \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u043e\u0441\u044c, \u044f \u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0443\u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u0435\u0451. \u041c\u043e\u0433\u0443 \u044f \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0414\u0435\u043b\u043e-\u0442\u043e \u0436\u0438\u0442\u0435\u0439\u0441\u043a\u043e\u0435 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0418\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0446\u0438\u043a\u043b\u0438\u043b\u0430\u0441\u044c \u043e\u043d\u0430. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043c\u044b \u0435\u0451 \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u0438. \u0421\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u2013 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u2013 \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439.<\/p>\n<pre><code class=\"plaintext\">Driver file operation error. DeviceIoControl failed (Cannot create a file when that file already exists.  Error code = 183) Cannot Open USB Device <\/code><\/pre>\n<p>  \u0418 \u0432\u0441\u0451. \u0412\u044b\u0434\u0451\u0440\u0433\u0438\u0432\u0430\u0442\u044c-\u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c USB-\u043a\u0430\u0431\u0435\u043b\u044c \u2013 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 Windows \u0441\u043f\u0430\u0441\u0451\u0442 \u041e\u0442\u0446\u0430 \u0420\u0443\u0441\u0441\u043a\u043e\u0439 \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0438. \u041a\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0448\u044c\u0441\u044f \u0442\u0440\u0435\u0442\u0438\u0439-\u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430 \u0447\u0430\u0441 \u2013 \u044d\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0442\u044c. \u041f\u043e\u0438\u0441\u043a \u0432 \u0441\u0435\u0442\u0438 \u043d\u0435 \u0434\u0430\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0431\u0435\u0433\u043b\u043e \u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 UsbDk \u2013 \u0442\u043e\u0436\u0435, \u0430 \u043d\u0430 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043d\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u043e\u0436\u0435\u0442, \u043a\u0442\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0447\u0435\u0433\u043e \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442\u2026<\/p>\n<p>  \u041d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0435\u0442, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0442\u0430\u043b\u044c\u043d\u043e\u0439. <b>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f<\/b>. \u0412\u043e\u0442 \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b VirtualBox. \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0438 \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043d\u0435\u0439, \u0441\u043a\u0430\u0436\u0435\u043c, \u0431\u043b\u0430\u0441\u0442\u0435\u0440. \u0418 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u044e?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9a\/28\/g-\/9a28g-wwaijxjf62xdq5k2lmfik.png\"> <\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u2013 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.<\/p>\n<p>  \u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u0435\u0442\u0438 \u0434\u0430\u0451\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0438\u043f\u0430: \u00ab\u0423 \u043c\u0435\u043d\u044f \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u043f\u043e\u0442\u0451\u0440 \u0437\u0430\u044f\u0447\u044c\u0435\u0439 \u043b\u0430\u043f\u043a\u043e\u0439 \u043f\u043e \u0431\u0443\u0431\u043d\u0443 \u0438\u0437 \u043a\u043e\u0436\u0438 \u0442\u0443\u0448\u043a\u0430\u043d\u0447\u0438\u043a\u0430, \u0441\u043f\u0440\u044b\u0441\u043d\u0443\u0442\u043e\u043c\u0443 \u043a\u0440\u043e\u0432\u044c\u044e \u0441\u0435\u043c\u0438\u0434\u0435\u0441\u044f\u0442\u0438\u0434\u0432\u0443\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0435\u0432\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u0446\u044b, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439\u2026\u00bb \u2026 \u0427\u0442\u043e \u0442\u0430\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0440\u0435\u0446\u0435\u043f\u0442\u0435 \u2014 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043c\u043d\u044e\u2026 \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u043c\u043d\u0435 \u043e\u043d \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u2026 \u0411\u043e\u043b\u0435\u0435 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0441\u043d\u043e\u0441\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b USB, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043b\u0435\u0433\u0447\u0430\u0435\u0442. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u043d\u043e\u0441\u0438\u0448\u044c \u0438\u043c\u0435\u043d\u043d\u043e UsbDK. \u041d\u0443, \u0437\u043d\u0430\u0447\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u0442\u043e\u043c\u0443 \u0438 \u0431\u044b\u0442\u044c. \u0425\u043e\u0442\u044f \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0430\u0443\u0434\u0438\u043e, \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u044f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b. \u0422\u0430\u043a \u0447\u0442\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u044f \u0441\u043d\u0451\u0441, \u043d\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u2013 \u043e\u0441\u0442\u0430\u0432\u0438\u043b. \u041f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e \u044d\u0442\u0443 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443. \u041d\u0443, \u0438 \u0432\u0434\u0440\u0443\u0433 \u043a\u0442\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u0438 \u0434\u0432\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0422\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0434\u043e\u0440\u043e\u0432\u043e.<\/p>\n<p>  <b>1.1.6 \u0418\u0442\u043e\u0433\u043e<\/b><\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 libusb, \u043f\u043e\u0441\u0430\u0434\u0438\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB. \u0414\u0430, \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0442 Cypress. \u0417\u0430\u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0438 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<h3>1.2 Linux<\/h3>\n<p>  <\/p>\n<h4>1.2.1 \u0414\u0440\u0430\u0439\u0432\u0435\u0440<\/h4>\n<p>  \u042f \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0432 \u0443\u0445\u043e\u0434\u0435 \u0437\u0430 \u043f\u0438\u043d\u0433\u0432\u0438\u043d\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0436\u0443 \u0441\u043b\u043e\u0432\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u0430, \u043e\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u044b \u0432 \u041b\u0438\u043d\u0443\u043a\u0441\u0435 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0443, \u043b\u0438\u0431\u043e \u043f\u043e VID\/PID. \u0412\u043e\u0442, \u0441\u043a\u0430\u0436\u0435\u043c, \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u043c\u0430\u043a\u0435\u0442\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 ICE40 \u0441 \u041f\u041b\u0418\u0421 Latice \u0438 \u043f\u043e\u0434\u0430\u043b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <b>lsusb<\/b>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c USB \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u2013 \u0443\u0436\u0435 \u043f\u043e\u043b\u044e\u0431\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043d\u0430\u043c \u043f\u043e \u043f\u0440\u043e\u0448\u043b\u044b\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443: <br \/>  <b>ls \u2013l \/dev\/serial\/by-path<\/b>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0441\u0442 \u0444\u0438\u0440\u043c\u044b FTDI \u0441\u0430\u043c \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u043b\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u0440\u0442\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ip\/wh\/pi\/ipwhpiqcw-ricfbtwk5fztkyrru.png\"> <\/p>\n<p>  \u0421 \u0442\u0430\u043a\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f, \u043a\u0430\u043a \u0443\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Windows \u0442\u0430\u043a\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u0443\u0442 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438 (\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438). \u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432, \u0441 \u043d\u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 libusb. \u0410 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u0430\u043a\u043e\u0432\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a \u043c\u0435\u043d\u044f \u043d\u0435 \u043e\u0431\u043c\u0430\u043d\u0443\u043b.<\/p>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430, \u0435\u0441\u0442\u044c \u0447\u0438\u0441\u0442\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u044b\u043d\u0435\u0441\u0435\u043c \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b.<\/p>\n<h4>1.2.2 \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u0440\u0430\u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438<\/h4>\n<p>  \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 Linux \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0438\u043c \u043d\u0430\u0434\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u0422\u043e \u0435\u0441\u0442\u044c, \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438\u00bb \u0434\u043b\u044f \u041f\u041b\u0418\u0421 ICE40 (\u043a \u0442\u0435\u043c\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u043d\u0438 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f, \u043d\u043e \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0445 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e, \u043f\u0440\u0438\u0447\u0451\u043c \u043f\u043e\u0434 Linux, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f \u043d\u0438\u0445) \u043c\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0431\u0440\u0430\u0442\u044c <b>make<\/b>, \u0430 \u0432\u043e\u0442 \u0435\u0441\u043b\u0438 \u0434\u043b\u044f \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438\u00bb \u044f \u043d\u0430\u0431\u0435\u0440\u0443 <b>make prog<\/b>, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0443 \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3k\/pq\/hv\/3kpqhvvxzgkve1b3dzglo13esvy.png\"> <\/p>\n<p>  \u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432. \u041d\u0430\u0434\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c <b>sudo make prog<\/b>.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u0437\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0430\u0432\u0430, \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0410 \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a \u0438\u0445 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c, \u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u0430\u044e \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0413\u0443\u0433\u043b\u044e:<\/p>\n<p>  <b>Usb blaster Linux<\/b><\/p>\n<p>  \u0421\u0441\u044b\u043b\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e, \u0432\u0441\u0435 \u043e\u043d\u0438 \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0448\u0430\u043c\u0430\u043d\u0441\u0442\u0432\u0430. \u0412\u043e\u0442 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430: <br \/>  <a href=\"https:\/\/rocketboards.org\/foswiki\/Documentation\/UsingUSBBlasterUnderLinux\" rel=\"nofollow\">Using USB Blaster \/ USB Blaster II under Linux | Documentation | RocketBoards.org<\/a><\/p>\n<p>  \u0427\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430: \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0434\u043b\u044f Debian \u0438 \u0434\u043b\u044f Ubuntu \u0440\u0430\u0437\u043d\u044b\u0435. <br \/>  <b>\/etc\/udev\/rules.d\/<font color=\"red\">92<\/font>-usbblaster.rules<\/b> \u0438 <b>\/etc\/udev\/rules.d\/<font color=\"red\">51<\/font>-usbblaster.rules<\/b>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.<\/p>\n<p>  \u0412\u0441\u0451 \u0442\u043e\u0442 \u0436\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a, \u0430 \u043f\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443 \u2013 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u041b\u0438\u043d\u0443\u043a\u0441\u0430, \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0447\u0438\u0441\u043b\u043e 92 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b <b>\/<font color=\"blue\">lib<\/font>\/udev\/rules.d\/<font color=\"red\">91<\/font>-permissions.rules<\/b>.<\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435, \u043c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0438 \u044f \u0432\u0431\u0438\u043b \u0432 \u0413\u0443\u0433\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0438\u0441\u043a\u0430<br \/>  \/etc\/udev\/rules.d\/<\/p>\n<p>  \u041e\u043d \u043d\u0430\u0448\u0451\u043b \u043c\u043d\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e udev. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435. \u041f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0435 \u0432\u0438\u0436\u0443 \u0441\u043c\u044b\u0441\u043b\u0430. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u0438. \u0414\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e \u0442\u0435\u043e\u0440\u0438\u0438 \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435:<br \/>  <a href=\"http:\/\/igorka.com.ua\/2010-03-24\/znakomstvo-s-udev-v-ubuntu\/\" rel=\"nofollow\">Igorka: \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 udev \u0432 ubuntu<\/a><\/p>\n<p>  \u0418\u0442\u0430\u043a. \u0418\u0434\u0443 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <b>\/etc\/udev\/rules.d<\/b>. \u0412\u0438\u0436\u0443 \u0444\u0430\u0439\u043b <b>70-snap.snapd.rules<\/b>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0435\u0435\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c FTDI \u0447\u0438\u043f\u0430\u043c:<\/p>\n<p>  FTDI-based serial adapters:<\/p>\n<pre><code class=\"plaintext\">#   FTDI does USB to serial converter ICs; and it's very likely that they'll #   never do modems themselves, so it should be safe to add a rule only based #   on the vendor Id. ATTRS{idVendor}==&quot;0403&quot;, ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}=&quot;1&quot; <\/code><\/pre>\n<p>  \u041d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0447\u0442\u043e \u0442\u0432\u043e\u0440\u044e, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e <b>mc<\/b>, \u0430 <b>sudo mc<\/b> \u0438 \u0432 \u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0441\u043e\u0437\u0434\u0430\u044e \u0444\u0430\u0439\u043b <b>\/etc\/udev\/rules.d \/71-ice40.rules<\/b> \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<pre><code class=\"plaintext\">#FTDI Programmer for latice SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0403&quot;, ATTRS{idProduct}==&quot;6010&quot;, MODE=&quot;0666&quot; <\/code><\/pre>\n<p>  \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0441 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e \u043d\u043e\u0432\u044b\u0439, \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438. \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u044e-\u0432\u043a\u043b\u044e\u0447\u0430\u044e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u2026 \u0412\u0443\u0430\u043b\u044f! \u041e\u043d\u043e \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u0430\u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lf\/tp\/cr\/lftpcrahk6gc4vfazaw51gzbc8e.png\"> <\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043c\u043e\u0438 \u0448\u0430\u043c\u0430\u043d\u0441\u0442\u0432\u0430, \u043c\u043e\u0436\u0435\u0442\u0435 \u2013 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043e\u0440\u0438\u044e \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443 \u0432\u0430\u0441 \u0432\u0441\u0451 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0443\u0436\u0435 \u0441 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435\u043c \u0444\u0438\u0437\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0410 \u0442\u0430\u043a \u2013 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 Windows, \u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 libusb \u0432\u0435\u0440\u0441\u0438\u0438 1.0 (\u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 0.1). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u041b\u0438\u043d\u0443\u043a\u0441\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 FX3 \u043d\u0435 \u0431\u0443\u0434\u0443.<\/p>\n<h2>2 \u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/h2>\n<p>  \u041e\u0445, \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b! \u041d\u043e \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u044b \u0432\u043b\u0430\u0434\u0435\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0437\u043d\u0430\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u043e\u043f\u044b\u0442\u0430\u043c. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u041e\u0421 Windows, \u043f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 libusb 1.0, \u043e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB. \u042f \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 Qt, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u043e\u0434 \u043d\u0435\u0451.<\/p>\n<h3>2.1 \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c libusb \u0432 \u043f\u0440\u043e\u0435\u043a\u0442<\/h3>\n<p>  \u042f \u0441\u043a\u0430\u0447\u0430\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 libusb \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043b \u0435\u0451 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443, \u0432 \u0444\u0430\u0439\u043b *.pro \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u043b\u043e\u043a:<\/p>\n<pre><code class=\"plaintext\">win32:{ LIBS +=  D:\/Work\/AS\/2020\/teensy\/Qt\/UsbSpeedTest\/LibUSB\/MinGW64\/static\/libusb-1.0.a } <\/code><\/pre>\n<p>  \u041a\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u2013 \u0437\u043b\u043e? \u0417\u043e\u043b\u043e\u0442\u044b\u0435 \u0441\u043b\u043e\u0432\u0430! \u042f \u0442\u043e\u0436\u0435 \u0442\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u044e. \u041d\u043e \u044f \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0431\u0438\u043b \u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u043b \u0442\u0430\u043a. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u0442\u0430\u0439\u043d\u0443, \u043a\u0430\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0443\u0442\u0438, \u0434\u0430 \u0435\u0449\u0451 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0431\u0443\u0434\u0443 \u043f\u0440\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d \u0437\u0430 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f. \u0410 \u043f\u043e\u043a\u0430 \u2013 \u043e\u0442\u043c\u0435\u0447\u0430\u044e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043b\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043c\u0435\u043d\u044f \u0438 \u0442\u043e\u043b\u044c\u043a\u043e, \u043f\u043e\u043a\u0430 \u044f \u043d\u0435 \u0441\u043e\u0431\u0435\u0440\u0443\u0441\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0443\u0434\u0430-\u0442\u043e. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0451. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0440\u0430\u0431\u043e\u0442\u0435.<\/p>\n<h3>2.2 \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435<\/h3>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0438\u0448\u0443 \u0432 \u0441\u043b\u0438\u0442\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435. \u041d\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043b\u0430\u0442\u043e\u0439 FX3 \u0432 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441. \u0412\u043e\u0442 \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">#ifndef CUSBTESTER_H #define CUSBTESTER_H #include &quot;.\/LibUSB\/libusb.h&quot;   class CUsbTester { public:     CUsbTester();     ~CUsbTester();     virtual bool ConnectToDevice();     virtual void DisconnectFromDevice();     libusb_device_handle* m_hUsb; protected:     libusb_context * m_ctx = NULL; };  #endif \/\/ CUSBTESTER_H <\/code><\/pre>\n<p>  \u041f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u043c\u044b \u0435\u0449\u0451 \u043f\u0440\u043e\u0439\u0434\u0451\u043c\u0441\u044f, \u0430 \u043f\u043e\u043a\u0430 \u044f \u043e\u0442\u043c\u0435\u0447\u0443 \u0442\u043e, \u0447\u0442\u043e \u0443 \u043a\u043b\u0430\u0441\u0441\u0430 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f-\u0447\u043b\u0435\u043d, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0442\u043e\u0440 (\u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u043d\u0430\u0440\u043e\u0434\u0438\u0438 \u2014 \u0445\u044d\u043d\u0434\u043b) \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0442\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:<\/p>\n<pre><code class=\"plaintext\">\/\/#define CY_VID_PID  CUsbTester::CUsbTester() {     libusb_init(&amp;m_ctx); #ifdef CY_VID_PID     libusb_set_option(m_ctx, LIBUSB_OPTION_USE_USBDK); #endif     libusb_set_option(m_ctx, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_DEBUG);     m_hUsb = 0; } <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 CyUSB \u0438 \u0444\u0438\u043b\u044c\u0442\u0440 UsbDk, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u0418 \u043c\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0412\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0441\u044b\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u043a\u043d\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 UsbDk? \u0411\u0435\u0437 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u043d\u0438\u043a\u0442\u043e \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u0437\u043d\u0430\u043b. \u041e\u0448\u0438\u0431\u043a\u0430 \u0438 \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<p>  \u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0451 \u0434\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442. \u041a\u043b\u0430\u0441\u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439, \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438 \u0432\u0441\u0451.<\/p>\n<pre><code class=\"plaintext\">CUsbTester::~CUsbTester() {     DisconnectFromDevice();     libusb_exit(m_ctx); } <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043b\u0438\u0448\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c VID\/PID. \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u044f \u043c\u043e\u0433\u0443 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443\u00bb \u043f\u043e\u0434 \u0448\u0442\u0430\u0442\u043d\u044b\u0435 VID\/PID \u043e\u0442 Cypress, \u0435\u0441\u043b\u0438 \u0438\u0434\u0451\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 UsbDk, \u0438 \u043f\u043e\u0434 \u0442\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u0448\u0451\u043b\u0441\u044f inf-\u0444\u0430\u0439\u043b, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinUSB. \u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c, \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libusb:<\/p>\n<pre><code class=\"plaintext\">bool CUsbTester::ConnectToDevice() { #ifdef CY_VID_PID     m_hUsb = libusb_open_device_with_vid_pid(m_ctx,0x4b4,0xf1); #else     m_hUsb = libusb_open_device_with_vid_pid(m_ctx,0x1234,0x0005); #endif     if (m_hUsb == 0)     {         qDebug()&lt;&lt;&quot;Cannot Open USB Device&quot;;         return false;     }     int res = libusb_claim_interface(m_hUsb,0);     if (res != 0)     {         qDebug()&lt;&lt;&quot;Cannot claim interface - &quot;&lt;&lt;libusb_error_name(res);     }     return true; } <\/code><\/pre>\n<p>  \u041d\u0443, \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u043e\u0436\u0435 \u0442\u0438\u043f\u043e\u0432\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"plaintext\">void CUsbTester::DisconnectFromDevice() {     if (m_hUsb != 0)     {         libusb_release_interface(m_hUsb,0);         libusb_close(m_hUsb);         m_hUsb = 0;     } } <\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0451. \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044f \u0431\u0443\u0434\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u042d\u0442\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043e\u0432 \u0441\u043e\u0439\u0434\u0451\u0442. \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u043a\u043e\u0434 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u043e\u0441\u0441\u044f \u0438 \u043e\u0442\u0434\u0435\u043b\u0438\u043b \u0435\u0433\u043e \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0432\u044b\u043d\u0435\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441. \u0410 \u0447\u0442\u0435\u043d\u0438\u0435 \u2014 \u043e\u043d\u043e \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<h3>2.3 \u0422\u0435\u0441\u0442\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/h3>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>main()<\/b> \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  \u0422\u0435\u0441\u0442\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438. \u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u0442\u043e\u0440\u0430\u044f \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0441 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u043e\u043c. \u041f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u2013 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0431 \u044d\u0442\u043e\u043c \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"plaintext\">bool TestStep(CUsbTester&amp; tester,uint16_t* pData, const int bytesCnt) {     bool bResult = true;     qDebug() &lt;&lt; &quot;Testing...&quot;;      QElapsedTimer timer;     timer.start();      int actualLength;     int res = libusb_bulk_transfer(tester.m_hUsb,0x81,(uint8_t*)pData,bytesCnt,&amp;actualLength,10000);     if (res != 0)     {         qDebug() &lt;&lt; libusb_error_name(res);         return false;     }      quint64 after = timer.elapsed();      qDebug() &lt;&lt; &quot;Read Result = &quot; &lt;&lt; res;     qDebug() &lt;&lt; &quot;Actual Length = &quot; &lt;&lt; actualLength;     qDebug() &lt;&lt; &quot;Time = &quot; &lt;&lt; after;      double speed = bytesCnt\/after;     qDebug() &lt;&lt; speed &lt;&lt; &quot;Bytes \/ Sec&quot;;      uint16_t prevData = pData[0];     for (int i=1;i&lt;bytesCnt\/2;i++)     {         if (pData[i] != ((prevData + 1)&amp;0xffff))         {             qDebug() &lt;&lt; Qt::hex &lt;&lt; i &lt;&lt; &quot; : &quot; &lt;&lt; prevData &lt;&lt; &quot;, &quot; &lt;&lt; pData[i];         }         prevData = pData[i];     }     return bResult; } <\/code><\/pre>\n<p>  \u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044f \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u043d\u043e \u043f\u043e\u043a\u0430 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>main()<\/b> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0451 \u043e\u0434\u0438\u043d \u0440\u0430\u0437:<\/p>\n<pre><code class=\"plaintext\">int main(int argc, char *argv[]) {     QCoreApplication a(argc, argv);      CUsbTester tester;     if (tester.ConnectToDevice())     {          QByteArray ar1;         ar1.resize(128*1024*1024);          for (int i=0;i&lt;1;i++)         {             TestStep (tester,(uint16_t*)ar1.constData(),ar1.size());         }         tester.DisconnectFromDevice();     }       return a.exec(); } <\/code><\/pre>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0438 \u0432\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430.<\/p>\n<h3>2.4 \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430<\/h3>\n<p>  <\/p>\n<h4>2.4.1 \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c<\/h4>\n<p>  \u041f\u0440\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0431\u043b\u0438\u0437\u043a\u0430 \u043a \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0433\u043e\u043d\u0438\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 60 \u041c\u0413\u0446, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a 120 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0434\u0435\u0444\u0438\u0446\u0438\u0442 \u043a\u043e\u043b\u0431\u0430\u0441\u044b, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u0432\u0441\u0435\u0433\u043e 30 \u041c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0414\u0430\u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u0430 \u0448\u0438\u043d\u0435 USB 2.0. \u0422\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0435. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9k\/uf\/tv\/9kuftvo64syzrnjz7xscxdv-opw.png\"><\/p>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0440\u0430\u0432\u043d\u0430 119 0XX XXX \u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0418\u0437\u0440\u0435\u0434\u043a\u0430 \u2013 119 4XX XXX. \u041d\u0443, \u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0440\u0435\u0434\u043a\u043e \u2013 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f. \u0423 \u043d\u0430\u0441 \u0438\u0434\u0451\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0438. \u0422\u043e\u0433\u0434\u0430 \u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0442\u0430\u043a (\u043f\u0435\u0440\u0435\u0448\u0451\u043b \u043d\u0430 \u043d\u0430\u043d\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0438 \u0441\u0442\u0430\u043b \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f):<\/p>\n<pre><code class=\"plaintext\">    QElapsedTimer timer;     int actualLength;      timer.start();     int res = libusb_bulk_transfer(tester.m_hUsb,0x81,(uint8_t*)pData,bytesCnt,&amp;actualLength,10000);     quint64 after = timer.nsecsElapsed();      if (res != 0)     {         qDebug() &lt;&lt; libusb_error_name(res);         return false;     }      qDebug() &lt;&lt; &quot;Read Result = &quot; &lt;&lt; res;     qDebug() &lt;&lt; &quot;Actual Length = &quot; &lt;&lt; actualLength;     qDebug() &lt;&lt; &quot;Time = &quot; &lt;&lt; after;      quint64 size = bytesCnt;     size *= 1000000000;     quint64 speed = size\/after;     qDebug() &lt;&lt; speed &lt;&lt; &quot;Bytes \/ Sec&quot;; <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u0447\u0443\u0442\u044c \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u043e\u0433\u043e \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440\u0430 \u0438 \u0448\u043b\u0451\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0443\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u043d\u0430\u0434\u043e. \u041d\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u043b\u0430\u0442\u0430 \u0434\u0430\u0451\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f! \u0417\u043d\u0430\u0447\u0438\u0442, \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435. \u041c\u0430\u043b\u043e \u0442\u043e\u0433\u043e, \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444 (\u043f\u0440\u0430\u0432\u0434\u0430, \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u0435\u0448\u0451\u0432\u044b\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439) \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043d\u0438\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u043d\u0438\u0436\u0435\u043d\u0430, \u0434\u0430\u0436\u0435 \u0447\u0443\u0442\u044c \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u0430.<\/p>\n<p>  \u0422\u043e\u0433\u0434\u0430 \u044f \u043f\u043e\u043b\u0435\u0437 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libusb \u0438 \u043f\u0440\u043e\u0441\u0442\u043e-\u0442\u0430\u043a\u0438 \u0443\u0442\u043e\u043d\u0443\u043b \u0432 \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0446\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043c \u0442\u0430\u043a\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043a\u0430\u0447\u0430\u0435\u0448\u044c\u0441\u044f! \u0418 \u043c\u043d\u043e\u0433\u043e, \u0433\u0434\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430. \u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0438\u043a\u0438\u043d\u0435\u043c, \u043a\u0430\u043a\u043e\u0432\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430.<\/p>\n<p>  120 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443\u2026 \u041e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0434\u043e \u0441\u0442\u0430. \u042d\u0442\u043e 1 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 10 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0410 \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430 1 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442. \u041d\u0435\u0443\u0436\u0435\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043f\u0440\u043e\u043a\u0430\u0447\u043a\u0438 \u0441\u044a\u0435\u0434\u0430\u044e\u0442 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438? \u041a\u0430\u043a \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430\u0447\u0435\u0440\u043d\u043e? \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0431\u0443 \u043a\u043e\u0434 \u043f\u043e\u0434 \u043f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 WinUSB API. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u044f \u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u0443, \u0442\u0430\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0445\u0438\u0442\u0440\u043e, \u0447\u0435\u0440\u0435\u0437 SetupDi API. \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u043e\u0434 Visual Studio. \u041d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u044b\u0445 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 WinUSB, \u043c\u043e\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438:<\/p>\n<pre><code class=\"plaintext\">int CWinUSBConnector::ReadViaBulk (void* pData,int count,int timeOut) { \tDWORD dwRead;  \tResetEvent (m_hEvRead); \tif ((!WinUsb_ReadPipe (m_hUsbDrive,m_nReadEP,(BYTE*)pData,count,&amp;dwRead,&amp;m_ovRead)) &amp;&amp; (GetLastError() != ERROR_IO_PENDING)) \t{ \t\treturn -1; \t} \tif (WaitForSingleObject(m_hEvRead,timeOut)!=WAIT_OBJECT_0) \t{ \t\tWinUsb_AbortPipe (m_hUsbDrive,m_nReadEP); \t\treturn -2; \t} else \t{ \t\tWinUsb_GetOverlappedResult (m_hUsbDrive,&amp;m_ovRead,&amp;dwRead,FALSE); \t} \treturn dwRead; } <\/code><\/pre>\n<p>  \u0410 \u0442\u0435\u0441\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"plaintext\">#include &lt;iostream&gt; #include &lt;windows.h&gt;  #include &quot;.\/USB\/WinUSBConnector.h&quot;  CWinUSBConnector m_connector;   int main() {     std::cout &lt;&lt; &quot;Hello World!\\n&quot;; \tif (m_connector.Open() != 0) \t{ \t\tstd::cerr &lt;&lt; &quot;Cannot Open Drive\\n&quot;; \t\treturn 1; \t}  \tLARGE_INTEGER Frequency; \tQueryPerformanceFrequency(&amp;Frequency);  \tstatic const UINT64 cnt = 128 * 1024 * 1024; \tBYTE* pData = new BYTE [cnt];  \tLARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds;  \tQueryPerformanceCounter(&amp;StartingTime); \tUINT64 realSize = m_connector.ReadViaBulk(pData, (int)cnt, 10000); \tQueryPerformanceCounter(&amp;EndingTime); \tif (realSize != cnt) \t{ \t\tstd::cerr &lt;&lt; &quot;Cannot Read Data\\n&quot;; \t\treturn 2; \t} \tElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart; \tElapsedMicroseconds.QuadPart *= 1000000; \tElapsedMicroseconds.QuadPart \/= Frequency.QuadPart;  \tUINT64 bytesPerSeconds = (cnt*1000000LL) \/ ElapsedMicroseconds.QuadPart;  \tstd::cout &lt;&lt; &quot;Test Finished! &quot; &lt;&lt; bytesPerSeconds &lt;&lt; &quot; Bytes  per second \\n&quot;;  \tdelete[] pData; \treturn 0; } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 119 2XX XXX \u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0412\u043e\u0442 \u043a\u0430\u043a\u043e\u0439 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044f \u043f\u043e\u0434\u043b\u043e\u0432\u0438\u043b \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0446\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ul\/bb\/_f\/ulbb_f3udimezgmiwdl_yiynhqi.png\"><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zh\/nu\/wu\/zhnuwutcghyvwcgjmhgh7icilxy.png\"> <\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0438 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435-\u0432\u044b\u0445\u043e\u0434\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0447\u0442\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u043e \u0438 \u043b\u0430\u0434\u043d\u043e.<\/p>\n<h4>2.4.2 \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0438 \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430<\/h4>\n<p>  \u041d\u043e \u043d\u0430 \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u0443 \u043d\u0430\u0441 \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/d1\/6i\/qi\/d16iqixmtqvrj6xmkgu-akomdfy.png\"> <\/p>\n<p>  \u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0447\u0451\u0442\u0430. \u041d\u0435\u0443\u0436\u0435\u043b\u0438 \u043c\u044b \u043d\u0430\u0440\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0432\u044b\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445? \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u043c\u0435\u0441\u0442\u0435. \u0418 \u043c\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u0431\u0443\u0444\u0435\u0440 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 FIFO \u0432 \u041f\u041b\u0418\u0421. \u0413\u043e\u0442\u043e\u0432\u044b \u043b\u0438 \u043c\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u0442, \u043e\u043d\u0438 \u0441 \u0432\u044b\u0445\u043e\u0434\u0430 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 FX3. \u041a\u043e\u0433\u0434\u0430 \u0442\u043e\u0442 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f, \u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f. \u041a\u0440\u043e\u043c\u0435 \u0431\u0443\u0444\u0435\u0440\u0430 FX3, \u0435\u0441\u0442\u044c \u0435\u0449\u0451 FIFO \u0432 \u041f\u041b\u0418\u0421. \u0412\u043e\u0442 \u0443 \u043d\u0430\u0441 \u0438 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0432\u0435 \u0451\u043c\u043a\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c, \u043d\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0443. \u041f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u0440\u044b\u0432\u044b \u0432 \u0441\u0447\u0451\u0442\u0435.<\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u041f\u0440\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u043b \u0431\u0443\u0444\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b \u0438\u0445 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c (\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, <a href=\"https:\/\/habr.com\/ru\/post\/525440\/\">\u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e \u0433\u043e\u043b\u043e\u0432\u0443 USB-\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430<\/a> \u043c\u044b \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0447\u0435\u0440\u0435\u0437 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u00abGo\u00bb), \u0430 \u043f\u043e\u043a\u0430 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u2013 \u043d\u0435 \u0431\u0430\u0433\u0438, \u0430 \u0444\u0438\u0447\u0438. \u041c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043d\u0430 \u0442\u0430\u043a\u0443\u044e:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xq\/7w\/_a\/xq7w_armjmeiki84yinzzkpklqs.png\"><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">    int from = 0xc001;     uint16_t prevData = pData[from];     for (int i=from+1;i&lt;bytesCnt\/2;i++)     {         if (pData[i] != ((prevData + 1)&amp;0xffff))         {             qDebug() &lt;&lt; Qt::hex &lt;&lt; i &lt;&lt; &quot; : &quot; &lt;&lt; prevData &lt;&lt; &quot;, &quot; &lt;&lt; pData[i];         }         prevData = pData[i];     } <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u0435\u043b\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u2026 \u0418 \u0442\u0443\u0442 \u044f \u043f\u043e\u043d\u044f\u043b, \u043a\u0442\u043e \u0434\u0430\u0451\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443\u2026 \u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434!!! \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u0441\u0451 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pz\/fe\/bp\/pzfebpyyg2axoctp3iyp5efcufi.png\"> <\/p>\n<p>  \u041c\u0430\u0441\u0441\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439. \u041d\u0443 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e. \u0417\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e libusb, \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<p>  <font color=\"green\">\/\/ libusb_set_option(m_ctx, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_DEBUG);<\/font><\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u0440\u0430\u0441\u043e\u0442\u0443, \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u043c\u0443\u044e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 WinUSB API (\u0436\u0430\u043b\u044c \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vc\/a_\/lb\/vca_lbjrql2t5ffbtuhlxfqdvts.png\"> <\/p>\n<p>  \u041d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u043d\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u044b \u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 (\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043c\u044b \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c).<\/p>\n<p>  \u0410 \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430\u043c \u043f\u0440\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u044b \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438? \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 128, \u0430 32 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u0430! \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0436\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 119 8XX XXX \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3k\/sg\/zf\/3ksgzf5yi2t-b9sngauhevkxt3i.png\"> <\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e\u2026 \u041a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0433\u043e. \u042f \u043d\u0430\u0448\u0451\u043b \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u0435\u0441\u0442\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0448\u0442\u0430\u0442\u043d\u0430\u044f \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u00bb FX3 \u043f\u043e\u0434\u0432\u0438\u0441\u0430\u0435\u0442. \u041d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u0447\u0442\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0430\u0439\u0442\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437.<\/p>\n<h2>3 \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041c\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 USB \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432 \u041e\u0421 Windows \u0438 Linux, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u0430\u0432\u044b\u043a \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 libusb. \u041d\u0430\u0447\u0435\u0440\u043d\u043e, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 USB 3.0 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 FX \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0438\u0451\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b ULPI \u0431\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 SDRAM. \u0412 \u043f\u043e\u0442\u043e\u043a\u0435 \u043d\u0435 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441 \u0432\u0438\u0434\u0443 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439. \u0410\u0432\u0442\u043e\u0440 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u044b\u044f\u0432\u0438\u043b \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043d\u043e \u0432\u044b\u043d\u043e\u0441\u0438\u0442 \u0435\u0451 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/535406\/\"> https:\/\/habr.com\/ru\/post\/535406\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\u0412 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 USB 3.0 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 FX3. \u041f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u044e \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f PC. \u041d\u0443, \u0438 \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0448\u0438\u0440\u0438\u043d\u044b \u043a\u0430\u043d\u0430\u043b\u0430 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a? \u0418 \u043d\u0435 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430? \u041a\u0442\u043e \u0445\u043e\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c, \u043d\u0435 \u043f\u043e\u0432\u0435\u0440\u0438\u0442 \u0432 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0437\u043d\u0430\u0447\u0438\u0442, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445. \u0410 \u044f \u043d\u0430 \u044d\u0442\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043b\u0435\u0442 \u043f\u044f\u0442\u044c, \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0432\u044b\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0441\u0451 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xc\/2w\/2x\/xc2w2xlva_y5h836nxuciyr7p3e.png\">  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-316194","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=316194"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316194\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=316194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=316194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=316194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}