рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдЯреАрдПрдо 32 рдкрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдЫрд╡рд┐

рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВ STM32F103C8 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ stm32duino рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ред Arduino рдХрд╛ рдпрд╣ рдХреНрд▓реЛрди рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреВрдЯрд▓реЛрдбрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ ST-Link рдпрд╛ USB-UART рдПрдбреЗрдкреНрдЯрд░ рдЬреИрд╕реЗ рдмрд╛рд╣рд░реА рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдЬ рдореБрдЭреЗ CoCCox рдХреЗ рддрд╣рдд рдФрд░ stm32duino рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдВрдЧреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреНрд▓рд┐рдВрдХрд░ рдмрд▓реНрдм рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЪрд▓реЛ рдареАрдХ рд╣реИред рд╢рд╛рдпрдж рдореЗрд░реА рдЧрдгрдирд╛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╕реА рд▓рдЧрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл STM32 рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЖрдзрд╛ рджрд┐рди рдорд╛рд░ рджрд┐рдпрд╛ред рдЕрдЪрд╛рдирдХ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджреЗрдЧрд╛ред

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

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред AVR рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рдЙрд╕реЗ рдХреНрдпреЛрдВ рдпрд╛рдж рдХрд┐рдпрд╛? рдореИрдВрдиреЗ Arduino рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдЕрд╡рдЪреЗрддрди рд╕реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреАред рд▓реЗрдХрд┐рди STM32 рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдХрд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрди рджреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

So. рдПрд╡реАрдЧ ATMega рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ, рдореЗрдореЛрд░реА рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдлреНрд▓реИрд╢ рдХреЗ рдЕрдВрдд рдХреЗ рдкрд╛рд╕ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдлрд╝реНрдпреВрдЬрд╝ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕ рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдмреВрдЯрд▓реЛрдбрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо 0x0000 рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдмреВрдЯрд▓реЛрдбрд░ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдЕрдиреНрдп рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, ATMxga32 рдореЗрдВ 0x3C00 рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдЖрдХрд╛рд░ 2k рд╣реИ)ред

рдЫрд╡рд┐

рдЬрдм рдмреВрдЯрд▓реЛрдбрд░ рдиреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ 0x0000 рдкрддреЗ рд╕реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╛рдиреА рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣рдореЗрд╢рд╛ 0x0000 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╕рдВрдХрд▓рдХ рдФрд░ рд▓рд┐рдВрдХрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдкрддрд╛ рд╕реНрдерд╛рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред

STM32 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо 0x0800000 рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдЗрддрдирд╛ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╢реБрд░реБрдЖрддреА рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдмреВрдЯрд▓реЛрдбрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпреВрдПрд╕рдмреА рдпрд╛ рдпреВрдПрдЖрд░рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЙрдкрдЧреНрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдХ рд╕рдмрд╕реНрдкреЗрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬреЛ рднреА ...) рдФрд░ рдЗрд╕реЗ рдмреВрдЯрд▓реЛрдбрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рдкрддреЛрдВ рдкрд░ рд▓рд┐рдЦреЗрдВред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЫрд╡рд┐

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

рдпрд╣ рд╕рдм рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рд╣реИред рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдиреАрдЪреЗ STM32F1xx рд╢реНрд░реГрдВрдЦрд▓рд╛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП USB рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреАред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд░реНрдХрд┐рдЯреНрд░реА рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдпрд╣рд╛рдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВред ITP рдХреЛ PA12 рдкреЛрд░реНрдЯ (рдЙрд░реНрдл USB D +) рдХреЗ рд▓рд┐рдП 1.5k рдкреБрд▓-рдЕрдк рд░реЗрдЬрд╝рд┐рд╕реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рд╕рд╣реА рд╕рдордп рдкрд░ USB рд╕реЗ рдХрдиреЗрдХреНрдЯ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирд┐рд░реНрджреЗрд╢:

  • Github.com/rogerclarkmelbourne/STM32duino-bootloader рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ STM32F1 \ binaries рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдмреЛрд░реНрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдмреВрдЯрд▓реЛрдбрд░реНрд╕ рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрд▓рдИрдбреА рдХрд╣рд╛рдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдореЗрд░реЗ рдмреЛрд░реНрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдПрд▓рдИрдбреА рдкрд┐рди C13 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ Generic_boot20_pc13.bin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

  • рд╣рдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ ред рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдЖрдкрдХреЛ USB-UART рдПрдбрд╛рдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЖрдк рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

  • рдЕрдм USB рдмреВрдЯ рд▓реЛрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рддреИрдпрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ 2 рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

    • рд▓рд┐рдВрдХрд░ рдХреЛ рдПрдХ рдкреНрд░рд╛рд░рдВрдн рдкрддрд╛ рджреЗрдВред CooCox рдореЗрдВ, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд▓рд┐рдВрдХ рдЯреИрдм, рдореЗрдореЛрд░реА рдПрд░рд┐рдпрд╛ рд╕реЗрдХреНрд╢рди, IROM1 рд╕реНрдЯрд╛рд░реНрдЯ рдПрдбреНрд░реЗрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреВрдЯрд▓реЛрдбрд░ рдкрд╣рд▓реЗ 8 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рдкрддрд╛ 0x0800000 + 0x2000 = 0x08002000 рд╣реЛрдЧрд╛ред рдЖрдХрд╛рд░ рдХреНрд╖реЗрддреНрд░, рд╢рд╛рдпрдж, 8k рд╕реЗ рднреА рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    • рдХрд╣реАрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдкрд░рд┐рдзрд┐ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреЙрд▓ рдХрд░реЗрдВ

      NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000); 


      UPDATE 05/17/2018: STM32Cube рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ NVIC_SetVectorTable () рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдлрд╝рд╛рдЗрд▓ system_stm32f1xx.c (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рдорд╛рди) рдореЗрдВ рджреЛрд╖ VECT_TAB_OFFSET рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  • рдлрд░реНрдорд╡реЗрдпрд░ рдлрд┐рд▓ рдХреЛ stm32duino рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдХрд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдореЗрдкрд▓_рдЕрдкрд▓реЛрдб рдирд╛рдордХ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рдореЗрдкрд▓_рдЕрдкрд▓реЛрдб.рдмреАрдПрдЯреАред

  • рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛рдПрдВ:

     "maple_upload.bat" COM20 2 1EAF:0003 "Path\To\Firmware.bin" 

    COM20 рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдВрд▓рдЧреНрди рд╣реИред

    рдкреАрдЕрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдирд┐рд╡рд┐рджрд╛ рдЪреАрдЬ рд╣реИ, рдпрд╣ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдкрде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    1EAF: 0003 VID рдФрд░ PID рд╣реИ

    2 - рдпрд╣ AltID рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ 0x08002000 ( рдпрд╣рд╛рдВ рдкрдврд╝реЗрдВ) рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рд╣рд░ рдмрд╛рд░ рд░реАрд╕реЗрдЯ рдкреНрд░реЗрд╕ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, libmaple / stm32duino рдЖрдзрд╛рд░рд┐рдд рдмреЛрд░реНрдб рдПрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ usb рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рд╕реБрдирддреЗ рд╣реИрдВред рдпрджрд┐ рдПрдХ DTR рд╕рдВрдХреЗрдд рд╡рд╣рд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред RxHook () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рджреЗрдЦреЗрдВ ред

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

рд╡рд╣ рд╕рдм рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ STM32 рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ USB рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рдЕрднреА рднреА рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореЗрд░рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

Source: https://habr.com/ru/post/hi403007/


All Articles