рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ STM32 рдореЗрдВ рдЪрдордХрддреА рдПрд▓рдИрдбреА

рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВ рдХреЛрдбрд╛рдВрддрд░рдХ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рд╛рд╣рд┐рддреНрдп рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрднреНрдпрд╛рд╕ рдХрд╛ рд╕рдордп рдерд╛ред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ Arduino Uno (Atmega328p) рдкрд░ рдЕрднреНрдпрд╛рд╕ рдХрд┐рдпрд╛, рдЕрдм рдореИрдВрдиреЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ STM32 рдХреЛ рд▓рд┐рдпрд╛ред STM32F103C8 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ рдФрд░ рдЖрдЧреЗ рдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрдкрдХрд░рдг


рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:

  • рдиреЛрдЯрдкреИрдб ++ - рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП
  • GNU рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдВрдкрд╛рдЗрд▓рд░
  • STM32 ST-LINK рдЙрдкрдпреЛрдЧрд┐рддрд╛ + ST-LINK V2 - рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдкрд░ рдХреЛрдб рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП

рд╢реБрд░реБрдЖрдд


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

jmp main 

рдЗрд╕рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рд░реБрдХрд╛рд╡рдЯ рдХреЗ рджреМрд░рд╛рди, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрд╡рдпрдВ рдкреАрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд░реБрдХрд╛рд╡рдЯ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 .org 0x00000000 SP: .word STACKINIT RESET: .word main NMI_HANDLER: .word nmi_fault HARD_FAULT: .word hard_fault MEMORY_FAULT: .word memory_fault BUS_FAULT: .word bus_fault USAGE_FAULT: .word usage_fault .org 0x000000B0 TIMER2_INTERRUPT: .word timer2_interupt + 1 

рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдкрд╛рдардХ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд░реАрд╕реЗрдЯ рд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреИрдХ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдПрдХ рд░реАрд╕реЗрдЯ рд╡реЗрдХреНрдЯрд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж 5 рдЕрдирд┐рд╡рд╛рд░реНрдп рдмрд╛рдзрд┐рдд рд╡реИрдХреНрдЯрд░ (NMI_HANDLER - USAGE_FAULT) рд╣реИрдВред

рдбрд┐рдЬрд╝рд╛рдЗрди


рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдЕрдЯрдХреА рд╣реБрдИ рдереА, рд╡рд╣ рдПрдЖрд░рдПрдо рдЕрд╕реЗрдВрдмрд▓рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдереАред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реБрдХрд╛рд╡рдЯ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдХрд┐ рдПрдЖрд░рдПрдо рдХреЗ рдкрд╛рд╕ 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЕрдВрдЧреВрдареЗ рдФрд░ рдЕрдВрдЧреВрдареЗ рдирд╣реАрдВред рдФрд░ рд╡рд╣ Cortex-M3 (STM32F103C8 рдЕрд░реНрдерд╛рдд Cortex-M3) рдХреЗрд╡рд▓ рдЕрдВрдЧреВрдареЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦреЗ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдиреЗ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдк рджрд┐рдпрд╛ред
рдЕрдирд╢рд┐рдХреНрд╖рд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ
.Syntax рдПрдХреАрдХреГрдд
рдпрд╣ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдердореНрдм рдФрд░ рдиреЙрди-рдердореНрдм рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓реА рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реА рд╡рд╣ рдереА рдбрд┐рдлреЙрд▓реНрдЯ рдбрд┐рдлреЙрд▓реНрдЯ GPOI рдкреЛрд░реНрдЯред рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЖрд░рд╕реАрд╕реА (рд░реАрд╕реЗрдЯ рдФрд░ рдШрдбрд╝реА рдирд┐рдпрдВрддреНрд░рдг) рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ PORT C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕реЗ RCC_APB2ENR рдореЗрдВ рдмрд┐рдЯ 4 (рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╕реЗрдЯ рдХрд░рдХреЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд░рд┐рдзреАрдп рдШрдбрд╝реА рд╕рдХреНрд╖рдо 2 рд░рдЬрд┐рд╕реНрдЯрд░)ред

рдЖрдЧреЗ рдЪрдордХрддреА рдПрд▓рдИрдбреАред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Arduino рдореЗрдВ, рдЖрдкрдХреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд┐рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ GPIOx_CRL (рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХрдо) рдпрд╛ GPIOx_CRH (рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдЙрдЪреНрдЪ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдпрд╣ рд░рджреНрдж рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рди рдХреЗ рд▓рд┐рдП 4 рдмрд┐рдЯреНрд╕ рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (32 рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред 2 рдмрд┐рдЯреНрд╕ (MODEy) рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛ рджрд░ рдФрд░ 2 рдмрд┐рдЯреНрд╕ (CNF) рдкрд┐рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ PORT C рдкрд┐рди 14 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдмрд┐рдЯреНрд╕ [25:24] = 10 рдФрд░ рдмрд┐рдЯреНрд╕ [27:26] = 00 рдХреЛ GPIOx_CRH рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ред

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

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

рдХрд╛рдЙрдВрдЯрд░ рдПрдХ 32 рдмрд┐рдЯ рдЪрд░ рд╣реИ рдЬреЛ SRAM рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдФрд░ рдлрд┐рд░ рдПрдХ рдФрд░ рд░реЗрдХ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рдереАред рдЬрдм рдореИрдВрдиреЗ рдПрд╕рдЖрд░рдПрдПрдо рдореЗрдВ рдПрдХ рдЪрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЯрдореЗрдЧрд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛, рддреЛ .org рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдВрдиреЗ рдореЗрдореЛрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдкрддрд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм, рд╕реНрдореГрддрд┐ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкрдврд╝рд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВрдиреЗ рдПрд╕рдЯреАрдПрдо 32 рдХреЗ рд╕рд╛рде рдЙрд╕реА рдЪреАрдЬ рдХреЛ рдХреНрд░реИрдВрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред STM32F103C8 рдореЗрдВ рдореЗрдореЛрд░реА рд╕реНрдЯрд╛рд░реНрдЯ рдПрдбреНрд░реЗрд╕ 0x20000000 рд╣реИред рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдкрддреЗ рдкрд░ .org рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ 512mb рдмрд╛рдЗрдирд░реА рдорд┐рд▓рд╛ред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдХреБрдЫ рд░рд╛рддреЛрдВ рдХреЛ рдореИрдиреБрдЕрд▓ рдзреВрдореНрд░рдкрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ред рдореБрдЭреЗ рдЕрднреА рднреА 100% рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ .data рдЕрдиреБрднрд╛рдЧ рдЙрди рдорд╛рдиреЛрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд░ рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рдордп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЪрд░ рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдПрдХ рдЪрд░ рдмрдирд╛рдиреЗ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреА:

 .section .bss .offset 0x20000000 flash_counter: .word 

рдореБрдЦреНрдп рд╕рдорд╛рд░реЛрд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдФрд░ рдПрд▓рдИрдбреА рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЙрдирдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

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


All Articles