рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЦреБрдж рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рдореЗрдВ рддреИрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╕рдВрдмрдВрдз рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЦреБрдж рдПрдХ рд╕реА ++ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рд░реЗрдбрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рднреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдмрд╕ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рднреА рдХреЛ рдпрд╣ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд░реЗрдб рдХреЗ рддрд╣рдд рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреЙрд╕ (рдПрдХ рдорд╣рд╛рди рд▓рд┐рдирдХреНрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ) рд╕реЗ рдкреВрдЫрд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рдХрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ рдЙрдирдХреЗ рд╢рдмреНрджреЛрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдореИрдВ рд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд╕рднреА рдЬреНрдЮрд╛рди рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирддрд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рджрд░реНрджрдирд╛рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛: "рддреЛ ... рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реВрдВ?" рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рддрд┐рд░рдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рдХреБрдЫ рдирдпрд╛ рдорд┐рд▓реЗрдЧрд╛ (рдЖрдк рдЖрдЧреЗ рдкрд╛рдПрдВрдЧреЗ)ред рдФрд░ рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП, рдореИрдВ рджреЛ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд┐ Redd рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдШреЛрд╖рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ: рд╡рд┐рдХрд╛рд╕ рдФрд░ рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдо рд╢реНрд░рдо рд▓рд╛рдЧрддред

рдЪрдХреНрд░ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
- Redd рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдХрд╛ рд╡рд┐рдХрд╛рд╕, рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдореЛрд░реА рдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ
- Redd рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдХрд╛ рд╡рд┐рдХрд╛рд╕ред рднрд╛рдЧ 2. рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб
- FPGA рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рджреВрд░рд╕реНрде рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЧреИрд░-Microsoft рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЯреВрд▓ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ред рдпрд╣рд╛рдВ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХреИрд╕реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ 2019 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 2015 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛)
docs.microsoft.com/ru-ru/cpp/linux/download-install-and-setup- the-linux-development-workload? view = vs-2019рдФрд░ рдпрд╣рд╛рдБ
рдХрд╛рдо рдХрд╛
рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ ред
рдареАрдХ рд╣реИ, рд╡рд╣рд╛рдВ рдЖрдк рдЯреИрдм, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд╕рднреА рд░реВрд╕реА рдореЗрдВ рдШреВрдо рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рд╣! рдЖрдЗрдП FT2232H рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдЧреНрд░рд╣реАрдд рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Redd рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ FPGA рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдЪреИрдирд▓ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛рд░реНрдп рдХрд╛ рдЖрдзрд╛рд░ рдмрдиреЗрдЧрд╛ред рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдЦреЛрд▓реЗрдВ, "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ" рдЪреБрдиреЗрдВред рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ, "рднрд╛рд╖рд╛ - C ++", "рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо - рд▓рд┐рдирдХреНрд╕", "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ - рдХрдВрд╕реЛрд▓" рдЪреБрдиреЗрдВред рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИред рд╣рдореЗрдВ рдЬреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рд╣рдо "рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ:

рдЪрд▓реЛ рдЗрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, SimpleConsole рдХрд╣рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдПрдХ рдРрд╕рд╛ рд╕реНрдкрд╛рд░реНрдЯрди рд╕реЛрд░реНрд╕ рдХреЛрдб рдмрдирд╛рдпрд╛ рд╣реИ:
#include <cstdio> int main() { printf("hello from SimpleConsole!\n"); return 0; }
рдЪрд▓реЛ рдЗрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдХреЛрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдмрд╕ рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░ рдПрдХ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрджреНрдпрддрди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рд╕рдВрдХрд▓рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░рд┐рдореЛрдЯ рдорд╢реАрди рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдПред
рд╣рдо Redd рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рдУрд░ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ рдХреБрдЫ рднреА - рдЗрд╕ рдЧреБрдкреНрдд рд╕реНрдерд╛рди рдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ, рддреЛ рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛):


рджрд░рдЕрд╕рд▓, рдЖрдк рдПрдХ рд╣реА рд▓рд╛рдЗрди рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рддреБрдЪреНрдЫ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ - FT2232 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдбреНрд░рд╛рдЗрд╡рд░ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡рд╣рд╛рдБ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реА рд╣реИ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд┐рд░реНрджреЗрд╢ рднреАред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддреЗ рд╣реИрдВ:
FTDI D2XX drivers
рд╡рд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдЪ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдмреБрд░рд╛ рдерд╛ред рдореЗрд░рд╛ рдкреНрд░рджрд╛рддрд╛ RosKomNadzor рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП FTDI рд╡реЗрдмрд╕рд╛рдЗрдЯ (рд╕рд╛рде рд╣реА рд░рд┐рдкреНрд░реЗрдЬрд╝, 7zip рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдСрд╕реНрдЯреНрд░реЛрдирд▓рд╛рдЗрди) рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред ILV, рдХрдердиреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдпрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдЗрди рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реНрд╕ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдореБрдбрд╝рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХреА, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреБрд▓рд┐рд╕ рдХреЛ рднреАред рд╡реЗ рдмрд╣реБрдд рд╣реА рдмреЗрдмрд╛рдХ рд╣реИрдВред ILV рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ ILV рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдЕрдЧрд▓реЗ рд╕рджрд╕реНрдпрддрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рджрд╛рддрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдмреНрд▓реЙрдХ рднреА рдХрд░реЗрдЧрд╛ред рд╕рддрд░реНрдХ рди рд░рд╣реЗрдВ, рдмрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░реЗрдВред рдФрд░ рдлрд┐рд░ рд╡реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реИрдВ рдХрд┐ рдорд┐рд╕рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рджрд╢рдХреЛрдВ рд╕реЗ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИ ... рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдирд╡рдВрдмрд░ рдореЗрдВ ILV рдХреЗ рд╕рд╛рде рдкрддреНрд░рд╛рдЪрд╛рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдЕрдм рдпрд╣ рдЬреВрди рд╣реИ, рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ ... рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛ рдЧрдпрд╛ред
рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рд░реЗрдбреАрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
AN_220 FTDI рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧрд╛рдЗрдб рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдЖрдк YouTube рдкрд░ FTDI рдЪрд┐рдкреНрд╕ рджреНрд╡рд╛рд░рд╛
рд▓рд┐рдирдХреНрд╕ d2xx рдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧрд╛рдЗрдб рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдбрд╛рдЙрдирд▓реЛрдб рдкреЗрдЬ рдкрд░ рднреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, FTDI рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред рджрд░рдЕрд╕рд▓, рдпрджрд┐ рдЖрдкрдХреЛ рд░реЗрдбреА-рдореЗрдб рд░реЗрдбреА рдкреИрдХреЗрдЬ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдЦреБрдж рд╣реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдирд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдбрд╛рд▓реЗрдВ рд╕реНрд▓рд╛рдЗрд╕
\ рд░рд┐рд▓реАрдЬрд╝ \ рдЙрджрд╛рд╣рд░рдг \ EEPROM \ read ред
рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд, рдЬрд╣рд╛рдВ рдбрд┐рд╡рд╛рдЗрд╕ рдЦреБрд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓реЗрдмрд▓реЛрдВ рд╕реЗ рдирдлрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдо рдЬрд▓реНрджреА рд╕реЗ 10 рдорд┐рдирдЯ рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрд╕ рд▓реЗрдмрд▓ рдХреЛ рдЦреАрдВрдЪ рджреВрдВрдЧрд╛ рдЬреЛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдерд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:
#include <cstdio> #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include "ftd2xx.h" int main(int argc, char* argv[]) { printf("hello from ConsoleApplication1!\n"); FT_STATUS ftStatus; FT_HANDLE ftHandle0; int iport; static FT_PROGRAM_DATA Data; static FT_DEVICE ftDevice; DWORD libraryVersion = 0; int retCode = 0; ftStatus = FT_GetLibraryVersion(&libraryVersion); if (ftStatus == FT_OK) { printf("Library version = 0x%x\n", (unsigned int)libraryVersion); } else { printf("Error reading library version.\n"); return 1; } if (argc > 1) { sscanf(argv[1], "%d", &iport); } else { iport = 0; } printf("Opening port %d\n", iport); ftStatus = FT_Open(iport, &ftHandle0); if (ftStatus != FT_OK) { /* This can fail if the ftdi_sio driver is loaded use lsmod to check this and rmmod ftdi_sio to remove also rmmod usbserial */ printf("FT_Open(%d) failed\n", iport); return 1; } printf("FT_Open succeeded. Handle is %p\n", ftHandle0); ftStatus = FT_GetDeviceInfo(ftHandle0, &ftDevice, NULL, NULL, NULL, NULL); if (ftStatus != FT_OK) { printf("FT_GetDeviceType FAILED!\n"); retCode = 1; goto exit; } printf("FT_GetDeviceInfo succeeded. Device is type %d.\n", (int)ftDevice); exit: return 0; }
рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдкрд░реНрдпрд╛рдкреНрдд рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВред
1>main.cpp 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(5,20): error : ftd2xx.h: 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(5,20): error : #include "ftd2xx.h" 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(5,20): error : ^ 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(5,20): error : compilation terminated.
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЖрдЧреЗ рд░рдЦрд╛! рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ, рд╡реЗ рдкрд╛рд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдзрд╛рдирд╕рднрд╛ рджреВрд░ рд╕реЗ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рджреВрд░рд╕реНрде рдорд╢реАрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
main.cpp рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореИрдВ рдХреЗрд╡рд▓
ftd2xx.h рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ , рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА
WinTypes.h рдХреЛ рдкрд╛рд░рдЧрдорди рдореЗрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ ред рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред


рдЕрдм рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИред
1> 1>D:\Work\SimpleConsole\SimpleConsole\obj\x64\Debug\main.o : error : In function `main': 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(18): error : undefined reference to `FT_GetLibraryVersion' 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(37): error : undefined reference to `FT_Open' 1>D:\Work\SimpleConsole\SimpleConsole\main.cpp(55): error : undefined reference to `FT_GetDeviceInfo' 1>collect2 : error : ld returned 1 exit status
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ
рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд▓рд┐рдВрдХрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:


рдЕрдм рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓ рд░рд╣реА рд╣реИред рд╣рдордиреЗ рдЖрдЦрд┐рд░реА рд▓рд╛рдЗрди рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рдпрд╛, рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рда рджреЗрдЦрддреЗ рд╣реИрдВ:
hello from ConsoleApplication1! Library version = 0x10408 Opening port 0 FT_Open succeeded. Handle is 0x555555768540 FT_GetDeviceInfo succeeded. Device is type 10.
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ - рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рдЦреЛрд▓рд╛, рддреЛ рдХреБрдЫ рдЙрдкрдХрд░рдг рднреА рдорд┐рд▓реЗред рдЯрд╛рдЗрдк 10 рдХреНрдпрд╛ рд╣реИ? FTDI рд╕реЗ рд╢реАрд░реНрд╖рдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ:
enum { FT_DEVICE_BM, FT_DEVICE_AM, FT_DEVICE_100AX, FT_DEVICE_UNKNOWN, FT_DEVICE_2232C, FT_DEVICE_232R, FT_DEVICE_2232H, FT_DEVICE_4232H, FT_DEVICE_232H, FT_DEVICE_X_SERIES, FT_DEVICE_4222H_0, FT_DEVICE_4222H_1_2, FT_DEVICE_4222H_3, FT_DEVICE_4222_PROG, };
рд╣рдо рдЙрдВрдЧрд▓реА рдХреЛ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдЧрд┐рдирддреЗ рд╣реИрдВ - рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ FT4222H рд╣реИред рд╣рд╛рдВ, Redd рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ FTDI рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВред рдЕрдм рдореИрдВ рдмрд╕ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдореЗрдВ
FT_Open () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдП рдЧрдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ
рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдбреАрдмрдЧрд┐рдВрдЧ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯ рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдо рддреМрд░ рдкрд░, рдпрд╣ рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рдХреЗ "рд░реЗрдбрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ" рд╣рд░ рдЬрдЧрд╣ рдХрд╣рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рд╕рд░реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдпрдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЖрдорддреМрд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд╣реЛрдЧрд╛ред рдЗрд╕ рдкрд░ рдКрд░реНрдЬрд╛ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЕрдЧрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрд╡реЗрджрди рд╣реИрдВред
рдареАрдХред рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Microsoft рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реЗ рдмреЙрд╕ рдиреЗ рдореБрдЭреЗ рд╕рд┐рдЦрд╛рдпрд╛ рдерд╛ред
рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рдкрд┐рдЫрд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди рджреВрд░рд╕реНрде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИред рдЖрдк рдПрдХ рд╣рдЬрд╛рд░ рдФрд░ рдПрдХ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреЗрд╡рд▓ рд╕рдорд╛рдкреНрдд рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреВрд░рд╕реНрде рдорд╢реАрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдиреЙрдпрдб рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЗрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдирдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ рдХрд┐ Redd рдбреНрд░рд╛рдЗрд╡ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдирд╣реАрдВ рдмрд╣рддреА рд╣реИ, рдпрд╣ рднреА рдкреНрд░рддреНрдпреЗрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдирд┐рдЪреНрдЫрд╛ рд╣реИред рдЕрдЧрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рд╣реИрдВ ... рдареАрдХ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ, рдмрд╣реБрдд рдЕрдзрд┐рдХред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реНрдерд╛рдиреАрдп рдЕрд╕реЗрдВрдмрд▓реА рддрдХрдиреАрдХ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд▓реЛрдХрд▓ рдорд╢реАрди рдкрд░ Oracle рд╕реЗ VirtualBox рдкреНрд░реЛрдЧреНрд░рд╛рдо рд░рдЦрд╛ред рдпрджрд┐ рдХреЛрдИ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ (рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдлреНрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрд╛рдиреВрдиреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ), рдПрдХ рдЕрд▓рдЧ рднреМрддрд┐рдХ рдорд╢реАрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рд▓рд┐рдирдХреНрд╕ рдбрд╛рд▓реЗрдВред рдХреМрди рд╕рд╛? рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдореИрдВ рд▓рдЧрднрдЧ рдПрдХ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред рдЗрд╕рд▓рд┐рдП, рдмреЙрд╕ рдиреЗ рдореБрдЭрд╕реЗ рдХрд╣рд╛ рдХрд┐ рдЖрдкрдХреЛ рдбреЗрдмрд┐рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдбреЗрдмрд┐рдпрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдЖрдк рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ "рдХреНрдпреЛрдВ рдирд╣реАрдВ?")ред рдХрдо рд╕реЗ рдХрдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реВрдВрдЧрд╛ред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рджреЛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ:
- рдпрджрд┐, рдПрдХ рдЖрджреЗрд╢ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рд╡реЗ рд╣рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реВрдбреЛ рдЬрд╛рджреВ рдХрд╛ рдЬрд╛рджреВ рдЬреЛрдбрд╝рдирд╛ред
- рдЕрдЧрд░ рдХрд┐рд╕реА рдЖрджреЗрд╢ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рджреВ рдХреА рд╡рд░реНрддрдиреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ apt-get install <рд▓рд╛рдкрддрд╛ рдЪреАрдЬ> ред
So. рд╣рдордиреЗ рд╕рд┐рд░реНрдл OS рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рддреБрд░рдВрдд G ++ рдХрдВрдкрд╛рдЗрд▓рд░, рд╕рд╛рде рд╣реА gdb рдбреАрдмрдЧрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ C ++ рд╕рдорд░реНрдерди рдХреЛ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реЗрдВред рдХреИрд╕реЗ? рдЗрд╕рд▓рд┐рдП рдирд┐рдпрдо 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
apt-get install рдЬреА ++
apt-get install gdbрдХреНрдпрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛? рд╡рд╛рд╣! рдирд┐рдпрдо 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрд╣рд░рд╛рдПрдВ:
sudo apt-get install рдЬреА ++
sudo apt-get install рдЬреАрдбреАрдмреАрдЕрдм рд╣рдо рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рд╣рдо рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ:
рдЧреНрд░рд╣рдг рдЖрдИрдбреАрдИрд╣рдореЗрдВ eclipse.org рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд╣рдо C / C ++ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдвреВрдВрдврддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВ, рдХрд╣реЗрдВ, рдШрд░ рдореЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдИ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдмрд╕ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╕ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╣рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВ:

рд╣рдо рдПрдХ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА FPGAs рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧреНрд░рд╣рдг рдХреНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдкрд░рд┐рдЪрд┐рдд рдЪреАрдЬреЗрдВ рд▓рдЧрднрдЧ рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рд╣реИрдВред рд╣рдо рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкрд░рд┐рдЪрд┐рдд рдЪреАрдЬреЛрдВ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдПрдХ рд╕рдлрд▓рддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛, рджреВрд╕рд░рд╛ рдПрдХ рдореГрдд рдЕрдВрдд рддрдХред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкрде рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд╛рд▓рди рдХрд░реЗрдВ:



рд╣рдордиреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЕрдЪреНрдЫрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, GDB рдЧреБрдгреЛрдВ рдкрд░ рдЬрд╛рдПрдВ:

рдХрдиреЗрдХреНрд╢рди рд╕рдореВрд╣ рдореЗрдВ рдЯрд╛рдЗрдк C / C ++ рджреВрд░рд╕реНрде рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ, рдирдпрд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

SSH рдЬреИрд╕рд╛ рдХрдиреЗрдХреНрд╢рди рдЪреБрдиреЗрдВ:

рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЗрдВ рдмрджрд▓рдХрд░ рдХрдиреЗрдХреНрд╢рди рдЧреБрдг рднрд░рддреЗ рд╣реИрдВ:

рджрд░рдЕрд╕рд▓, рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╕реНрд╡рд╛рдЧрдд рдкрд╛рда рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИ, рд╣рдо рдХреЛрдб рдХреЛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг (рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдерд╛) рд╕реЗ рдпрд╣рд╛рдБ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп usr / рд╕реНрдерд╛рдиреАрдп / рдХрд╛рдордЧрд╛рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╣ рд░реАрдбрдореА рд╣реИ, рд╕рд╛рде рд╣реА рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП AN220 рдФрд░ YouTube рд╡реАрдбрд┐рдпреЛ, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред
рдЗрд╕ рд╕рдм рддреИрдпрд╛рд░реА рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд░рд┐рдЪрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рдХрдо рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд╣реИред
рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм, рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рд░рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдХреНрд░реЗрдЯрд░рд┐рд╕ рдкрд░рд┐рдмрд╕, рдореИрдВ рдЗрд╕реЗ рдЪреБрдиреВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХрд┐ рди рдХреЗрд╡рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ, рдмрд▓реНрдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА рднреА рд╡рд╣рд╛рдВ рджреВрд░рд╕реНрде рд╣реИред
рдПрдлрдкреАрдЬреАрдП рдПрдлрдЯреА 2232 рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐ рдорд╛рдк рд▓рд┐рдЦрддрд╛ рд╣реИ
рдЦреИрд░ рдХреНрдпрд╛ред рдЪрд▓реЛ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдзрд┐рдЧреНрд░рд╣рд┐рдд рдХреМрд╢рд▓ рдХреЛ рдареАрдХ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдмрд╣реБрдд рдЧрдВрднреАрд░ рдХреБрдЫ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╣рд░ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдердХрд╛ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдлрдЯреАрдкреАрдП рдХреЛ рдПрдлрдЯреАрдПрдирдПрдП рдХреЛ рдПрдлрдЯреА 2232 рдПрдЪ рдЪрд┐рдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕ рдЕрдзрд┐рдХрддрдо рдЧрддрд┐ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рджреЛрдиреЛрдВ рддрд░рдл рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЦреБрдж рдХреЛ рд╣рдореЗрдВ рдЪреИрдирд▓ рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░ FPGA рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
AN_130 FT2232H рдПрдХ FT245 рд╢реИрд▓реА рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлреАрдлреЛ рдореЛрдб рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдЗрд╕ рдореЛрдб (рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлреАрдлреЛ) рдореЗрдВ рдареАрдХ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛ рд╡рд┐рд╡рд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рд╡реЗ рдЗрд╕ рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдордп рдЖрд░реЗрдЦ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИрдВ, рдЬрд┐рдирд╕реЗ рд╣рдо рдкреНрд░реЗрд░рдгрд╛ рд▓реЗрдВрдЧреЗред
So. рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреАрдлреЛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдЖрдПрдЧрд╛? рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА, рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ 1 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рд▓рдЧреЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИрдВрдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдмрдлрд░ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред рдЬрдмрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдбреЗрдЯрд╛ USB рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЪреИрдирд▓ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕реА makeshift рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

So. рдЬрдм FIFO рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ RXF рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рд╣рдореЗрдВ рдкрд╣рд▓реЗ OE рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдбреНрд░реЙрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдШрдбрд╝реА рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдкрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдпрд╣ рд╡рд┐рд╡рд░рдг рд╕реЗ рдЖрд░реЗрдЦ рд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдЪрд┐рддреНрд░ рд╕реЗ рд╣реА)ред рд╣рдореЗрдВ рдмрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдореЗрдВ рдХрдо рдЖрд░рдбреА рд╕рд┐рдЧреНрдирд▓ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рд╕реНрд╡рд╛рдЧрдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕рд▓рд┐рдП - рдкреВрд░реЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдПред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ RXF рд▓рд╛рдЗрди рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ OE рдФрд░ RD рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЖрдЬ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЧрддрд┐ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП, FPGA рдкрд░ FT2232H рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВред рддреЛ рдареАрдХ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдкрддрд┐рдд рдСрдЯреЛрдореЗрдЯрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рддреИрдпрд╛рд░реА рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ SystemVerilog рдлрд╝рд╛рдЗрд▓ рдпреБрдХреНрдд рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:
module JustRead( input logic clk, input logic rxf_n, output logic oe_n, output logic rd_n ); enum {IDLE,TRANSFER} state = IDLE; always @ (posedge clk) begin oe_n <= 1; rd_n <= 1; case (state) IDLE: begin if (rxf_n == 0) begin oe_n <= 0; state <= TRANSFER; end end TRANSFER: begin if (rxf_n == 0) begin oe_n <= 0; rd_n <= 0; end else begin state <= IDLE; end end endcase end endmodule
рдорд╢реАрди рдореЗрдВ рджреЛ рд░рд╛рдЬреНрдп рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдУрдИ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдХрд┐ рдпрд╣ рдШрдбрд╝реА рдХреА рдирдмреНрдЬ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рддрдХ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
module JustReadTB( output logic clk, output logic rxf_n, input logic oe_n, input logic rd_n ); JustRead dut ( .clk, .rxf_n, .oe_n, .rd_n ); always begin clk = 1; #16; clk = 0; #16; end initial begin rxf_n = 1; #120; rxf_n = 0; #120; rxf_n = 1; end endmodule
рдореИрдВрдиреЗ рдЬреЛ рд╕рдордп рд▓рд┐рдпрд╛ рд╡рд╣ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрд╣ рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рд╣реИ рдЬреЛ рдШрдбрд╝реА рд╕рд┐рдЧреНрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдордп рдЖрд░реЗрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдкрд╣рд▓реЗ рд╕рдиреНрдирд┐рдХрдЯрди рдореЗрдВ, рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд╡реИрд╕реЗ рднреА рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ FPGA рдкреИрд░реЛрдВ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рднреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ (* .QSF рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдФрд░ рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд░реЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд╡рд╕реАрдп рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рдордп рдХреА рдмрдЪрдд рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ)ред

рд╣рдо рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рднрд░рддреЗ рд╣реИрдВ, рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХреА рд╢рдХреНрддрд┐ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЕрдм рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд▓рдЯрдХрд╛рдПрдЧрд╛ рдирд╣реАрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдореИрдВрдиреЗ рджреЛ рдХрд╛рд░реНрдп рдХрд┐рдПред рдкрд╣рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИ рдФрд░ рдЦреЛрд▓рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдХреБрдЫ рд▓рд┐рдпрд╛, рдореИрдВрдиреЗ
AN130 рд╕реЗ рдХреБрдЫ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛:
FT_HANDLE OpenFT2232H() { FT_HANDLE ftHandle0; static FT_DEVICE ftDevice; // int nDevice = 0; while (true) { // if (FT_Open(nDevice, &ftHandle0) != FT_OK) { // , return 0; } // ? if (FT_GetDeviceInfo(ftHandle0, &ftDevice, NULL, NULL, NULL, NULL) == FT_OK) { // , if (ftDevice == FT_DEVICE_2232H) { // , AN130 FT_SetBitMode(ftHandle0, 0xff, 0x00); usleep(1000000); //Sync FIFO mode FT_SetBitMode(ftHandle0, 0xff, 0x40); FT_SetLatencyTimer(ftHandle0, 2); FT_SetUSBParameters(ftHandle0, maxBlockSize, maxBlockSize); return ftHandle0; } } // FT_Close(ftHandle0); // nDevice += 1; } }
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рдПрдХ рдкреНрд░рд╢рдВрд╕рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдЧрддрд┐ рдорд╛рдк рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛, рд▓рдЧрд╛рддрд╛рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ Win32 рдПрдкреАрдЖрдИ рд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж рдЖрдк рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рджрд┐рди рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИред
const int maxBlockSize = 0x100000; uint8_t buf[maxBlockSize]; тАж // BlockSize , 1 double TestSpeed(FT_HANDLE ftHandle0,int totalSize, int blockSize) { if (blockSize > maxBlockSize) { return -1; } DWORD dwWrittenTotal = 0; timespec before; clock_gettime(CLOCK_REALTIME, &before); for (int i = 0; i < totalSize; i += blockSize) { DWORD dwWritten; FT_Write(ftHandle0, buf, blockSize, &dwWritten); // dwWrittenTotal += dwWritten; } timespec after; clock_gettime(CLOCK_REALTIME, &after); if (dwWrittenTotal < (DWORD)totalSize) { return -2; } // uint64_t nsBefore = before.tv_nsec; uint64_t nsAfter = after.tv_nsec; // nsAfter += (after.tv_sec - before.tv_sec) * 1000000000; // nsAfter -= nsBefore; // double res = ((double)nsAfter)/((double)1000000000); // - return ((double)dwWrittenTotal) / res; }
рдЦреИрд░, рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛:
int main(int argc, char* argv[]) { FT_HANDLE ftHandle0 = OpenFT2232H(); if (ftHandle0 == 0) { printf("Cannot open device\n"); return -1; } const int totalSize = 0x100000; static const int blockSizes[] = { 0x10,0x20,0x40,0x80,0x100,0x200,0x400,0x800,0x1000,0x2000, 0x4000,0x8000,0x10000,0x20000,0x40000,0x80000,0 }; for (int i = 0; blockSizes[i] != 0; i++) { double speed = TestSpeed(ftHandle0, totalSize, blockSizes[i]); printf("%d,%d\n", blockSizes[i], (int)(speed/1000.)); int stop = 0; } // , FT_Close(ftHandle0); return 0; }
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпреВрдПрд╕рдмреА рдореЗрдВ, рдЧрддрд┐ рджреГрдврд╝рддрд╛ рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВред рд░реИрдЦрд┐рдХ рд╕рдВрд╕реЗрдЪрди рдХреА рд╢рд╛рдпрдж рд╣реА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХреА рд╣реИред рдореИрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдмрд╛рдЗрдЯреНрд╕ рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддреЗ рд╣реИрдВ, рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдВ рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдПрдХ рдЙрдЪрд┐рдд рд╕рдордЭреМрддрд╛ рд╣реИред рд╣рдореЗрдВ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ:
16,59 32,110 64,237 128,490 256,932 512,1974 1024,3760 2048,5594 4096,10729 8192,16109 16384,20170 32768,24248 65536,26664 131072,28583 262144,29370 524288,29832
рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ .csv рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЧрддрд┐ рдмрдирд╛рдо рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред

рд╕реАрдорд╛ 30 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрддрдо 52 рдПрдордмреА / рдПрд╕ рддрдХред рд╢рд╛рдпрдж рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рддреЗрдЬреА рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдардХреЛрдВ рдкрд░ рдЫреЛрдбрд╝ рджреЗрдВред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓реА рд╣реИ рдФрд░ FPGA рдХреЛ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдПрдХрд▓ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдЬрдм рд▓реЗрдЦ
рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
AN_165 рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлреАрдлреЛ рдореЛрдб рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдЧрддрд┐ 35 рдПрдордмреА / рдПрд╕ рдереАред рдпрд╣реА рд╣реИ, рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ - рдПрдХ рджрд┐рдП рдЧрдП рдЖрдХрд╛рд░ рддрдХред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╡рд╣рд╛рдБ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдо рд░реЗрдб рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХреЗ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ (рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рд░рдгрдиреАрддрд┐рдпреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдПред рд╣рдордиреЗ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреМрд╢рд▓ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХрд╛ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдлрдкреАрдЬреАрдП рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдм рдХреБрдЫ рднреА рд╣рдореЗрдВ рд╕реАрдкреАрдпреВ рд╕реЗ FPGA рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВрдиреЗ рдЗрди рд╢рдмреНрджреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдерд╛) рдореЗрдВ рд╕рд╛рд░реНрдердХ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдФрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд┐рд╕рдореЗрдВ рдпреВрдПрд╕рдмреА рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред