рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдмреИрдардХ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ 0x0A DC7831 DEF CON рдирд┐рдЬрд╝рдиреА рдиреЛрд╡рдЧреЛрд░реЛрдб 16 рдлрд░рд╡рд░реА рдХреЛ, рд╣рдордиреЗ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдЗрдореНрдпреВрд▓реЗрд╢рди рдФрд░ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХреА - рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдореБрд▓реЗрдЯрд░ рдирдХрд▓.

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

рдкреГрд╖реНрдарднреВрдорд┐

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдмрд╣реБрдд рджреВрд░ рдПрдХ рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛ рдореЗрдВ

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

рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдЙрдкрд▓рдмреНрдз рдПрдореБрд▓реЗрдЯрд░ рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рд╣рдо рдлрд┐рд░ рднреА рдХреЛрдб рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдлрд┐рд░ рд╣рдордиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдиреНрдпреВрдирддрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рдореБрдЦреНрдп рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╣рдордиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рд╣рдордиреЗ рд╕реЛрдЪрд╛, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдореБрдЦреНрдп рдлрд░реНрдорд╡реЗрдпрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рднреА рдЬреЛрдбрд╝ рджреЗрдВред рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реБрдЖ - рдФрд░ рдпрд╣ рдХрд╛рдо рднреА рдХрд░ рдЧрдпрд╛ред рд╣рдордиреЗ рдлрд┐рд░ рд╕реЗ рд╕реЛрдЪрд╛ рдФрд░ рдПрдХ рдкреВрд░реНрдг рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдкрд░рд┐рдгрд╛рдо рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдПрдореБрд▓реЗрдЯрд░ рдерд╛ рдирдХрд▓.

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ
рдХреЛрдкреАрдХреИрдЯ рдХреНрдпреЛрдВ?

рд╢рдмреНрджреЛрдВ рдХрд╛ рдЦреЗрд▓ рд╣реИ.

  1. рдирдХрд▓ (рдЕрдВрдЧреНрд░реЗрдЬреА, рд╕рдВрдЬреНрдЮрд╛ [╦Иk╔Тp╔кk├жt]) - рдирдХрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдирдХрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛
  2. рдмрд┐рд▓реНрд▓реА (рдЕрдВрдЧреНрд░реЗрдЬреА, рд╕рдВрдЬреНрдЮрд╛ [╦Иk├жt]) - рдмрд┐рд▓реНрд▓реА, рдмрд┐рд▓реНрд▓реА - рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рдЬрд╛рдирд╡рд░
  3. "K" рдЕрдХреНрд╖рд░ рдХреЛрдЯрд▓рд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рд╣реИ

рдирдХрд▓

рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рддреЗ рд╕рдордп, рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ:

  • рдирдП рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ, рдореЙрдбреНрдпреВрд▓, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рдХрд┐рд╕реА рднреА рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ (рдлрд░реНрдорд╡реЗрдпрд░) рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рд╕реНрдиреИрдкрд╢реЙрдЯ (рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбрд┐рдмрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреЛрдЯрд▓рд┐рди рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛, рдмрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдбреЗрдЯрд╛ рдмрд╕реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ), рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ JSON, рдФрд░ рдбрд┐рдмрдЧрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ GDB RSPред

рд╡рд┐рдХрд╛рд╕ рджреЛ рд╕рд╛рд▓ рд╕реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, MIPS, x86, V850ES, ARM рдФрд░ PowerPC рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдПред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝ рд░рд╣реА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдмрд╛рдж рдореЗрдВ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрднреА рд╣рдо рдХреЛрдкреАрдХреИрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

рд╕рдмрд╕реЗ рдЕрдзреАрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдкреНрд░реЛрдореЛ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓рд┐рдВрдХ.

рдПрдореНрдпреВрд▓реЗрдЯрд░ рдореЗрдВ рд░рд╛рдЗрдиреЛ

рдмрддрд╛ рджреЗрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ SMARTRHINO-2018 рд╕рдореНрдореЗрд▓рди рдХреЗ рд▓рд┐рдП, рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреМрд╢рд▓ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг "рдЧреИрдВрдбрд╛" рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдереИрддрд┐рдХ рдлрд░реНрдорд╡реЗрдпрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╣ рд▓реЗрдЦ.

рдЕрдм рдЖрдЗрдП "рд╕реНрдкреАрдХрд░" рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
1) рдЬрд╛рд╡рд╛ 1.8
2) рдкрд╛рдпрдерди рдФрд░ рдореЙрдбреНрдпреВрд▓ рдЬрдк рдПрдореНрдпреВрд▓реЗрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдк рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП WHL рдореЙрдбреНрдпреВрд▓ Jep рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ.

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП:
1) com0com
2) рдкреБрдЯреНрдЯреА

рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП:
1) рд╕рдорд╛рдЬ

рдЖрдк рдЬреАрдбреАрдмреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд▓рд┐рдкреНрд╕, рдЖрдИрдбреАрдП рдкреНрд░реЛ рдпрд╛ рд░рд╛рдбрд╛рд░2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ "рдЕрд╕реЗрдВрдмрд▓" рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг ("рд░рд╛рдЗрдиреЛ") рдХреЛ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ JSON рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

JSON 105 рдкрдВрдХреНрддрд┐рдпрд╛рдБ

{
  "top": true,

  // Plugin name should be the same as file name (or full path from library start)
  "plugin": "rhino",

  // Directory where plugin places
  "library": "user",

  // Plugin parameters (constructor parameters if jar-plugin version)
  "params": [
    { "name": "tty_dbg", "type": "String"},
    { "name": "tty_bt", "type": "String"},
    { "name": "firmware", "type": "String", "default": "NUL"}
  ],

  // Plugin outer ports
  "ports": [  ],

  // Plugin internal buses
  "buses": [
    { "name": "mem", "size": "BUS30" },
    { "name": "nand", "size": "4" },
    { "name": "gpio", "size": "BUS32" }
  ],

  // Plugin internal components
  "modules": [
    {
      "name": "u1_stm32",
      "plugin": "STM32F042",
      "library": "mcu",
      "params": {
        "firmware:String": "params.firmware"
      }
    },
    {
      "name": "usart_debug",
      "plugin": "UartSerialTerminal",
      "library": "terminals",
      "params": {
        "tty": "params.tty_dbg"
      }
    },
    {
      "name": "term_bt",
      "plugin": "UartSerialTerminal",
      "library": "terminals",
      "params": {
        "tty": "params.tty_bt"
      }
    },
    {
      "name": "bluetooth",
      "plugin": "BT",
      "library": "mcu"
    },

    { "name": "led_0",  "plugin": "LED", "library": "mcu" },
    { "name": "led_1",  "plugin": "LED", "library": "mcu" },
    { "name": "led_2",  "plugin": "LED", "library": "mcu" },
    { "name": "led_3",  "plugin": "LED", "library": "mcu" },
    { "name": "led_4",  "plugin": "LED", "library": "mcu" },
    { "name": "led_5",  "plugin": "LED", "library": "mcu" },
    { "name": "led_6",  "plugin": "LED", "library": "mcu" },
    { "name": "led_7",  "plugin": "LED", "library": "mcu" },
    { "name": "led_8",  "plugin": "LED", "library": "mcu" },
    { "name": "led_9",  "plugin": "LED", "library": "mcu" },
    { "name": "led_10", "plugin": "LED", "library": "mcu" },
    { "name": "led_11", "plugin": "LED", "library": "mcu" },
    { "name": "led_12", "plugin": "LED", "library": "mcu" },
    { "name": "led_13", "plugin": "LED", "library": "mcu" },
    { "name": "led_14", "plugin": "LED", "library": "mcu" },
    { "name": "led_15", "plugin": "LED", "library": "mcu" }
  ],

  // Plugin connection between components
  "connections": [
    [ "u1_stm32.ports.usart1_m", "usart_debug.ports.term_s"],
    [ "u1_stm32.ports.usart1_s", "usart_debug.ports.term_m"],

    [ "u1_stm32.ports.usart2_m", "bluetooth.ports.usart_m"],
    [ "u1_stm32.ports.usart2_s", "bluetooth.ports.usart_s"],

    [ "bluetooth.ports.bt_s", "term_bt.ports.term_m"],
    [ "bluetooth.ports.bt_m", "term_bt.ports.term_s"],

    [ "led_0.ports.pin",  "u1_stm32.buses.pin_output_a", "0x00"],
    [ "led_1.ports.pin",  "u1_stm32.buses.pin_output_a", "0x01"],
    [ "led_2.ports.pin",  "u1_stm32.buses.pin_output_a", "0x02"],
    [ "led_3.ports.pin",  "u1_stm32.buses.pin_output_a", "0x03"],
    [ "led_4.ports.pin",  "u1_stm32.buses.pin_output_a", "0x04"],
    [ "led_5.ports.pin",  "u1_stm32.buses.pin_output_a", "0x05"],
    [ "led_6.ports.pin",  "u1_stm32.buses.pin_output_a", "0x06"],
    [ "led_7.ports.pin",  "u1_stm32.buses.pin_output_a", "0x07"],
    [ "led_8.ports.pin",  "u1_stm32.buses.pin_output_a", "0x08"],
    [ "led_9.ports.pin",  "u1_stm32.buses.pin_output_a", "0x09"],
    [ "led_10.ports.pin", "u1_stm32.buses.pin_output_a", "0x0A"],
    [ "led_11.ports.pin", "u1_stm32.buses.pin_output_a", "0x0B"],
    [ "led_12.ports.pin", "u1_stm32.buses.pin_output_a", "0x0C"],
    [ "led_13.ports.pin", "u1_stm32.buses.pin_output_a", "0x0D"],
    [ "led_14.ports.pin", "u1_stm32.buses.pin_output_a", "0x0E"],
    [ "led_15.ports.pin", "u1_stm32.buses.pin_output_a", "0x0F"]
  ]
}

рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдиреБрднрд╛рдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдореБрдЦреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореБрдЦреНрдп рдУрдПрд╕ рдХреЗ COM рдкреЛрд░реНрдЯ (рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧ рдпреВрдПрдЖрд░рдЯреА рдФрд░ рдпреВрдПрдЖрд░рдЯреА) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред рдпреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЛрд░реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ com0com/socat).

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдореНрдпреВрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдЬреАрдбреАрдмреА рдЖрд░рдПрд╕рдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг рдПрдХреНрд▓рд┐рдкреНрд╕ / рдЖрдИрдбреАрдП / рд░рдбрд╛рд░ 2 рд╣реИрдВ);
  • рдЖрдВрддрд░рд┐рдХ рдПрдореБрд▓реЗрдЯрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (рдЖрд░реНрдЧрдкрд░реНрд╕ рдпрд╛ рдкрд╛рдпрдерди)ред

рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ

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

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

com0com рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рдХреЛ com0com рдХрд┐рдЯ (рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг -) рд╕реЗ рд╕реЗрдЯрдЕрдк рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ C:рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86)com0comsetup╤Б.exe, рдпрд╛ рдЬреАрдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг - C:рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ (x86)com0comsetupg.exe):

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдмрдХреНрд╕реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдмрдлрд╝рд░ рдУрд╡рд░рд░рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рд╕рднреА рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдпрдерд╛ рдПрдореБрд▓реЗрдЯрд░ COM рдкреЛрд░реНрдЯ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред

рд╕реЛрдХрд╛рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

UNIX рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ socat рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдореБрд▓реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ; рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдкреЛрд░реНрдЯ рдирд╛рдо рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ socat:.

рдЖрдВрддрд░рд┐рдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (Argparse рдпрд╛ Python)

рдЪреВрдБрдХрд┐ Kopycat рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдПрдореБрд▓реЗрдЯрд░ рдЕрдкрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: Argparse рдФрд░ Pythonред

Argparse Kopycat рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ CLI рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реАрдПрд▓рдЖрдИ рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬреЗрдк рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдореБрдЦреНрдп рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред

рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдЬреЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдЬреЗрдк рдХреЛ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

pip install jep

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

pip install jep-3.8.2-cp27-cp27m-win_amd64.whl

рдЬреЗрдк рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛:

python -c "import jep"

рдкреНрд░рддреНрдпреБрддреНрддрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

ImportError: Jep is not supported in standalone Python, it must be embedded in Java.

рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдореНрдпреВрд▓реЗрдЯрд░ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ (рдирдХрд▓рдЪреА.рдмреИрдЯ - рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, рдирдХрд▓ - рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП) рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ DEFAULT_JVM_OPTS рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ Djava.library.path - рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЬреЗрдк рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

set DEFAULT_JVM_OPTS="-XX:MaxMetaspaceSize=256m" "-XX:+UseParallelGC" "-XX:SurvivorRatio=6" "-XX:-UseGCOverheadLimit" "-Djava.library.path=C:/Python27/Lib/site-packages/jep"

рдХреЛрдкреАрдХреИрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛

рдПрдореНрдпреВрд▓реЗрдЯрд░ рдПрдХ рдХрдВрд╕реЛрд▓ JVM рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ (sh/cmd) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрджреЗрд╢:

binkopycat -g 23946 -n rhino -l user -y library -p firmware=firmwarerhino_pass.bin,tty_dbg=COM26,tty_bt=COM28

Socat рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Linux рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрджреЗрд╢:

./bin/kopycat -g 23946 -n rhino -l user -y library -p firmware=./firmware/rhino_pass.bin, tty_dbg=socat:./COM26,tty_bt=socat:./COM28

  • -g 23646 - рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ рдЬреЛ рдЬреАрдбреАрдмреА рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд░рд╣реЗрдЧрд╛;
  • -n rhino - рдореБрдЦреНрдп рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо (рдЗрдХрдЯреНрдареЗ рдбрд┐рд╡рд╛рдЗрд╕);
  • -l user - рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо;
  • -y library - рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрде;
  • firmwarerhino_pass.bin - рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде;
  • COM26 рдФрд░ COM28 рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рд╕рдВрдХреЗрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ Python > (рдпрд╛ Argparse >):

18:07:59 INFO [eFactoryBuilder.create ]: Module top successfully created as top
18:07:59 INFO [ Module.initializeAndRes]: Setup core to top.u1_stm32.cortexm0.arm for top
18:07:59 INFO [ Module.initializeAndRes]: Setup debugger to top.u1_stm32.dbg for top
18:07:59 WARN [ Module.initializeAndRes]: Tracer wasn't found in top...
18:07:59 INFO [ Module.initializeAndRes]: Initializing ports and buses...
18:07:59 WARN [ Module.initializePortsA]: ATTENTION: Some ports has warning use printModulesPortsWarnings to see it...
18:07:59 FINE [ ARMv6CPU.reset ]: Set entry point address to 08006A75
18:07:59 INFO [ Module.initializeAndRes]: Module top is successfully initialized and reset as a top cell!
18:07:59 INFO [ Kopycat.open ]: Starting virtualization of board top[rhino] with arm[ARMv6Core]
18:07:59 INFO [ GDBServer.debuggerModule ]: Set new debugger module top.u1_stm32.dbg for GDB_SERVER(port=23946,alive=true)
Python >

рдЖрдИрдбреАрдП рдкреНрд░реЛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд

рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреЙрд░реНрдо рдореЗрдВ рдЖрдИрдбреАрдП рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╛рдЗрдиреЛ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ (рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ)ред

рдЖрдк рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рднреА рдореБрдЦреНрдп рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдИрдбреАрдП рдкреНрд░реЛ рдореЗрдВ рдХреЛрдкреАрдХреИрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбрд┐рдмрдЧрд░ рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо рдкрд░ рдЬрд╛рдПрдВ "рдбрд┐рдмрдЧрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ..."рдФрд░ рдЪреБрдиреЗрдВ"рд░рд┐рдореЛрдЯ рдЬреАрдбреАрдмреА рдбрд┐рдмрдЧрд░". рдЕрдЧрд▓рд╛, рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ: рдореЗрдиреВ рдбрд┐рдмрдЧрд░ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдктАж

рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ:

  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ - рдХреЛрдИ рднреА рдореВрд▓реНрдп
  • рд╣реЛрд╕реНрдЯрдирд╛рдо: 127.0.0.1 (рдпрд╛ рд░рд┐рдореЛрдЯ рдорд╢реАрди рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдЬрд╣рд╛рдВ рдХреЛрдкреАрдХреИрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИ)
  • рдкреЛрд░реНрдЯ: 23946

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЕрдм рдбрд┐рдмрдЧрд┐рдВрдЧ рдмрдЯрди рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (F9 рдХреБрдВрдЬреА):

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдПрдореНрдпреВрд▓реЗрдЯрд░ рдореЗрдВ рдбрд┐рдмрдЧрд░ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЖрдИрдбреАрдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ: рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рд╕реНрдЯреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдЕрдм рд╣рдо рдбрд┐рдмрдЧрд░ рдХреА рд╕рднреА рдорд╛рдирдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрди (рдореЗрдВ рдХрджрдо ╨╕ рдЪрд╣рд▓рдХрджрдореА - рдХреБрдВрдЬреА F7 рдФрд░ F8, рдХреНрд░рдорд╢рдГ);
  • рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рд░реЛрдХрдирд╛;
  • рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛ (F2 рдХреБрдВрдЬреА) рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдмрдирд╛рдирд╛ред

рдбрд┐рдмрдЧрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛрдб рдЪрд▓рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд░реНрддрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x08006A74 - рд╕рдорд╛рд░реЛрд╣ рдХреА рд╢реБрд░реБрдЖрдд рд░реАрд╕реЗрдЯ_рд╣реИрдВрдбрд▓рд░. рдпрджрд┐ рдЖрдк рд╕реВрдЪреА рдХреЛ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдореБрдЦреНрдп. рдЖрдк рдХрд░реНрд╕рд░ рдХреЛ рдЗрд╕ рд▓рд╛рдЗрди (рдкрддреЗ) рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ 0x08006ABE) рдФрд░ рдСрдкрд░реЗрд╢рди рдХрд░реЗрдВ рдХрд░реНрд╕рд░ рддрдХ рдЪрд▓рд╛рдПрдБ (рдХреБрдВрдЬреА F4).

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП F7 рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдореБрдЦреНрдп.

рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ (F9 рдХреБрдВрдЬреА), рдлрд┐рд░ "рдХреГрдкрдпрд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ" рд╡рд┐рдВрдбреЛ рдПрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдирд┐рд▓рдВрдмрд┐рдд:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЬрдм рдЖрдк рджрдмрд╛рддреЗ рд╣реИрдВ рдирд┐рд▓рдВрдмрд┐рдд рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рдЙрд╕реА рдкрддреЗ рд╕реЗ рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдмрд╛рдзрд┐рдд рд╣реБрдЖ рдерд╛ред

рдпрджрд┐ рдЖрдк рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ COM рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

"рд╕реНрдЯреЗрдЯ рдмрд╛рдпрдкрд╛рд╕" рд▓рд╛рдЗрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ COM рдкреЛрд░реНрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдмреНрд▓реВрдЯреВрде рдЯрд░реНрдорд┐рдирд▓ (рдЪрд┐рддреНрд░ рдореЗрдВ COM29) рдореЗрдВ рдЖрдк рд░рд╛рдЗрдиреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "MEOW" рдХрдорд╛рдВрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ "mur-mur" рдХреЛ рдмреНрд▓реВрдЯреВрде рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд▓реМрдЯрд╛ рджреЗрдЧрд╛:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдореЗрд░рд╛ рдЕрдиреБрдХрд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ

рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг/рдЕрдиреБрдХрд░рдг рдХрд╛ рд╕реНрддрд░ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдбрд┐рд╡рд╛рдЗрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ;
  • рдПрдЯреА рдХрдорд╛рдВрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдореБрдЦреНрдп рд╕рд┐рд╕реНрдЯрдо рдХреЗ COM рдкреЛрд░реНрдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ;
  • рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ;
  • рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯрдм рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ "рдУрдХреЗ" рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рд╡рд░реНрдЪреБрдЕрд▓ рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдореБрдЦреНрдп рд╕рд┐рд╕реНрдЯрдо рдХреЗ COM рдкреЛрд░реНрдЯ рд╕реЗ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдпреВрдПрдЖрд░рдЯреА рдкреЛрд░реНрдЯ рдкрд░ "рдкреНрд░реЙрдХреНрд╕реА" рдбреЗрдЯрд╛ рдХреЗ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдпрджрд┐ рдкрд░рд┐рдзрд┐ рдХрд╛ рдХреБрдЫ рднрд╛рдЧ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЖрдЗрдП рдХреЛрдб рдХреЗ рд╕рд░рд▓ рдЙрдкрдХрд░рдгреАрдХрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдбреАрдПрдордП рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЯрд╛рдЗрдорд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЪреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ws2812b_рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдкрд░ рд╕реНрдерд┐рдд 0x08006840), рддреЛ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╣рдореЗрд╢рд╛ рдлрд╝реНрд▓реИрдЧ рдХреЗ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░реЗрдЧрд╛ рд╡реНрдпрд╕реНрддрдкрд░ рд╕реНрдерд┐рдд 0x200004C4рдЬреЛ рдбреАрдПрдордП рдбреЗрдЯрд╛ рд▓рд╛рдЗрди рдХрд╛ рдЕрдзрд┐рднреЛрдЧ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рд╣рдо рдзреНрд╡рдЬ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ рд╡реНрдпрд╕реНрдд рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж. рдЖрдИрдбреАрдП рдкреНрд░реЛ рдореЗрдВ, рдЖрдк рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдзреНрд╡рдЬ рдореЗрдВ рдорд╛рди 1 рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рдХреЛрдб рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рд╡реНрдпрд╕реНрдд.

рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╣реИрдВрдбрд▓рд░

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЖрдИрдбреАрдП рдореЗрдВ рдПрдХ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВред рдореЗрдиреНрдпреВ рдлрд╝рд╛рдЗрд▓ - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдорд╛рдВрдб...

рдмрд╛рдИрдВ рдУрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдпрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреАрдкреАрдЯреА),
рджрд╛рдИрдВ рдУрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ:

def skip_dma():
    print "Skipping wait ws2812..."
    value = Byte(0x200004C4)
    if value == 1:
        PatchDbgByte(0x200004C4, 0)
return False

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рджрдмрд╛рддреЗ рд╣реИрдВ рд░рди рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░реЗрдВ.

рдЕрдм рдЖрдЗрдП рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ 0x0800688A, рдПрдХ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ (F2 рдХреБрдВрдЬреА) рд╕реЗрдЯ рдХрд░реЗрдВ, рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рд╕рдВрджрд░реНрдн рдореЗрдиреВ)ред рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ...), рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд╛рдпрдерди рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ
рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдзреНрд╡рдЬ рдорд╛рди рд╡реНрдпрд╕реНрдд 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрдХрд┐рдк_рдбреАрдПрдордП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрди рдореЗрдВ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдпрджрд┐ рдЖрдк рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рдХреА рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЛ рдЖрдИрдбреАрдП рд╡рд┐рдВрдбреЛ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЙрддреНрдкрд╛рджрди рд░реЗрдЦрд╛ рд╕реЗ Skipping wait ws2812.... рдЕрдм рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдлрд╝реНрд▓реИрдЧ рдХреЗ рд░реАрд╕реЗрдЯ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рд╡реНрдпрд╕реНрдд.

рдПрдореНрдпреВрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЗрдХреНрд╢рди

рдЕрдиреБрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХрд░рдг рд╕реЗ рдЦрд╝реБрд╢реА рдФрд░ рдЦреБрд╢реА рдорд┐рд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдпрджрд┐ рдПрдореНрдпреВрд▓реЗрдЯрд░ рд╢реЛрдзрдХрд░реНрддрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдпрд╛ рдереНрд░реЗрдбреНрд╕ рдХреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рдЖрд░рдЯреАрдУрдПрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдпрджрд┐ рдХреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдмреНрд▓реВрдЯреВрде_рдЯрд╛рд╕реНрдХ_рдПрдВрдЯреНрд░реА "рдПрд▓рдИрдбреА" рдХрдорд╛рдВрдб рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╢рд╛рдЦрд╛ рдореЗрдВ (рдкрддрд╛ 0x080057B8), рдлрд┐рд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рд╕рд┐рд╕реНрдЯрдо рдХрддрд╛рд░ рдореЗрдВ рднреЗрдЬрд╛ рдЧрдпрд╛ LEDControlQueueHandle рдХреБрдЫ рд╕рдВрджреЗрд╢.

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЖрдкрдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП LEDControlQueueHandleрдкрд░ рд╕реНрдерд┐рдд 0x20000624 рдФрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрдЯреЙрдк рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкрддреЗ рдкрд░ рд╣реЛрдЧрд╛ 0x080057CA рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ osMailAlloc, рдлрд┐рд░ рдкрддреЗ рдкрд░ 0x08005806 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдУрд╕рдореЗрд▓рдкреБрдЯ, рдлрд┐рд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж - рдкрддреЗ рдкрд░ 0x08005BD4 (рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдУрд╕рдореЗрд▓рдЧреЗрдЯ), рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ LEDs_task_entry (рдПрд▓рдИрдбреА-рдХрд╛рд░реНрдп), рдпрд╛рдиреА, рдХрд╛рд░реНрдп рд╕реНрд╡рд┐рдЪ рдХрд┐рдП рдЧрдП, рдФрд░ рдЕрдм рдПрд▓рдИрдбреА-рдХрд╛рд░реНрдп рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЗрд╕ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЖрдк рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрд░рдЯреАрдУрдПрд╕ рдХрд╛рд░реНрдп рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдмреЗрд╢рдХ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕ рдмрд╛рддрдЪреАрдд рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдХрдо рд╢реНрд░рдорд╕рд╛рдзреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓реЙрдиреНрдЪ рдФрд░ рдЖрдИрдбреАрдП рдкреНрд░реЛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

Radare2 рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ

рдЖрдк Radare2 рдЬреИрд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЙрдкрдХрд░рдг рдХреЛ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

R2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдореБрд▓реЗрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

radare2 -A -a arm -b 16 -d gdb://localhost:23946 rhino_fw42k6.elf

рд▓реЙрдиреНрдЪ рдЕрднреА рдЙрдкрд▓рдмреНрдз рд╣реИ (dc) рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рд░реЛрдХреЗрдВ (Ctrl+C)ред

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдлрд┐рд▓рд╣рд╛рд▓, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЬреАрдбреАрдмреА рд╕рд░реНрд╡рд░ рдФрд░ рдореЗрдореЛрд░реА рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрд░2 рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ; рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдФрд░ рд╕реНрдЯреЗрдкреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдХрдорд╛рдВрдб ds). рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛.

рдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ

рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░рд╛рдЗрдиреЛ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЖрдк рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдд:.

рд╣рдо рд╕реЗрдЯ рд╕реЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЛ рдПрдХ рдЖрдИрдбреАрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ STM32 рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░.

рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ firmware=null рдПрдореНрдпреВрд▓реЗрдЯрд░ рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП:

binkopycat -g 23946 -n rhino -l user -y modules -p firmware=null,tty_dbg=COM26,tty_bt=COM28

рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░рдирд╛

рдЧреНрд░рд╣рдг рдореЗрдВ, рдореЗрдиреВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЪрд▓рд╛рдПрдБ - рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди... рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬреАрдбреАрдмреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ "рдореБрдЦреНрдп" рдЯреИрдм рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

"рдбреАрдмрдЧрд░" рдЯреИрдм рдкрд░ рдЖрдкрдХреЛ GDB рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
${openstm32_compiler_path}arm-none-eabi-gdb

рдФрд░ GDB рд╕рд░реНрд╡рд░ (рд╣реЛрд╕реНрдЯ рдФрд░ рдкреЛрд░реНрдЯ) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рднреА рджрд░реНрдЬ рдХрд░реЗрдВ:

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

"рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк" рдЯреИрдм рдкрд░, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  • рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░реЗрдВ (рддрд╛рдХрд┐ рдЕрд╕реЗрдВрдмрд▓ рдХреА рдЧрдИ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд▓реЛрдб рд╣реЛ рдЬрд╛рдП);
  • рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдкреНрд░рддреАрдХ рд▓реЛрдб рдХрд░реЗрдВ;
  • рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реЗрдВ: set $pc = *0x08000004 (рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдкрддреЗ рдкрд░ рдореЗрдореЛрд░реА рд╕реЗ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ 0x08000004 - рдкрддрд╛ рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рд░реАрд╕реЗрдЯрд╣реИрдВрдбрд▓рд░).

рдзреНрдпрд╛рди рджреЗрдВ, рдпрджрд┐ рдЖрдк рдПрдХреНрд▓рд┐рдкреНрд╕ рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдХрд▓реНрдк рдЫрд╡рд┐ рд▓реЛрдб рдХрд░реЗрдВ ╨╕ рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ.

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдбреАрдмрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдбреАрдмрдЧрд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЪрд░рдг рджрд░ рдЪрд░рдг рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди
    рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ
  • рдмреНрд░реЗрдХрдкреНрд╡рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдирд╛
    рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдиреЛрдЯ. рдЧреНрд░рд╣рдг рдореЗрдВ, рд╣рдореНрдо... рдХреБрдЫ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛рдПрдБ рд╣реИрдВ... рдФрд░ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдбрд┐рдмрдЧрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╕рдВрджреЗрд╢ "0x0тА│ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ" рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреЗрдк рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (F5)

рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рдЕрдВрджрд░ рдЧреИрдВрдбрд╛ - рдХреЛрдкреАрдХреИрдЯ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдЪрд▓рд╛рдПрдВ

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреА

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

рд╣рдо рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдордзреНрдпрдо рд╕рд░рд▓ рд╣реЛ рдФрд░ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдФрд░ рд╕рдордп рди рд▓рдЧреЗред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред рд╣рдо рдЖрдкрдХреЛ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рд╣рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВрдХреГрдкрдпрд╛ред

рдЖрдк рдПрдореНрдпреВрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

  • рдореИрдВ рдлрд░реНрдорд╡реЗрдпрд░ (рдбреАрдмрдЧ) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ

  • рдореИрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рд╢реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

  • рдореИрдВ рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реВрдВ (рдбреЗрдиреНрдбреА, рд╕реЗрдЧрд╛, рдкреАрдПрд╕рдкреА)

  • рдХреБрдЫ рдФрд░ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ)

7 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 2 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

рдореВрд▓ рдХреЛрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрд┐рд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

  • QEMU

  • рдпреВрдирд┐рдХреЙрд░реНрди рдЗрдВрдЬрди

  • рд░реВрдк рдмрджрд▓рдиреЗрд╡рд╛рд▓рд╛ рдкреНрд░рд╛рдгреА

  • рдХреБрдЫ рдФрд░ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ)

6 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 2 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

рдЖрдк рдЬрд┐рд╕ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

  • рдореБрдЭреЗ рдЧрддрд┐ рдЪрд╛рд╣рд┐рдП

  • рдореИрдВ рд╕реЗрдЯрдЕрдк/рд▓реЙрдиреНрдЪ рдореЗрдВ рдЖрд╕рд╛рдиреА рдЪрд╛рд╣рддрд╛ рд╣реВрдБ

  • рдореБрдЭреЗ рдПрдореНрдпреВрд▓реЗрдЯрд░ (рдПрдкреАрдЖрдИ, рд╣реБрдХ) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЪрд╛рд╣рд┐рдП

  • рдореИрдВ рд╣рд░ рдЪреАрдЬ рд╕реЗ рдЦреБрд╢ рд╣реВрдВ

  • рдХреБрдЫ рдФрд░ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ)

8 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛. 1 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣рд╛.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ