рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░
рдПрдХреНрд▓рд┐рдкреНрд╕ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдмрдВрдЯреВ рдХреЗ рддрд╣рдд рдФрд░ рдЯреВрд▓рдХрд┐рди рдХреА рдорджрдж рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЯреВрд▓рдХрд┐рди рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рддреЛ, рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛: рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд▓рд┐рдкреНрд╕, рдПрдХ рдПрдЯреА -91 рдПрд╕рдПрдПрдо 7 рдПрдХреНрд╕ 512 рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЛрд░реНрдб, рдПрдЯрд▓рдо рдХрд╛ рдПрд╕рдПрдПрдо-рдЖрдИрд╕реАрдИ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдПрдХ рдмреБрд░реЗ рдмреЙрд╕ рдХреЛ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред
рдЧреНрд░рд╣рдг рдЖрдИрдбреАрдИ рд╕реНрдерд╛рдкрд┐рдд / рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдЧреНрд░рд╣рдг рдФрд░ рдЙрд╕рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╕рдм рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЗрдкрд▓рд░ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ
рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рд╕реА / рд╕реА ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг рдЖрдИрдбреАрдИ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рди рдкрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВред
рдпрджрд┐ рдЧреНрд░рд╣рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг рдЖрдИрдбреАрдИ), рддреЛ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЭреВрда рдмреЛрд▓реЗрдВрдЧреА,
рд╣реЗрд▓реНрдк тЗТ рдЗрдВрд╕реНрдЯрд╛рд▓ рдиреНрдпреВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдиреНрдпреВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "
рд╡рд░реНрдХ рд╡рд░реНрдХ ... "рдЪрдпрди рдХрд░реЗрдВ" рдХреЗрдкреНрд▓рд░ -
download.eclipse.org/releases/kepler "ред рд╣рдо рдЗрд╕ рд╕реНрд░реЛрдд рдкрд░ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦреЗрдВрдЧреЗред "
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ " рдиреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, "
C / C ++ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓реНрд╕ " рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдлрд┐рд░ "
рдореЛрдмрд╛рдЗрд▓ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ " рдиреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, "
C / C ++ GDB Hardware Debugging " рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, "
рдЕрдЧрд▓рд╛ " рдФрд░ "
рд╕рдорд╛рдкреНрдд " рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╣рдг рдкреБрдирдГ рдЖрд░рдВрдн рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдиреЗ C / C ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг IDE рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рддреЛ C / C ++ GDB рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдкреНрд▓рдЧрдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╣рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЯреВрд▓рдХрд┐рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
рдлрд┐рд░ рд╕реЗ,
рд╣реЗрд▓реНрдк тЗТ рдЗрдВрд╕реНрдЯрд╛рд▓ рдиреНрдпреВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВ, "
рдРрдб " рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, "
рдирд╛рдо " рд▓рд╛рдЗрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдФрд░ "
рд╕реНрдерд╛рди " рд▓рд╛рдЗрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ:
gnuarmeclipse.sourceforge.net/updates
"
рдареАрдХ рд╣реИ " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣рдореЗрдВ рдПрдХ рдПрдХрд▓ рдШрдЯрдХ рд╕реЗ рдЗрд╕ рд╕реНрд░реЛрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реИ - "
рд╕реАрдбреАрдЯреА рдЬреАрдПрдирдпреВ рдХреНрд░реЙрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓реНрд╕ " рдХреА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреАред рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдПрдХ рдЯрд┐рдХ рд▓рдЧрд╛ рджрд┐рдпрд╛, "
рдЕрдЧрд▓рд╛ " рдФрд░ "
рд╕рдорд╛рдкреНрдд " рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╣рдг рдкреБрдирдГ рдЖрд░рдВрдн рд╣реЛрдЧрд╛ред
рд╡реЛрдЗрд▓рд╛, рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЪрд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рд╕рдВрдХрд▓рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд╣рдо
рдпрд╣рд╛рдВ рдЬрд╛рддреЗ
рд╣реИрдВ рдФрд░ рдЦрдЯреНрдЯреЗ рдХреЛрдбрдмреЗрдВрдЪ рд▓рд╛рдЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 2013.11-24 рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рд╕рд░рд▓ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ "
рдкрд╛рде рдЪрд░ рдмрджрд▓реЗрдВ " рдЪреЗрдХрдмреЙрдХреНрд╕ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдорд╢реАрди рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВред
рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
arm-none-eabi-gcc -v
ред
рдЙрд╕реЗ рд╣рдореЗрдВ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рд╣реИред
рдПрдХ рдХрдВрдХрд╛рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдБ
рдЧреНрд░рд╣рдг рд╢реБрд░реВ рдХрд░реЗрдВ, рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВ "
рдлрд╝рд╛рдЗрд▓-> рдирдпрд╛-> рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ "ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рд╣рдо рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ, рд╡реГрдХреНрд╖ рдореЗрдВ "
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ "
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ "
рдПрдЖрд░рдПрдо рдХреНрд░реЙрд╕ рдЯрд╛рд░рдЧреЗрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди -> рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ ", рдФрд░ рдЯреВрд▓рдЪреИрди рд╕реЗ рд╕реЙрд░реАрд░реА рдЪреБрдиреЗрдВред рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЕрдм рд╣рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓ рдФрд░ рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдПред
рд╣рдо
рдпрд╣рд╛рдВ рдЬрд╛рддреЗ
рд╣реИрдВ рдФрд░ I91 5.2, рдХреЗрдЗрд▓ рдФрд░ рдЬреАрдПрдирдпреВ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП AT91SAM7X-EK рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ, рд╣рдо рдкрде / at91sam7x-ek / package / рдХреЗ рд╕рд╛рде рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо gnu рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкрде / project_name / at91lib / рдмреЛрд░реНрдбреЛрдВ / at91sam7x-ek рдХреЗ рд╕рд╛рде
рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдБ рд╕реЗ
board_cstartup.S рдлрд╝рд╛рдЗрд▓
рд▓реЗрдВ , рдФрд░ at91sam7x512 рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╡рд╣рд╛рдБ рд╣реИ, рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ
AT91SAM7X512.h ,
sram.ories ,
flash.urs рдФрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ред - рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВред
рдлрд┐рд░ рд╕реЗ рдЧреНрд░рд╣рдг рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣рд╛рдВ, рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ "
рдЖрдпрд╛рдд " рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ,
рд╕рд╛рдорд╛рдиреНрдп-> рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд╣рд╛рдВ Board_cstartup, sram рдФрд░ Flash рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдХреНрд╕реЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░
рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ред рд╡реЛрдЗрд▓рд╛, рдлрд╛рдЗрд▓реЗрдВ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреАрдВред
рдЕрдм рдЖрдкрдХреЛ .ories рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд░реВрдк рдореЗрдВ рд▓рд╛рдУ:
sram.ldsOUTPUT_FORMAT ("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH (рдмрд╛рдВрд╣)
рдкреНрд░рд╡реЗрд╢ (рдкреНрд░рд╡реЗрд╢)
рд╕реНрдореГрддрд┐
{
sram (W! RX): ORIGIN = 0x200000, LENGTH = 0x20000
рдлрд╝реНрд▓реИрд╢ (RX): ORIGIN = 0x000000, LENGTH = 0x80000
}
рд╡рд░реНрдЧреЛрдВ
{
ред = ALIGN (4);
.fixed:
{
_ рдЙрдкрд╕рд░реНрдЧ =;
* (рд╡реИрдХреНрдЯрд░)
*ред рд░рд╛рдордлреБрдирдХ)
*? (рдкрд╛рда *)
*; рдХреГрдВрддрдХ *
* (рдбреЗрдЯрд╛?)
ред = ALIGN (4);
_efixed = ;;
}> рд╢реНрд░рдо
.relocate: AT (_efixed)
{
ред = ALIGN (4);
_srelocate = ;;
ред = ALIGN (4);
_erelocate = ;;
}
.bs: {
_рд╕рдЬрд╝рд░реЛ = ;;
* (рдмреАрдПрд╕рдПрд╕)
*! bss *)
* (COMMON)
ред = ALIGN (4);
_рдЬреЗрд░реЛ = ;;
}> рд╢реНрд░рдо
_sstack = 0x220000;
}
рдЕрдВрдд = ;;
flash.ldsOUTPUT_FORMAT ("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH (рдмрд╛рдВрд╣)
рдкреНрд░рд╡реЗрд╢ (рдкреНрд░рд╡реЗрд╢)
рд╕реНрдореГрддрд┐
{
sram (RWX): ORIGIN = 0x200000, LENGTH = 0x20000
рдлрд╝реНрд▓реИрд╢ (RX): ORIGIN = 0x100000, LENGTH = 0x80000
}
рд╡рд░реНрдЧреЛрдВ
{
.fixed:
{
ред = ALIGN (4);
_ рдЙрдкрд╕рд░реНрдЧ =;
* (рд╡реИрдХреНрдЯрд░)
* (рдкрд╛рда; *);
*; рдХреГрдВрддрдХ *
_efixed = ;;
}> рдлреНрд▓реИрд╢
.relocate: AT (_efixed)
{
_srelocate = ;;
* (рдбреЗрдЯрд╛?)
*? (рдбреЗрдЯрд╛ *)
ред = ALIGN (4);
_erelocate = ;;
}> рд╢реНрд░рдо
.bs: {
_рд╕рдЬрд╝рд░реЛ = ;;
* (рдмреАрдПрд╕рдПрд╕)
*! bss *)
* (COMMON)
ред = ALIGN (4);
_рдЬреЗрд░реЛ = ;;
}> рд╢реНрд░рдо
_sstack = 0x220000;
}
рдЕрдВрдд = ;;
рдХрдВрдХрд╛рд▓ рдХреА рдбрд┐рдЬрд╛рдЗрди рддреИрдпрд╛рд░ рд╣реИред
рдЕрдм рдЖрдк
File-> New-> C / C ++ Source File рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирдИ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдХрд░ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрдЕрдк
рдЕрдм рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдореЗрдиреВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ-
> рдЧреБрдг рдпрд╛ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдФрд░ рд╡рд╣рд╛рдВ
рдЧреБрдг рдЪреБрдиреЗрдВред
рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдЖрдЗрдЯрдо "
C / C ++ рдмрд┐рд▓реНрдб-> рд╕реЗрдЯрд┐рдВрдЧ " рдЪреБрдиреЗрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реАрд▓реНрдб рдореЗрдВ, рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЕрдм рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдВред
рдЯрд╛рд░реНрдЧреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░
- рдкреНрд░реЛрд╕реЗрд╕рд░ - arm7tdmi
- рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ - armv4t
- рдЕрдВрдЧреВрдард╛ - рд╡рд┐рдХрд▓рд╛рдВрдЧ
- рдЕрдВрдЧреВрдареЗ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ - рд╕рдХреНрд╖рдо
- рдПрдВрдбрд┐рдпрдирдиреЗрд╕ - рд▓рд┐рдЯрд┐рд▓ рдПрдВрдбрд┐рдпрди
- рдлреНрд▓реЛрдЯ рдПрдмреАрдЖрдИ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА
- рдЕрдиреНрдп рд▓рдХреНрд╖рд┐рдд рдЭрдВрдбреЗ: -рдорд░реНрдо - рдПрдордПрд▓рдВрдЧ-рдХреЙрд▓
рдПрдЖрд░рдПрдо рд╡рд┐рдВрдбреЛрдЬ рдЬреАрд╕реАрд╕реА рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ - рдЕрдиреБрдХреВрд▓рди
- рдкреИрдХ рд╕рдВрд░рдЪрдирд╛ - рд╡рд┐рдХрд▓рд╛рдВрдЧ
- рд▓рдШреБ рдЧрдгрди - рд╡рд┐рдХрд▓рд╛рдВрдЧ
- рд╕рдорд╛рд░реЛрд╣ рдЕрдиреБрднрд╛рдЧ - рд╕рдХреНрд╖рдо
- рдбреЗрдЯрд╛ рдЕрдиреБрднрд╛рдЧ - рдЕрдХреНрд╖рдо
рдПрдЖрд░рдПрдо рд╡рд┐рдВрдбреЛрдЬ рдЬреАрд╕реАрд╕реА рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ - рд╡рд┐рд╡рд┐рдз
- рднрд╛рд╖рд╛ рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ - GNU рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде ISO C99
рдпрд╣рд╛рдВ рдмрд╛рдХреА рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдЫреВрддреА рд╣реИрдВ
рдПрдЖрд░рдПрдо рд╡рд┐рдВрдбреЛрдЬ рдЬреАрд╕реАрд╕реА рд╕реА рд▓рд┐рдВрдХрд░
рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЬрдирд░рд▓ рдореЗрдВ:
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ - рдЕрднреА рддрдХ рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВ
- Standart рдкреНрд░рд╛рд░рдВрдн рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ - рд╕рдХреНрд╖рдо
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ - рд╕рдХреНрд╖рдо
- рдЕрдкреНрд░рдпреБрдХреНрдд рдЕрдиреБрднрд╛рдЧ рдирд┐рдХрд╛рд▓реЗрдВ - рд╕рдХреНрд╖рдо
рдмрд╛рдХреА - рдмрдВрдж рдХрд░реЗрдВ
рд╡рд┐рд╡рд┐рдз рдореЗрдВ: рдХреНрд░реЙрд╕ рд░реЗрдлрд░реА рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдПрдЖрд░рдПрдо рд╡рд┐рдВрдбреЛрдЬ рдЬреАрдПрдирдпреВ рдлреНрд▓реИрд╢ рдЗрдореЗрдЬ - рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдПрдВ
- рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк - ihex
рд╣рдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреИрдм рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдбреАрдмрдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдбреАрдмрдЧ рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░реЗрдВ - рдЕрдзрд┐рдХрддрдо, рдФрд░ рдбреАрдмрдЧ рдкреНрд░рд╛рд░реВрдк - рдЬреАрдбреАрдмреА, рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдбреАрдмрдЧ рд╕реНрддрд░ рдХреЛ рдХреЛрдИ рднреА рд╕реЗрдЯ рди рдХрд░реЗрдВ рдФрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЕрдм рд╣рдо ARM Windows GCC C Linker рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ - рд╕рд╛рдорд╛рдиреНрдп, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбреАрдмрдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реА sram.lds рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВред рдЕрдкреНрд▓рд╛рдИ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝реНрд▓реИрд╢.рдСрд░реНрд╕реЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣реА рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрдЕрдк рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрдкрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
рд╣рдо
рдпрд╣рд╛рдВ рдЬрд╛рддреЗ
рд╣реИрдВ , рд╣рдорд╛рд░реЗ рдПрд╕рдПрдПрдо-рдЖрдИрд╕реАрдИ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬреЗ-рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИ - рдЬреАрдбреАрдмреА рд╕рд░реНрд╡рд░, рдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд JFlash рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рд╣рдо рдбрд┐рдмрдЧ рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рдПрдХреНрд▓рд┐рдкреНрд╕ рдореЗрдВ, рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВ
рд░рди -> рдмрд╛рд╣рд░реА рдЯреВрд▓-> рдмрд╛рд╣рд░реА рдЯреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЗрдЯрдо рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣рдо рдПрдХ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рдЯреИрдм:
- рдирд╛рдо - рдЪрд▓реЛ рдЗрд╕реЗ рдХреБрдЫ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП GDB рд╕рд░реНрд╡рд░
- рд╕реНрдерд╛рди - рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд JLink GDB рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ C: \ Program Files (x86) \ SEGGER \ JLinkARM_V412 \ JLinkGDBServerCL.exe рд╣реИ
- рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ - рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рддрд░реНрдХ - рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, JTAG рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм:
- рдкрд╕рдВрджреАрджрд╛ рдореЗрдиреВ рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЪреЗрдХрдорд╛рд░реНрдХ рд▓рдЧрд╛рдПрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред
рдЕрдм рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВред рд╣рдо
рд░рди-> рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдиреВ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдВрдбреЛ рдЦреБрд▓рддреА рд╣реИ,
рдЬреАрдбреАрдмреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдЧрд╛ред рдЕрдиреБрдХреВрд▓рдиред
рдореБрдЦреНрдп рдЯреИрдм:
- C / C ++ рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред
- рд╡рд┐рдВрдбреЛ рдХреЗ рдирд┐рдЪрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдкреАрдЫреЗ рдХреЗ рдмрдЯрди рдХреЗ рд╕реНрддрд░ рдкрд░, рдПрдХ рдФрд░ рдЫрд┐рдкреА рд╣реБрдИ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдЯреИрдм рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ " рд▓рд┐рдЧреЗрд╕реА рдЬреАрдбреАрдмреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓реЙрдиреНрдЪрд░ " рдЪреБрдиреЗрдВред
рдбреАрдмрдЧрд░ рдЯреИрдм:
- GDB рдХрдорд╛рдВрдб - рд╣рдорд╛рд░реЗ рдбрд┐рдмрдЧрд░ рдЖрд░реНрдо-рдиреЛ-рдИрдмреА-рдЬреАрдбреАрдмреАред Exe рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рдХрдорд╛рдВрдб рд╕реЗрдЯ - рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ рд╡рд┐рдВрдбреЛрдЬ
- рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг - mi
- рджреВрд░рд╕реНрде рд▓рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рд╕рдХреНрд╖рдо
- JTAG рдбрд┐рд╡рд╛рдЗрд╕ - рдЬреЗрдиреЗрд░рд┐рдХ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА
- рд╣реЛрд╕реНрдЯ рдирд╛рдо рдпрд╛ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ - рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
- рдкреЛрд░реНрдЯ рдирдВрдмрд░ - 2331
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЯреИрдм:
- рд░реАрд╕реЗрдЯ рдФрд░ рджреЗрд░реА - рдЕрдХреНрд╖рдо
- рд╣реЙрд▓реНрдЯ - рд╡рд┐рдХрд▓рд╛рдВрдЧ
- рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рд╡рд┐рдВрдбреЛ рдЖрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░рдВрднреАрдХрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ:
# connect to the J-Link gdb server
target remote localhost:2331
# Set JTAG speed to 30 kHz
monitor endian little
monitor speed 30
# Reset the target
monitor reset 8
monitor sleep 10
# Change mapping, putting RAM at addr. 0
monitor long 0xFFFFFF00 = 0x00000001
# Setup GDB for faster downloads
set remote memory-write-packet-size 1024
set remote memory-write-packet-size fixed
monitor speed 12000
break main
load
- рд▓реЛрдб рдЫрд╡рд┐ - рд╕рдХреНрд╖рдо, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд╛рдЗрдирд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- рд▓реЛрдб рдкреНрд░рддреАрдХреЛрдВ - рд╕рдХреНрд╖рдо, рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- рдкреНрд░рддреАрдХ рдСрдлрд╕реЗрдЯ - рд╕реЗрдЯ рди рдХрд░реЗрдВ
- рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЕрдХреНрд╖рдо рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
- рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ - рд╡рд┐рдХрд▓рд╛рдВрдЧ рдкрд░
- рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ - рд╡рд┐рдХрд▓рд╛рдВрдЧ
- рд░рди рдХрдорд╛рдВрдб - рдЦрд╛рд▓реА
рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм:
- рдкрд╕рдВрджреАрджрд╛ рдореЗрдиреВ рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдЪреЗрдХрдорд╛рд░реНрдХ рдбрд╛рд▓реЗрдВ, рдХрдВрд╕реЛрд▓ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред
рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдЕрдм рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, SAM-ICE рдХреЛ рд╣рдорд╛рд░реА рдорд╢реАрди рдХреЗ USB рдкреЛрд░реНрдЯ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдмреЛрд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░реЗрдВ, GDB рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдЖрд░рдПрдо рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рдЖрдИрдбреАрдИ рдорд┐рд▓рд╛, рдЙрд╕реА рдЖрдИрдПрдЖрд░ рдХреЛ рдмрджрд▓рдиреЗ, рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдорд╛рд░реЗ рдЧреНрд░рд╣рдг, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рд╣реАрди рд╣реИ - рдЖрдк рддреБрд░рдВрдд рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрд╕рдкреАрдЖрдИ рдпрд╛ рдЯрд╛рдЗрдорд░ рдХрд╛рдЙрдВрдЯрд░ред
SEGGER рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░,
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП GDB рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдмрдВрдЯреВ рдХреЗ рддрд╣рддред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!
рдкреБрдирд╢реНрдЪ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрд╢реБрджреНрдзрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдореБрдЭреЗ рд╕рд▓рд╛рд╣ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред