рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдШрд░ рдореЗрдВ рдмрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдкреНрд░рджрд░реНрд╢рди рд╣реИред
рдлрд┐рд▓рд╣рд╛рд▓, рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдЪрдПрдордПрд╕ RS232 рдореЗрдВ USB рдПрдбрд╛рдкреНрдЯрд░ рдЪрд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдбреЗрдкреНрдЯрд░ рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдиреБрдХрд╕рд╛рди рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдпрд╣ рдмреЛрд░реНрдб рдкрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд┐рдк рд╣реИ рдФрд░ рдЗрд╕ рдЪрд┐рдк рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд▓рдХ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред
рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рдЖрдпреЛрдЬрди рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рд╕рднреА рдЧрдВрднреАрд░ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдЕрдм 21 рд╡реАрдВ рд╕рджреА рд╣реИ, рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдПрдХ рдпреВрдПрд╕рдмреА рдореЙрдбреНрдпреВрд▓ рд╣реИред рдпрд╣ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдФрд░ рдпрд╣ рд▓реЗрдЦ рд╣реЛрдЧрд╛ред
рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ USB рдбрд┐рд╡рд╛рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд░реВрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЖрдо рдбрд┐рдмрдЧ рдмреЛрд░реНрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рдореЗрд░реЗ рдкрд╛рд╕ OLIMEX рдореЙрдбрд▓ LPC-P2148 рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдпрд╣ рдмреЛрд░реНрдб рд╣реИред рдмреЛрд░реНрдб рдХрд╛ рдЖрдзрд╛рд░ ARM7TDMI рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ NXP рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ LPC2148 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИред рдмреЛрд░реНрдб рдХреА рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдореНрди
рд▓рд┐рдВрдХ рдкрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ
ред рдЗрд╕ рддрд░рд╣ рд╡рд╣ рджрд┐рдЦрддреА рд╣реИред

рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХрд╛ рдЪреБрдирд╛рд╡ рдмрд┐рд▓реНрдХреБрд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдЦреБрдж рдмреЛрд░реНрдб рдкрд░ рдУрдПрд╕ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд░реНрдорд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг KEIL рд╕рдВрд╕реНрдХрд░рдг 4.23 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдХреЗрд╡рд▓ BULK рд╣рд╕реНрддрд╛рдВрддрд░рдг рдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рддрдХ рдбреЗрдЯрд╛ рдРрд░реЗ рдХреЛ рдкрдврд╝реЗрдВрдЧреЗ, рдФрд░ рд╣рдо рдПрд▓ рдИ рдбреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдП рдХрд┐ рдмреЛрд░реНрдб рд╣рдорд╛рд░реЗ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рд╣реИред
рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдордВрдЪ рдкрд░ рдЖрдЧреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХреНрд░рдо рдореЗрдВ рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВрдЧреЗред
1. рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдмреЛрд░реНрдб рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ USB рдЪреИрдирд▓ рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП USB рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рддреИрдпрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдирд╛рдирд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред
2. рдмреЛрд░реНрдб рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдмрджрд▓рдирд╛ рддрд╛рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдбрд┐рд╡рд╛рдЗрд╕ рдмрди рдЬрд╛рдП рдЬрд┐рд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
3. рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЯреЗрдореНрдкрд▓реЗрдЯ, рдПрдХ рдЦрд╛рд▓реА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЕрдкрдирд╛рдирд╛, рддрд╛рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕реЗрд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗред
4. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЪрд╛рд▓рдХ рдмрд╛рддрдЪреАрдд рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
5. рд╣рдорд╛рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрдиреЗрдХреНрдЯреЗрдб рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ред
6. рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рднрд░рдирд╛ред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рдУрдПрд╕ рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рд╣реА рдбреНрд░рд╛рдЗрд╡рд░ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред KEIL рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпреВрдПрд╕рдмреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ, рдореЗрд░реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдПрдХрддреНрд░рд┐рдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реВрдБрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдХреНрд╖рдг рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕рдВрдХреЗрддрд┐рдд рд╕реНрд░реЛрддреЛрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреЗрдВ, рдЗрди рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд╕реНрд░реЛрдд рд╣реИрдВред
1. OLIMEX LPC-P2148 рдмреЛрд░реНрдб рдореЗрдВ RTX_Memory рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдирд╛рдирд╛
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо KEIL рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд RTX_Memory рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВрдЧреЗред рдпрд╣ рдЙрджрд╛рд╣рд░рдг, рдЬрдм рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреА рддрд░рд╣ рд╡рд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдлрд░реНрдорд╡реЗрдпрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдпреВрдПрд╕рдмреА рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕рднреА рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ ARM \ Boards \ Keil \ MCB2140 \ RL \ USB \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд░рд╛рд╕реНрддреЗ рдореИрдВ рдЙрд╕ рдореБрдЦреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЗрдВрдЧрд┐рдд рдХрд░реВрдБрдЧрд╛ рдЬрд╣рд╛рдБ KEIL рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ KEIL рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рде рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рд╣реЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА рдЬрд┐рд╕реЗ рд╣рдо рдлреНрд▓реИрд╢рдореИрдЬрд┐рдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреНрд▓реИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдЪ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрднреА рддрдХ рдлреНрд▓реИрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдмреЛрд░реНрдб рдФрд░ рдЙрд╕ рдмреЛрд░реНрдб рдХреЗ рд╕рд░реНрдХрд┐рдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ KEIL рдореЙрдбрд▓ MCB2140 рд╣реИ, рддреЛ рд╣рдо D + рд▓рд╛рдЗрди рдХреЗ рд╕рд╕реНрдкреЗрдВрдбрд░ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
MCB2140 рдкрд░, рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ 3.3V рддрдХ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ LPC-P2148 рдкрд░, рдЗрд╕ рдкреБрд▓-рдЕрдк рдХреЛ рдПрдХ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдмреЛрд░реНрдб рдХреЗ
рд╕реНрдХреИрдореЗрдЯрд┐рдХреНрд╕ рдХреНрд░рдорд╢рдГ
www.olimex.com рдФрд░
www.keil.com рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рдмреЛрд░реНрдб рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдбреА + рд▓рд╛рдЗрди рдкреБрд▓-рдЕрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗ, рдЬреЛ рдХрд┐ USB_LINK LED рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
USB_Init () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, USB рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд▓рд╛рдЗрди рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред рдФрд░ рдЪреВрдВрдХрд┐ рдПрдХ рд╣реА рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдПрдХ USB_LINK LED рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ D + рд▓рд╛рдЗрди рдкреБрд▓-рдЕрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдореЗрдВ MCB2140 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдПрд▓ рдИ рдбреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рднреА рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ LED_CFG рдФрд░ LED_SUSP рд╕рдВрдХреЗрддрдХ рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рд░ рдЬрдЧрд╣ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдлреНрд▓реИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреЛрд░реНрдб рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдПрдХ рдмрд╛рд╣рд░реА рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдФрд░ рдбрд┐рд╕реНрдХ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬреЛ рдЖрдХрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рд▓рдЧрднрдЧ 25KB рд╣реЛрддреА рд╣реИ рдФрд░ readme.txt рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЛ рдкреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
2. USB рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рдВрдХреНрд░рдордгред
рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдУрдПрд╕ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмрд╛рд╣рд░реА рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рддрдереНрдп рдХрд┐ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдбреНрд░рд╛рдЗрд╡ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрд▓рд╛рд╕ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк usbdesc.c рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд╣рд╛рдВ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдХрд╛ рдорд╛рди USB_DEVICE_CLASS_STORAGE рд╣реИред
рдЗрд╕реЗ USB_DEVICE_CLASS_VENDOR_SPECIFIC рд╕реЗ рдмрджрд▓реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдмрджрд▓реЗрдВред
рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдмреЛрд░реНрдб рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЛ рдЕрдм рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдХ рдбреНрд░рд╛рдЗрд╡ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ, рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ VID рдФрд░ PID рдХреЛ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рд╣рд░реА рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд░рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓рд╛рд╕ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИред рдпрджрд┐ рдмреЛрд░реНрдб рдХреЛ рдЕрднреА рднреА рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдиреЗрдЬрд░ рдХреА рдпреВрдПрд╕рдмреА рд╢рд╛рдЦрд╛ рдореЗрдВ рдвреВрдВрдвреЗрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдУрдПрд╕ рдХреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
3. рдПрдХ рдореВрд▓ рдЪрд╛рд▓рдХ рдмрдирд╛рдПрдБред
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╕рд╣реА рдмреВрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдХреЛрдб рд╣реЛрдЧрд╛ред
рд╣рдо рд╕рдмрд╕реЗ рдиреНрдпреВрдирддрдо рддрд░реАрдХреЗ рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦреЗрдВрдЧреЗред рдХреЛрдб рд╕реНрд╡рдпрдВ рдиреЛрдЯрдкреИрдб рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Microsoft рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд┐рдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ WDK рд╕рдВрд╕реНрдХрд░рдг 7600.16385.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрджрд╛рд╣рд░рдг, рдкрд░реНрдпрд╛рд╡рд░рдг рдорд┐рд▓реЗрдЧрд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдиреВ рдореЗрдВ, рдЖрдкрдХреЛ рдбрдмреНрд▓реНрдпреВрдбреАрдХреЗ рдЕрдиреБрднрд╛рдЧ рдЦреЛрдЬрдиреЗ рдФрд░ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдПрдиреНрд╣рд╛рдВрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпреЗ рддрдерд╛рдХрдерд┐рдд рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рд╣рдореЗрдВ рдПрдХ рдХрдВрд╕реЛрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╛рдВрдЫрд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ OS рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд╣рд╛рдБ рдХреБрдЫ рдЪреИрдХ рдФрд░ рдлреНрд░реА рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд┐рдд рд╣реИрдВред рддрдерд╛рдХрдерд┐рдд рдЪреЗрдХ рдХрд┐рдП рдЧрдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛, рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ Windows XP рд╕реЗ x86 рдЪреЗрдХреНрдб рдмрд┐рд▓реНрдб рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдпрд╣ рдореБрдЭреЗ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдбреНрд░рд╛рдЗрд╡рд░ рджреЗрдЧрд╛ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреА рдФрд░ рдирдП рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдЖрдЗрдП рдПрдХ рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЙрдореНрдореАрджрд╡рд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд OSR USB-FX2 рд▓рд░реНрдирд┐рдВрдЧ рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдмреЛрд░реНрдб рд╣реИ, рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЬрд┐рд╕ рдЙрджрд╛рд╣рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ WDK рдореЗрдВ рдкрде src \ usb \ osrusbfx2 \ рдХреЗ рд╕рд╛рде рд╣реИред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИред рдмрд╕ рд╣рдореЗрдВ рдЬреЛ рдЪрд╛рд╣рд┐рдПред рдЪрд▓реЛ kmdf \ sys рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдЪрд░рдг рд╣реИрдВ рдФрд░ рдбреИрдбреАрдЬрд╝ рдореЗрдВ рд╣реИрдВред рдЖрдк osrusbfx2.htm рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдЙрджрд╛рд╣рд░рдг рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд░реВрдБрдЧрд╛ред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдПрдирдЯреА рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рдж рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рд╕реАрдзреЗ рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЕрдХреНрд╕рд░, рдмрд╕ рдПрдХ рдбрдореА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ, рдЙрддрд╛рд░рдиреЗ, рдкреАрдПрдирдкреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐ред рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдп, рдореБрдЭреЗ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╕реАрдЦрдиреА рдереАрдВ рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмреАрдПрд╕рдУрдбреА рдХреЗ рд▓рд┐рдП рдЙрдбрд╝рд╛рди рднрд░рдирд╛ рдерд╛ред рдлрд┐рд░ Microsoft рдиреЗ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдореЙрдбрд▓ рдХрд╣рд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдорд╛рдирдХ рдпрд╛ рдХреБрдЫ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЪрд╛рд▓рдХ рдХреЛ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЗрд╕рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░рд╛рд╣рдд рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ рдФрд░ рдЕрдЧрд▓рд╛ рдЪрд░рдг рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдерд╛ рдЬрд┐рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреАрд╡рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдореБрдЦреНрдп рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдврд╛рдВрдЪрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдкрд╣рд▓реЗ рдЪрд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред "X86 рдЪреЗрдХреНрдб рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ" рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ WinDDK \ 7600.16385.1 \ src \ usb \ osrusbfx2 \ kmdf \ sys \ step1 \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "cd" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдмрд┐рд▓реНрдб -ceZ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред
рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, objchk_wxp_x86 рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдирд╛рдо рдЪрдпрдирд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ), рдЬрд╣рд╛рдВ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ sys рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ INF рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЙрд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдвреВрдВрдвреЗрдВред рдЗрд╕реЗ osrusbfx2.inf рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕рдореЗрдВ VID рдФрд░ PID рдорд╛рдиреЛрдВ рдХреЛ рдЙрди рд╕рднреА рдореЗрдВ рдмрджрд▓реЗрдВ, рдЬреЛ USB рдбрд┐рд╡рд╛рдЗрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ usbdesc.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рде INF рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ WdfCoInstaller01009.dll рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрднреА рднреА рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ WDK рдХреА рдЖрдкреВрд░реНрддрд┐ рдореЗрдВ рднреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ: рдЗрдХрдЯреНрдареЗ SYS, INF, WdfCoInstaller01009.dllред
рд╣рдо рдЕрдкрдиреЗ рдмреЛрд░реНрдб рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдкрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рджреНрд╡рд╛рд░рд╛ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдиреЗрдЬрд░ рдореЗрдВ рдирдореВрдирд╛ рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрддреБрд╖реНрдЯ рд╣реИ!
рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рдФрд░ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рд╕рд╣реА рд╣реИ, рдЪрд╛рд▓рдХ рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХрд░реНрдиреЗрд▓ рдореЛрдб рдореЗрдВ, KdPrint () рдлрд╝рдВрдХреНрд╢рди рд╕реВрдЪрдирд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░рд┐рдВрдЯрдл () рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо DbgView рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣
http://technet.microsoft.com/en-us/sysinternals/bb896647 рдкрд░ Microsoft рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЪрд╛рд▓реВ рд░рдЦреЗрдВ рдФрд░ рдЖрдк рдУрдПрд╕ рдХреЗ рдХрд░реНрдиреЗрд▓ рдореЛрдб рд╕реЗ рд╕рднреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВрдЧреЗред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВред Step_1 рдХреЗ рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ DeviceEntry () рдФрд░ DeviceAdd () рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рддрд╛рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рд▓рд┐рдЦ рд╕рдХреЗ рдХрд┐ рдХрд┐рд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдмреЛрд░реНрдб рдХреЛ рдХрдиреЗрдХреНрдЯ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ, DbgView рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

4. рдХрд░реНрдиреЗрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдХреЗ рдмреАрдЪ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд░реНрдиреЗрд▓ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде), рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЬреБрдбрд╝реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рддреЛ ReadFile () рдФрд░ WriteFile () рдЬреИрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдЦреЛрд▓рдиреЗ, рдмрдВрдж рдХрд░рдиреЗ, рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╡рд╛рдкрд╕ рджреЗ рд╕рдХреЗрдВред
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ EvtDevicePrepareHardware рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ PnP рдкреНрд░рдмрдВрдзрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ D0 рдХреЗ рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓реНрдпреВрдЯреЗрдб рд╕реНрдЯреЗрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдмрд╛рдд рд╣реИ, рд╣рдордиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрдЯрдХрд╛ рджрд┐рдпрд╛, рдбреНрд░рд╛рдЗрд╡рд░ рдиреЗ рдмреВрдЯ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЗрд╕ рдЖрдпреЛрдЬрди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдпреВрдПрд╕рдмреА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, DriverEntry рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpPowerCallbacks);
pnpPowerCallbacks.EvtDevicePrepareHardware = EvtDevicePrepareHardware;
WdfDeviceInitSetPnpPowerEventCallbacks(DeviceInit, &pnpPowerCallbacks);
рджреВрд╕рд░рд╛ рд╡рд╛рд▓рд╛ред рдпрджрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рдЕрдиреБрдЪреНрдЫреЗрдж рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛрдб рд╕реЗ WdfDeviceCreate рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░рдВрддрд░ WDF_NO_OBJECT_ATTRIBUTES рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рддрдерд╛рдХрдерд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрджрд░реНрдн рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдпрд╣ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд╣реАрдВ рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмрдлрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдбреНрд░рд╛рдЗрд╡рд░ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рдорд╛рди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рдбреНрд░рд╛рдЗрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рдВрджрд░реНрдн рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХрд░рдг рдХрд░реЗрдВрдЧреЗ, рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрд░рд╛рдореАрдЯрд░, WdfDeviceCreate рдХреЗ рдЖрдЧреЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:
typedef struct _DEVICE_CONTEXT {
WDFUSBDEVICE UsbDevice;
WDFUSBINTERFACE UsbInterface;
WDFUSBPIPE BulkReadPipe;
WDFUSBPIPE BulkWritePipe;
} DEVICE_CONTEXT, *PDEVICE_CONTEXT;
WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(DEVICE_CONTEXT, GetDeviceContext)
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, DEVICE_CONTEXT);
рддреАрд╕рд░рд╛ред рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдореЛрдб рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдирд╛рдо рдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ CreateFile рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЦреБрд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдм рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЙрддреНрдкрдиреНрди GUID рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдореЗрдВ рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА GUID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рддреЛ, рдпрд╣рд╛рдБ рд╣рдорд╛рд░рд╛ GUID рд╣реИ рдФрд░ рдХреЛрдб рдЗрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
DEFINE_GUID(GUID_DEVINTERFACE_OSRUSBFX2, // Generated using guidgen.exe
0x573e8c73, 0xcb4, 0x4471, 0xa1, 0xbf, 0xfa, 0xb2, 0x6c, 0x31, 0xd3, 0x84);
// {573E8C73-0CB4-4471-A1BF-FAB26C31D384}
status = WdfDeviceCreateDeviceInterface(device,
(LPGUID) &GUID_DEVINTERFACE_OSRUSBFX2,
NULL);// Reference String
рдЖрдЦрд┐рд░реА рд╡рд╛рд▓рд╛ред рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрдВрдЬреАрдХреГрдд рдХреА рдЬреЛ EvtDevicePrepareHardware рдЗрд╡реЗрдВрдЯ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреА рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдкрд╛рда рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдо рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо USB рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╡рд╛рдВрдЫрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ BULK рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЪреИрдирд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ DbgView рдореЗрдВ рдЪреИрдирд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдЬреЛрдбрд╝рд╛ред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╛рди рдорд╛рдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ usbdesc.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВред
рддреЛ, рдЕрдм рдЖрдк рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдЕрдм рдХреЗрд╡рд▓ рдмреВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ рд╣реИред

5. рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм рд╣рдо рдПрдХ рд╕рд░рд▓ рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдЗрд╕ рд╕рдордп, рд╣рдорд╛рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЙрд╕реЗ рдЦреБрдж рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдореМрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПред
рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрд▓рдиреЗ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп WriteFile рдФрд░ ReadFile рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА DeviceIoControl рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдкрд░реЗ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ CreateFile рдкрд░ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдПрдХ GUID рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реИред рдореИрдВ рдПрдХ GUID рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ WDK рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд▓рд┐рдпрд╛ рд╣реИред GetDevicePath рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ GUID рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рдкреВрд░рд╛ рдкрде рд▓реМрдЯрд╛рддреА рд╣реИред
рдлрд╛рдЗрд▓ рдЦреБрд▓реА рд╣реИред рдХреБрдЫ рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рджрд╕ рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝реЗрдЧрд╛ред
рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рд╣рдорд╛рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдкрд╛рд╕ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛрдб рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рддрд░реНрдХ EvtDevicePrepareHardware рдХреЗ рд╕рд╛рде рдЬреИрд╕рд╛ рд╣реИред рд╣рдореЗрдВ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдкрдврд╝рдиреЗ рдпрд╛ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ EvtDeviceAdd рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред I / O рдХрддрд╛рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЙрд╕рдХреЗ рдлрд╝реАрд▓реНрдбреНрд╕ рднрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрдЯреИрдЪ рдХрд░рдХреЗ рдмрдирд╛рдПрдВред рдЖрдЗрдП рдЬрд╛рдиреЗ:
WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&ioQueueConfig,
WdfIoQueueDispatchParallel);
ioQueueConfig.EvtIoRead = EvtIoRead;
ioQueueConfig.EvtIoWrite = EvtIoWrite;
status = WdfIoQueueCreate(device,
&ioQueueConfig,
WDF_NO_OBJECT_ATTRIBUTES,
WDF_NO_HANDLE);
рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореИрдВ рд╕рд┐рд░реНрдл DbgView рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯрдмреНрд╕ рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдкрдврд╝рддреЗ рд╕рдордп 10 рдмрд╛рдЗрдЯ рджреЗрддрд╛ рд╣реВрдВред рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЙрдирдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдореГрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЪреВрдБрдХрд┐ рдмрдлрд╝рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рдХрд░реНрдиреЗрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдХреЗ рдмреАрдЪ рдЪрд▓рддрд╛ рд╣реИред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ DbgView рд╡рд┐рдВрдбреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдкреИрдХреЗрдЬ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

6. рдЪрд╛рд▓рдХ рдХреЛ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдирд╛ред
рдЗрд╕рд▓рд┐рдП рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдПрдВред рдлрд┐рд▓рд╣рд╛рд▓, рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╡рд╣ рд╕рдм рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рд╡рд╣ рдПрдХ рдРрд╕рд╛ рдХреЛрдб рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдХреЛрдб рдЬреЛ рд░реАрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдореЗрдВ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╣реБрдд рдХрдо рдХреИрд╕реЗ рдмрджрд▓ рдЧрдИ рд╣реИрдВред рд╣рдо рдЕрднреА рдЕрдкрдиреЗ рдмрдлрд╝рд░реНрд╕ рдХреЛ USB рдХрд░реНрдиреЗрд▓ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреАрд╕реА рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрднреА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЬрд╡рд╛рдм рджреЗред
рдЪрд▓реЛ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдЗрд╡реЗрдВрдЯ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдб рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрджрд┐ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдмрд╛рдЗрдЯ 0x01 рд╣реИ, рддреЛ LED_1 рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ 0x02 рд╣реИ, рддреЛ LED_2 рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдФрд░ рдХрдм рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рддреБрд░рдВрдд рдЗрд╕реЗ рд╕реЗ 10 рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рднреА рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдкреИрдХреЗрдЯ рдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдВрдЪрд░рдг рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВред рдпрд╣ USB рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЙрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдбреЗрдЯрд╛ рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ IN рд▓реЗрди-рджреЗрди рдХрд░ рд╕рдХреЗред рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред MSC_BulkOut () рдХреА рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓реЗрдВ:
void MSC_BulkOut (void) {
BulkLen = USB_ReadEP(MSC_EP_OUT, BulkBuf);
LED_Off( LED_RD | LED_WR );
if( BulkBuf[ 0 ] == 0x01 )
{
USB_WriteEP( MSC_EP_IN, (unsigned char*)aBuff_1, sizeof( aBuff_1 ) );
LED_On( LED_RD );
}
else
if( BulkBuf[ 0 ] == 0x02 )
{
USB_WriteEP( MSC_EP_IN, (unsigned char*)aBuff_2, sizeof( aBuff_1 ) );
LED_On( LED_WR );
}
}
рдФрд░ MSC_BulkIn () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рдо рд╕рднреА рдХреЛрдб рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЧрдП рдкреВрд░реЗ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдоред
рдЙрд╕реА рд╕рдордп, рдмреЛрд░реНрдб рд╕реНрд╡рдпрдВ рджреЛ рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдЭрдкрдХрд╛рддрд╛ рд╣реИред

рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╣рдордиреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрд╛ рд╣реИред рдпрджрд┐ рдЖрдк 4k рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк 800 Kb / s рдХреА рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбреНрд░рд╛рдЗрд╡рд░ рдкрд╛рда рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 250 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдореВрд▓ рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдбрдмреНрд▓реНрдпреВрдбреАрдХреЗ рдореЗрдВ рдЬрд░реВрд░ рдкрдврд╝реЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдм рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрдврд╝рдирд╛ рдХрд╛рдлреА рд╕реБрдЦрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЬрд┐рдореА рд╣реИрдВред
рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╕рдВрдЧреНрд░рд╣
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИредрд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд╛рдорд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ "рдЙрд▓реНрд▓реВ рдХреЛ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП" рдЧрд╛рдЗрдб рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд┐рдХрд▓рд╛, рдФрд░ рдХреЛрдИ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдЧрд╛ред