Atmega32U4 atmel studio: Atmel Studio [ΠΠΌΠΏΠ΅ΡΠΊΠ° / ΠΠΈΠΊΠΈ]
|Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ AVR Π½Π° ΡΠ·ΡΠΊΠ΅ assembler Π² ΡΡΠ΅Π΄Π΅ Linux / Π₯Π°Π±Ρ
ΠΠΈ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ, ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° AVR ΠΏΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠ»ΠΈ Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ
ΠΏΠΎΠ΄Π΅Π»ΠΎΠΊ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ΅ (
Π½Π° Π³ΡΠ°Π½ΠΈ ΡΠΏΠΈΠ΄Π΅ΠΌΠΈΠΈ)
ΡΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° Arduino, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ Π½Π° Π±Π°Π·Π΅ Π²ΡΠ΅ ΡΠ΅Ρ ΠΆΠ΅ AVR. ΠΠ΅ Π±ΡΠ΄Ρ ΡΡΠ΄ΠΈΡΡ, Ρ ΠΎΡΠΎΡΠΎ ΡΡΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ ΠΎ, ΠΈΠ±ΠΎ ΡΡΠ°ΡΠ΅ΠΉ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΡΡΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π₯ΠΎΡΡ ΡΠ±Π΅ΡΠ΅ΡΡ ΠΈ ΠΌΠΎΠ΅Π³ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΡ ΡΠΏΠΎΡΠΎΠ² Π½Π° ΡΠ΅ΠΌΡ Β«ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Arduino ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΡΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ ΠΎΒ». Π‘ΡΠ°ΡΡΡ Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Β«Π°ΡΠ΄ΡΠΈΠ½ΡΡΠΈΠΊΠ°Β» (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΡΠΎ ΠΎΠ½ Ρ
ΠΎΡΠ΅Ρ Π²ΡΠΉΡΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ) Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Arduino Π΅ΠΌΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ΅ΡΠ½ΠΎ ΠΈ ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ ΡΠΎΠΌ Π° ΡΡΠΎ ΠΆΠ΅ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ. Π ΠΎΡΠ²Π΅ΡΡ Π½Π° Π²ΡΠ΅ Π΅Π³ΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΡΠΆΠ΅ Π΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° Β«AVR. Π£ΡΠ΅Π±Π½ΡΠΉ ΠΊΡΡΡΒ» ΠΎΡ Π³Π»ΡΠ±ΠΎΠΊΠΎΡΠ²Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ DIHALT. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ OS Windows, ΡΠΎ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ° Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π²Π°Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Atmel Studio, Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ Π²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ Π΄Π»Ρ ΠΠ AVR.
Π₯ΠΎΡΡ Ρ ΠΈ ΡΠΈΠΌΠ»ΠΈΠ΄ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΠ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π²ΠΎΠΏΡΠΎΡΡ Β«ΠΆΠ΅Π»Π΅Π·Π°Β» ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΎΡΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° Π±Π°Π·Π΅ AVR Ρ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΠΎΡ ΡΡΠ°Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΡΠΎ. ΠΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ Π΄Π»Ρ ΠΠ. Π ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΡΠ²Π»ΡΡΡΡ ΡΠ±Π΅ΠΆΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ OS Π½Π° Π±Π°Π·Π΅ ΡΠ΄ΡΠ° Linux, ΠΌΠ΅Π½Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π» Π²ΠΎΠΏΡΠΎΡ, Π° ΠΊΠ°ΠΊ ΡΠ°ΠΌ Π² Π»ΠΈΠ½ΡΠΊΡΠ°Ρ : ΠΌΠΎΠΆΠ½ΠΎ/Π½Π΅Π»ΡΠ·Ρ Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΠ, Π·Π°ΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΡΠΈΡΡΠ°Π»Π» Ρ ΡΠ΅ΠΌ ΠΆΠ΅ (ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ΠΌ ΠΆΠ΅) ΡΡΠΎΠ²Π½Π΅ΠΌ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² Windows. Π’Π΅Ρ ΠΊΠΎΠ³ΠΎ ΡΠΎΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, ΠΈ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΡΠ΅ΠΌΠ° ΠΏΠΎΡΡΠ° ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠΉ, ΠΏΡΠΈΠ³Π»Π°ΡΠ°Ρ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° C/C++, Π² ΡΡΠ΅Π΄Π΅ Π»ΠΈΠ½ΡΠΊΡ Ρ ΡΡΠΈΠΌ ΠΎΡΠΎΠ±ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π½Π΅Ρ, Π² Π²ΠΈΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠΎΡ ΠΆΠ΅ DIHALT, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΠ Π½Π΅ΠΎΡΠ΄Π΅Π»ΠΈΠΌΠΎ ΠΎΡ Π·Π½Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π² ΡΠ΅ΠΌ Ρ Ρ Π½ΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΡΡΡ, Π² Π²ΠΈΠ΄Ρ Π»ΠΎΠ³ΠΈΡΠ½ΠΎΡΡΠΈ Π΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΠΎΠ², ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π² Β«Π£ΡΠ΅Π±Π½ΠΎΠΌ ΠΊΡΡΡΠ΅Β» ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ (ΠΏΡΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ) ΠΎΠΏΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ x86.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΡΡΡΡ ΡΠ΅Π·ΠΈΡΠΎΠΌ, ΡΡΠΎ ΠΎΡ Π°ΡΠΌΠ° AVR Π½Π°ΠΌ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΡΠΉΡΠΈ ΠΈ ΡΠΈΠ΄ΠΈΠΌ ΠΌΡ ΠΏΠΎΠ΄ Π»ΠΈΠ½ΡΠΊΡΠΎΠΌ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Arch Linux, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠΎΠ²Π΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΡΠ΄Ρ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π΅Π³ΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΠ²ΡΠ·ΠΊΡ Atmel Studio + wine Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π΅ Π±ΡΠ΄Ρ. ΠΠ΅ Π»ΡΠ±Π»Ρ Ρ wine (Ρ
ΠΎΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ). ΠΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½Π°ΡΠΈΠ²Π½ΡΡ
ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ
, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΠΎΠ±Π·ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ
Π² ΡΠ΅ΡΠΈ ΠΈ Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ²ΡΡΡΠ»ΠΊΠΈ Π΄Π°Π»ΠΈ Π²ΡΡ
ΠΎΠ΄ Π½Π° ΡΡΠΈΡΠΌΠ²ΠΈΡΠ°Ρ gavrasm, avra ΠΈ avr-as. ΠΡΠ±ΠΎΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ Atmel ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π° Π² ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΠΊΡΡΡΠ° @DIHAL ΡΠ°ΠΊ ΠΏΡΡΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ±ΡΠ½ΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ ΠΎΡ Atmel Π΄Π°Π΅Ρ, ΠΎΠΏΡΡΡ ΡΠ°ΠΊΠΈ Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π»ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±Π΅Π· ΡΡΡΠ΄Π° Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Atmel Studio ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π² Π»ΠΈΠ½ΡΠΊΡΠ°Ρ
, ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, ΠΈΠ±ΠΎ ΡΠΎΡ ΠΆΠ΅ avr-as ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΏΠΎΠ΄ Windows. ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΠ±Π·ΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΉ ΡΡΠΎΠΈΡΡ.
gavrasm ΠΈ avra
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Atmel. ΠΠ΅ΡΠ²ΡΠΉ Π½Π°ΡΠ΅Π»ΡΡ Π² AUR ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
$ yaourt -S gavrasm
ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² AUR
$ yaourt -S avra
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΈΠ΄Π°
test.S
;---- ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ .device atmega16 ;---- Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ .dseg ;---- Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° .cseg .org 0x0000 ldi r16, 10 M1: inc r16 rjmp M1 ;---- Π‘Π΅Π³ΠΌΠ΅Π½Ρ EEPROM .eseg
Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ Π² *.hex ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π§ΡΠΎΠ±Ρ Π½Π΅ Π²ΠΎΠ·ΠΌΡΡΠ°ΡΡ Π±Π»Π°Π³ΠΎΡΠΎΠ΄Π½ΡΡ
Π΄ΠΎΠ½ΠΎΠ² Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΏΠΎΡΡΡΠ½ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ ΡΠΏΠΎΠΉΠ»Π΅ΡΡ
ΠΡΡ Π»ΠΎΠΏ gavrasm
$ gavrasm test.S +------------------------------------------------------------+ | gavrasm gerd's AVR assembler Version 3.5 (C)2015 by DG4FAC | +------------------------------------------------------------+ Compiling Source file: test.S ------- Pass: 1 14 lines done. Pass 1 ok. ------- Pass: 2 14 lines done. 3 words code, 0 words constants, total=3 = 0.0% No warnings! Compilation completed, no errors. Bye, bye ... $ ls -l ΠΈΡΠΎΠ³ΠΎ 12 -rw-rw----+ 1 maisvendoo users 52 ΠΈΡΠ» 29 15:46 test.hex -rw-rw----+ 1 maisvendoo users 741 ΠΈΡΠ» 29 15:46 test.lst -rw-rw----+ 1 maisvendoo users 92 ΠΈΡΠ» 29 15:46 test.S
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ hex-ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ:020000020000FC
:060000000AE00395FECFAB
:00000001FF
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π»ΠΈΡΡΠΈΠ½Π³Π°
gavrasm Gerd's AVR assembler version 3.
5 (C)2015 by DG4FAC
----------------------------------------------------------
Source file: test.S
Hex file: test.hex
Eeprom file: test.eep
Compiled: 29.07.2017, 15:46:38
Pass: 2
1: .device atmega16
2:
3: .dseg
4:
5: .cseg
6: .org 0x0000
7:
8: 000000 E00A ldi r16, 10
9: M1:
10: 000001 9503 inc r16
11: 000002 CFFE rjmp M1
12:
13: .eseg
14:
Program : 3 words.
Constants : 0 words.
Total program memory: 3 words.
Eeprom space : 0 bytes.
Data segment : 0 bytes.
Compilation completed, no errors.
Compilation endet 29.07.2017, 15:46:38
ΠΡΡ Π»ΠΎΠΏ avra
$ avra -l test.lst test.S AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010) Copyright (C) 1998-2010.Check out README file for more info AVRA is an open source assembler for Atmel AVR microcontroller family It can be used as a replacement of 'AVRASM32.EXE' the original assembler shipped with AVR Studio. We do not guarantee full compatibility for avra. AVRA comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of avra under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. Pass 1... Pass 2... done Used memory blocks: Code : Start = 0x0000, End = 0x0002, Length = 0x0003 Assembly complete with no errors. Segment usage: Code : 3 words (6 bytes) Data : 0 bytes EEPROM : 0 bytes $ ls -l ΠΈΡΠΎΠ³ΠΎ 16 -rw-rw----+ 1 maisvendoo users 92 ΠΈΡΠ» 29 15:46 test.S -rw-rw----+ 1 maisvendoo users 0 ΠΈΡΠ» 29 15:55 test.S.cof -rw-rw----+ 1 maisvendoo users 13 ΠΈΡΠ» 29 15:55 test.S.eep.hex -rw-rw----+ 1 maisvendoo users 55 ΠΈΡΠ» 29 15:55 test.S.hex -rw-rw----+ 1 maisvendoo users 61 ΠΈΡΠ» 29 15:55 test.
S.obj
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ hex-ΡΠ°ΠΉΠ»Π°:020000020000FC
:060000000AE00395FECFAB
:00000001FF
ΠΠΈΡΡΠΈΠ½Π³ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠ΅ΠΌ -l ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅$ cat test.lst
AVRA Ver. 1.3.0 test.S Sat Jul 29 16:02:05 2017
.device atmega16
.dseg
.cseg
.org 0x0000
C:000000 e00a ldi r16, 10
M1:
C:000001 9503 inc r16
C:000002 cffe rjmp M1
.eseg
Segment usage:
Code : 3 words (6 bytes)
Data : 0 bytes
EEPROM : 0 bytes
Assembly completed with no errors.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ:
- ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Intel HEX, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ ΡΡΠ°Π·Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π² ΠΠ
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Atmel
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ avra Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
.device atmel16
Π΄Π°Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΠΠ, ΡΠΊΡΡΠ²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΡΠ²Π½ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ Π½Π° *.inc ΡΠ°ΠΉΠ» ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ
Π½ΡΠ°Π½ΡΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π² Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΎΠ±Π·ΠΎΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Valber’Π° Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ
gavrasm ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ.
ΠΠ±Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β ΠΎΠ½ΠΈ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π₯ΠΎΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ avra ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΡΠ²Π»Π΅Π½Π°
Debugging support AVRA creates a coff file everytime the assembly was sucessful. This file allows AVR Studio or any coff compatible debugger to simulate or emulate the program.
Π½ΠΎ *.cof ΡΠ°ΠΉΠ» Π² Π²ΡΡ
Π»ΠΎΠΏΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΡΠΌ. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ, ΠΎΡΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ. Π’Π°ΠΊ ΡΡΠΎ ΠΎΡ ΡΡΠΈΡ
(ΠΊ ΡΠ»ΠΎΠ²Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ°ΡΡΡ
Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²) ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ, Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ³ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΠ· ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° GNU
avr-as
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. Π ΡΠ»ΡΡΠ°Π΅ Ρ Arch Linux
$ sudo pacman -S avr-gcc avr-libc avr-binutils
GNU assembler (gas) ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠΊΡΠ½Π΄ΠΎΠΌ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ gcc ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π½ΠΎ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. Π‘Π²ΡΠ·Π°Π½ΠΎ ΡΡΠΎ Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ *nix ΡΠΈΡΡΠ΅ΠΌ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° C/C++, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»Ρ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ Π½Π΅Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΡΡΠ½Π°. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π³Π»ΡΠ±ΠΎΠΊΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C/C++ ΡΡΠΎ, ΡΠ΅Π΄ΠΊΠΎ, Π½ΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Π ΡΠΎΠΌΡ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ
x86/x86_64 ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Β«Π³Π½ΡΡΠΎΠ³ΠΎΒ» Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (AT&T) ΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Intel-Π½ΠΎΡΠ°ΡΠΈΠΈ (Ρ
ΠΎΡΡ Π½Π° gas ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π»-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π°Π΅Ρ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ). Π§Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΈΠ½ΡΠ΅Π»-Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ AVR gas Π½Π΅ ΠΎΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡ Π½ΠΎΡΠ°ΡΠΈΠΈ Atmel Π² ΡΠ°ΡΡΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ β ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ldi r16, 10
Π² gas Π΄Π»Ρ AVR Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎ. ΠΡΡΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Atmel. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
test.S
#include "/usr/avr/include/avr/io.h" /* Π‘Π΅ΠΊΡΠΈΡ Π΄Π°Π½Π½ΡΡ */ .data /* Π‘Π΅ΠΊΡΠΈΡ ΠΊΠΎΠ΄Π° */ .section .text .org 0x0000 /* Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ avr-gcc Π²ΠΌΠ΅ΡΡΠΎ avr-as */ .global main main: ldi r16, 10 M1: inc r16 rjmp M1
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠ° ΡΠ΅ΠΊΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° .section .text (Π°Π½Π°Π»ΠΎΠ³ .cseg). ΠΠ½Π°Π»ΠΎΠ³ΠΎΠΌ .dseg ΡΠ»ΡΠΆΠΈΡ .data. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΠ΅Π³ΠΎ Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΠΈ Π½Π΅ ΡΠ·ΡΠ΅Π» Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ EEPROM (Π°Π½Π°Π»ΠΎΠ³ .eseg). ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠ΅Π΄ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ Π½Π°ΠΉΠ΄Π΅ΡΡΡ Π΄ΠΎΠ±ΡΡΠΉ Π³ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠΎΠ»ΠΊΠ½Π΅Ρ ΠΌΠ΅Π½Ρ Π½Π° ΠΎΡΠ²Π΅Ρ. ΠΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΆΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΌΠ½Π΅, ΡΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΠΊΡΡΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΡ ΠΈ Π²ΠΎΡ Π·Π΄Π΅ΡΡ Π΄Π»Ρ ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ gas Π΄Π»Ρ AVR.
ΠΡ ΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ±Π΅ΡΠ΅ΠΌ hex-ΡΠ°ΠΉΠ», ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΠ. ΠΠΎΠΌΠ°Π½Π΄Π°:
$ avr-as -mmcu=atmega16 -o test.o test.S
Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ATMega 16). ΠΠ°Π»Π΅Π΅ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² hex
$ avr-objcopy -O ihex test.o test.hex
ΠΠΎΠ»ΡΡΠ°Ρ Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ hex-ΡΠ°ΠΉΠ» Π²ΠΈΠ΄Π°
test.hex:060000000AE00395FECFAB
:00000001FF
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΈ Π½Π° Π³Π»Π°Π²Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ gas ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ
Π Π»ΠΈΠ½ΡΠΊΡΠ°Ρ
Π½Π΅Ρ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ GDB. ΠΠ»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΠ AVR ΡΡΠ°Π²ΠΈΠΌ ΡΡΠΎΠ½ΡΡΠ½Π΄
$ sudo pacman -S avr-gdb
ΠΠ°Π½Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΠΌ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠΉ, ΠΏΡΠ³Π°ΡΡΠΈΡ
Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²: ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΌΠΎΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΠΌΠΎΡΠΈ ΠΏΠΎΡΠΎΠ³ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΡΠΎΠΊ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΡΠΈΡΡΡΡ Π±ΠΎΡΡΡΡ gdb ΠΈ Π½Π°ΡΠ°ΡΡ Π² Π½Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΠ°ΡΡΡ Π²Π΅Π»ΠΈΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΈ ΠΌΠΎΠ³ΡΡΠ΅Π³ΠΎ ΠΈ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½ΡΠ½Π΅ ΠΏΠΎΠΊΠΎΠΉΠ½ΠΎΠ³ΠΎ (Π·Π΅ΠΌΠ»Ρ ΡΠ΅Π±Π΅ ΠΏΡΡ
ΠΎΠΌ, ΠΡΡΡΡ
!) ΠΠΈΠΊΠΎΠ»Π°Ρ ΠΠΈΡ
Π°ΡΠ΅Π²Π° aka ΠΡΠΈΡ ΠΠ°ΡΠΏΠ΅ΡΡΠΊΠΈ Β«ΠΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Ρ
Π½ΠΈΠΊΡ ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ GDBΒ».
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ gdb β ΡΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π² ELF-ΠΎΠ±ΡΠ°Π·, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
$ avr-as -mmcu=atmega16 -g --gstabs -o test.o test.S
ΠΠ»ΡΡΠΈ -g ΠΈ —gstabs Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² gdb. ΠΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² ELF
$ avr-ld -m avr4 -o test.elf test.o
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠ°. ΠΠ· Π½Π΅Π³ΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ hex-ΡΠ°ΠΉΠ»
$ avr-objcopy -j .text -j .data -O ihex test.elf test.hex
ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠ»ΡΡΠ΅ΠΌ -j Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΡ ΡΠ΅ΠΊΡΠΈΠΈ, ΠΊΠ»ΡΡΠ΅ΠΌ -O ihex ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° (intel HEX). ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ», ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅:
test.hex:060000000AE00395FECFAB
:00000001FF
ΠΡΡΠ°Π»ΠΎΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΠΌΡΠ»ΡΡΠΎΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΡΠΎΡΠΈΡ
. ΠΠ½ΠΎΡ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π΄Π²Π° Π΄ΠΎΡΡΠΎΠΉΠ½ΡΡ
ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°: simavr, ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
Π°ΡΡΠ° ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΡΡΠΌ:
$ sudo pacman -S simavr
ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΈΠΌΡΠ»ΡΡΠΎΡ simulavr, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½ Π΄Π°ΠΆΠ΅ Π² AUR, ΠΏΡΠΈ ΡΠΎΠΌ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΌΠ°ΡΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΡ Π² ΡΠ΅ΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Π½Π΅ΠΌ. Π‘ΠΎΠ±ΡΠ°ΡΡ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Ρ ΡΠ΅Π»ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ PKGBUILD Π΄Π»Ρ AUR Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π²ΡΡΠ»ΠΎ, Ρ
ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅Π±ΡΠ°Π» Π²ΡΠ΅ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΡΠΈΡΠ»ΠΎΡΡ ΠΏΡΠΈΠ±ΠΈΡΡ Π·Π²Π΅ΡΡΠΊΠΈΠΉ ΠΊΠΎΡΡΡΠ»Ρ, ΡΠΊΠ°ΡΠ°Π² DEB-ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Debian, ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ² Π΅Π³ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Π°ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ debtap.
$ debtap simulavr_0.1.2.2-7+b2_amd64.deb
ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π°ΡΡ-ΠΏΠ°ΠΊΠ΅Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΡΠ°Π²ΠΈΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΅ΡΡΠΈΡ ΡΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΡΠ΅Π²Π½ΡΡ, Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅Π»ΠΈΠ· (ΡΡΠ΄Ρ ΠΏΠΎ Π΄Π°ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ) ΡΡΠ΅Π» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ.
Π§ΡΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ simavr, ΡΠΎ ΠΎΠ½ ΡΡΠ°Π²ΠΈΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΠ, Π½ΠΎ Π½Π° ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ Π²ΡΠ΄Π°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΊΡΡΡΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠΌ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ. Π’ΡΡ Ρ ΡΠ½ΠΎΠ²Π° Π°ΠΏΠ΅Π»Π»ΠΈΡΡΡ ΠΊ ΡΠ²Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Ρ Π½Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ.
ΠΠΎΠΊΠ° ΠΆΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΡΡΡΠ»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ simulavr
ΠΡΠ°ΠΊ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΠ»Π°Π΄ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ
Π°ΡΠ΄ΠΊΠΎΡΠ½ΠΎ β ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΠΌΡΠ»ΡΡΠΎΡ
$ simulavr -d atmega16 -c 8000000 -g -P simulavr-disp
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΌΡΠ»ΡΡΠΎΡ ATMega 16 (ΠΊΠ»ΡΡ -d) Π½Π° ΡΠ°ΡΡΠΎΡΠ΅ 8 ΠΠΡ (ΠΊΠ»ΡΡ -Ρ) Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° (ΠΎΠΏΡΠΈΡ -P, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΠΈΠ· ΡΠ΅ΡΠΈ Π² ΡΠ²Π΅ΠΆΠ°ΠΉΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΡΠ±ΡΠ°Π½Π°). ΠΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠΎΡΠΊΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ ΠΏΠ°ΠΌΡΡΠΈ
Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Waiting on port 1212 for gdb client to connect...
ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ΅Π΅ Π½Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΌΡΠ»ΡΡΠΎΡ ΠΆΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π° ΠΏΠΎΡΡΡ 1212 (ΠΏΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠ»ΡΡΠ΅ΠΌ -p). Π Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΠ°ΡΡΡΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ:
$ avr-gdb -q -tui
ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ»ΡΡ ΡΠ±Π΅ΡΠ΅Ρ ΠΏΠ°ΡΠΎΡΠ½ΡΠΉ Π²ΡΡ
Π»ΠΎΠΏ gdb ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅, Π²ΡΠΎΡΠ°Ρ Π³ΡΡΠΏΠΏΠ° ΠΊΠ»ΡΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΌΠ½ΠΎΠΉ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ (Π½Π° Π΄Π΅Π»Π΅ ΡΡΠ° ΠΎΠΏΡΠΈΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½Π° ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½). Π ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΠ΄Π»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠΌΡΠ»ΡΡΠΎΡΡ
(gdb) target remote:1212
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ELF-ΠΎΠ±ΡΠ°Π· Π² ΡΠΌΡΠ»ΡΡΠΎΡ (Π΄Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ Π° Π½Π΅ hex, Π½Π° ΡΠ΅ΠΌ Ρ ΠΎΠ±ΠΆΠ΅Π³ΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅) d ‘vekznjh
(gdb) load test.elf
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ:
(gdb) file test.elf
ΠΎΡΠ²Π΅ΡΠΈΠ² Β«yesΒ» Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ:
Π§ΡΠΎ ΠΆΠ΅, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊ ΠΏΡΠΈΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ next
(gdb) n
ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π±ΠΎΠ΄ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ.
ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠ΅Π΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠΌΡΠ»ΡΡΠΎΡΠ°
ΡΠ°ΠΊ ΠΈ Π² ΠΎΠΊΠ½Π΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°:
(gdb) info registers . . . r16 0xa 10 . . . SREG 0x0 0 SP 0x0 0x0 <main> PC2 0x2 2 pc 0x2 0x2 <M1>
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²Π΅ΡΡ Π±ΠΎΠ³Π°ΡΠ΅ΠΉΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ gdb. ΠΠ΄Π½Π°ΠΊΠΎ,
ΡΡΠΎ Π»ΠΈΠ½ΡΠΊΡΠΎΠΈΠ΄Ρ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΎ Π²ΠΈΠ½Π΄ΡΠ·ΡΡΠ½ΠΈΠΊΡ ΡΠΌΠ΅ΡΡΡ
ΠΌΠ΅Π½Ρ ΡΠΏΡΠ΅ΠΊΠ½ΡΡ ΠΌΠΎΠ» Β«ΡΡΠ²Π°ΠΊ, Π² Atmel Studio Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΊΠΎΠ΄Ρ Ρ ΠΎΡΠΊΠ΅ΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ°Π·ΡΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌΒ» ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠ°Π²Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Ρ ΠΎΡΡ Π±Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠ² Π΅Ρ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ
IDE Eclipse ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π΄Π°Π²Π½ΠΎ. ΠΠ° Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½Π° ΠΏΡΠΎΡΠ½ΠΎ ΡΡΠ²Π΅ΡΠ΄ΠΈΠ»Π°ΡΡ Π² ΡΠ°Π·Π½ΡΡ
ΠΎΠ±Π»Π°ΡΡΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Β«ΡΡΠΏΠΎ Π²ΡΡΒ», Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΠ°ΡΡΠΈΡΡΡΡΠΈΡ
Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. Π ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ Π²ΠΎΡΡΠΎΡΠ³Π°Π»ΡΡ Π΅ΠΉ, Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΡΠ»ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡΠ΄Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π΅Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° ΠΌΠ΅Π»ΠΊΠΈΡ
Π½ΡΠ°Π½ΡΠΎΠ², ΡΠ°Π·Π΄ΡΠ²Π°ΡΡΠΈΡ
ΡΡ Π² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ (Π½Π° ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ C/C++ QtCreator Π² ΡΠΈΠ»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΆΠ°Π»Π΅Ρ).
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π½Π°ΠΌΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ½Π° Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ AVR Π² Eclipse ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
ΠΈ, Π΄Π°Π±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΡΠ°ΡΡΡ Ρ ΠΎΡΡΡΠ»Π°Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΊ ΠΏΠΎΠΈΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ Eclipse ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠ°ΠΆΠ½ΡΠΌ Π·Π΄Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎ ΡΠ΅ΠΌ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
Eclipse ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ Makefile, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠ°. ΠΠΎΡ ΠΎΠ½
Makefile
# ΠΠ΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ DEVICE = atmega16 TARGET = test OBJECTS = $(TARGET).o ELF = $(TARGET).elf HEX = $(TARGET).hex # ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ COMPILE = avr-as -mmcu=$(DEVICE) -g --gstabs # ΠΠ»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ - HEX-ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ all: hex # ΠΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ»ΡΠ»Π΅ΠΉ: Π±Π΅ΡΡΡΡΡΡ Π²ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ # Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ *.S ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ *.o .S.o: $(COMPILE) -c $< -o $@ # ΠΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡΠΈΡΡΠΊΠΈ - ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΡΠ±ΠΎΡΠΊΠΈ clean: rm -f $(HEX) $(ELF) $(OBJECTS) # ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ELF elf: $(OBJECTS) avr-ld -m avr4 -o $(ELF) $(OBJECTS) # ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ELF Π² HEX hex: elf avr-objcopy -j .text -j .data -O ihex $(ELF) $(HEX)
ΠΠ°ΠΏΠΈΡΠ°Π² ΡΡΠΎΡ ΠΎΠΏΡΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Eclipse ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ File -> New -> Project, Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Makefile
ΠΆΠΌΠ΅ΠΌ Next, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Makefile
Π¨Π»Π΅ΠΏΠ°Π΅ΠΌ Finish ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΉ ΠΊΡΠ°ΡΠ΅
ΠΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ Project -> Build all ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°ΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠΈ:
19:34:51 **** Build of configuration Default for project test **** make all avr-as -mmcu=atmega16 -g --gstabs -c test.S -o test.o avr-ld -m avr4 -o test.elf test.o avr-objcopy -j .text -j .data -O ihex test.elf test.hex 19:34:51 Build Finished (took 128ms)
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ Π·Π°ΠΏΡΡΠΊ ΡΠΌΡΠ»ΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π°ΠΉΠ΄Ρ Π² Run -> External Tools, ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΡΠΊΡΠΈΠ½Π°ΠΌ
Π’ΡΡ ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π΅, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΌΡΠ»ΡΡΠΎΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ Π½Π°ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² ΠΏΡΠ½ΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΌΠ΅Π½Ρ Run β External Tools.
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ Run β External Tools β atmega16 ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ Π·Π°ΠΏΡΡΠΊ ΡΠΌΡΠ»ΡΡΠΎΡΠ°:
Π₯ΠΎΡΠΎΡΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΄Π΅ΠΌ Π² ΠΌΠ΅Π½Ρ Run β Debug Configuratuions ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΡΠ΅ΡΠ΅Π· GDB.
Π½Π΅ Π·Π°Π±ΡΠ²Π°Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ:
ΠΈ ΡΠΊΠ°Π·Π°Π², ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°Π²ΠΈΠΌ Π³Π°Π»ΠΊΠΈ Π½Π° Load image ΠΈ Load Symbols β ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. Π‘ΡΠ°Π²ΠΈΠΌ ΡΠΎΡΠΊΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π° Π½Π° ΠΌΠ΅ΡΠΊΡ M1.
ΠΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Apply ΠΈ Debug ΠΈβ¦ Π²ΡΠ°Π»Ρ!
ΠΡΠ»Π°Π΄ΡΠΈΠΊ ΠΏΠΎΡΠ»ΡΡΠ½ΠΎ ΡΡΠ°Π» Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π°. ΠΠΎΡΡΡΠΏΠ΅Π½ ΠΏΡΠΎΡΠΌΠΎΡΡ Π΄Π°ΠΌΠΏΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠΌΠ΅ΠΌ F5 (ΠΈΠ»ΠΈ F6) ΠΈ ΡΡΠ°ΡΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΡΡ Π΄ΠΎ ΠΏΠΎΡΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄, ΡΠ½ΠΎΠ²Π° ΡΡΠ°ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π² ΠΎΠ±ΡΠ΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π§ΡΠΎ Ρ
ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π² ΡΠΈΠ½Π°Π»Π΅? Π― ΡΠΆΠ΅ ΡΡΡΡΡΡ ΡΠ°Π· Π³ΠΎΠ²ΠΎΡΠΈΠ» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΈ ΡΡΠ°ΡΡΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠ°Ρ
Ρ
Π°Π±Ρ ΠΈ Π³ΠΈΠΊΡΠ°ΠΉΠΌΡ β ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΠΈ ΡΡΠΏΠΎΡ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ. Π Π΅ΡΠ΅Π½Π° Π·Π°Π΄Π°ΡΠ° β ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² AVR Π² ΡΡΠ΅Π΄Π΅ Linux. ΠΡΠ° ΡΡΠ°ΡΡΡ β ΠΏΡΠΎΠ΄ΡΠΊΡ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π³ΡΠ³Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ±ΠΎΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°Π·ΡΠΎΠ·Π½Π΅Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². Π¦Π΅Π»Ρ Π΅Ρ β Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠ° Π½Π° ΠΏΠΎΠΈΡΠΊ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. Π‘ΡΠ°ΡΡΡ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ½ΠΎΡΡΡ, ΠΎΠ½Π° Π»ΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΌΠΎΠΈΡ
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΊΠΎΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ
Π»ΡΠ΄Π΅ΠΉ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ½Π΅ ΡΠ΅ΠΌΠ΅.
Π’ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ ΡΠ΅ΡΠ΅Π· avrdude, ΠΊΠΎΡΠΎΡΡΠΉ (sic!) Π΅ΡΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° AVR. ΠΡΠ»ΠΈ Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Π° Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈ Π΅Ρ, ΠΏΠΎΠΌΠΈΠ³Π°Π΅ΠΌ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π°ΠΌΠΈ, ΠΏΠΎΡΠ»Π΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΆΠΎΠΏΠ°Β» Β«ΡΡΠ°ΡΡΡΠ΅Β» ΡΠ΅ΡΠ΅Π· USART ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π΅ΠΌΠ° Π½Π΅ΠΈΡΡΠ΅ΡΠΏΠ°Π΅ΠΌΠ° ΠΈ Π΄ΠΎΡΡΠΎΠΉΠ½Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.
Π ΠΏΠΎΠΊΠ°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π½Π°Π΄Π΅ΡΡΡ Π½Π° Π½ΠΎΠ²ΡΡ Π²ΡΡΡΠ΅ΡΡ!
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ AVR Studio 4 (ΡΡΠΎΠΊ 1)
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ AVR Studio 4 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΡΠ»ΠΈ ΠΎΠ½Π° ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π³.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
ΡΠΎΠ·Π΄Π°Π΅ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ c:/avr/ β ΡΡΡ Π±ΡΠ΄ΡΡ Π»Π΅ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΡΠΎΠ·Π΄Π°Π΅ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ c:/works/ β ΡΡΡ Π±ΡΠ΄ΡΡ Π»Π΅ΠΆΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ°Π±ΠΎΡΡ.
Π½Π°Π΄ΠΎ ΡΡΠΎ Π±Ρ Π±ΡΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΡΡΠΈ, ΡΡΠΎ Π±Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½ΠΈΠΌΠΈ.
ΠΠ°Π»ΡΡΠ΅, ΠΊΠ°ΡΠ°Π΅ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ c:/avr/
WinVR
AVRStudio4_SP3
ΠΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ AVRStudio5 Π½ΠΎ ΠΈ AVRStudio4 ΠΏΠΎΠΊΠ° Π²ΠΏΠΎΠ»Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ.
ΠΡΡ ΡΠ°Π±ΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ Π² AVRStudio4, WinAVR Π½ΡΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·-Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ AVR-GCC (ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π‘ΠΈ)
ΠΠ! ΠΏΠ΅ΡΠ²ΡΠΌ Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ WinAVR , ΠΈΠ½Π°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° AVR-GCC Π½Π΅ ΠΏΠΎΠ΄ΡΠ΅ΠΏΠΈΡΡΡ.
ΠΠ°Π»ΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡ AVRStudio4 ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ.
Π’ΡΡ Π΄ΡΠΌΠ°Ρ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡΡΡ.
AVR-GCC Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π‘ΠΈ
Atmel Avr Assembler ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠ°ΡΠΈΠ½Π°ΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΠ Π»ΡΡΡΠ΅ Ρ Π½ΡΠ»Ρ. Π ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Ρ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π·Π½Π°ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Atmel AVR Assembler.
ΠΠΎΡΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Atmega8.
Π΄Π°Π»ΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΌΡΠ»ΡΡΠΎΡ. Π²ΡΠ±ΠΈΡΠ°ΠΉ: AVR Simulator -> Amega8
Π½Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΠΉ ΡΠΈΠ½ΠΈΡΡ.
ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ, Π±Π΅Π»ΡΠΉ, ΡΠΈΡΡΡΠΉ Π»ΠΈΡΡ. ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ΄.
Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°
βΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈβ β ΡΡΠΎ ΡΠ΅ΠΊΡΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΎΡΡΡ ΡΠΏΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ», ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ; βΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉβ, Π΅ΡΡΡ Π΅ΡΠ΅ βΠ΄Π°Π±Π» ΡΡΠ΅Ρβ (//),
Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²
/* * ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΈ(ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ), * ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ * ΡΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΡΠΈΠΈ * ΠΎΠ± ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Ρ.Π΅. * Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ Ρ.Π΄. */ NOP // Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈΠ»ΠΈ ΠΊΡΡΠΊΠ° ΠΊΠΎΠ΄Π° SLEEP ; ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΡΠΎΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ (Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠΎΠΊ) Π² ΠΊΠΎΠ΄Π΅
ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅. Ρ.Π΅. ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° β ΠΎΠ΄Π½Π° ΡΡΡΠΎΡΠΊΠ°.
Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ Π΄Π²ΡΠΌΡ βΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈβ, Ρ ΠΎΠ΄Π½ΠΈΠΌ, ΠΈΠ»ΠΈ Π±Π΅Π· Π½ΠΈΡΠ΅Π³ΠΎ
MOV R16, R17 ; Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° INC R16 ; ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ SEI ; Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
Π‘ ΡΡΠΈΠΌ Π²ΡΠ΅ ΡΡΠ½ΠΎ. Π΄Π°Π»ΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 1, 2 ΠΈΠ»ΠΈ 3 Π±Π°ΠΉΡΠ°.
MOV R16, R17 ; ΡΡΠΈ Π±Π°ΠΉΡΠ° INC R16 ; Π΄Π²Π° Π±Π°ΠΉΡΠ° SEI ; ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ
ΠΠΈΠ΄ΠΈΡΠ΅ ΡΠ²ΡΠ·Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ?
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠ²ΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, Ρ
ΠΎΡΡ ΠΌΠ½ΠΈΠΌΠΎΠ½ΠΈΠΊΠ° Ρ Π½ΠΈΡ
ΠΏΠΎΡ
ΠΎΠΆΠ°, Ρ.Π΅. ΠΊΠΎΠΌΠ°Π½Π΄Π° MOV Ρ ΠΌΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌ 0x12 Π° Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ 0x55.
ΡΡΠΎ Π±Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠΊ Ρ Π½Π°Ρ ΠΏΠΈΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎ ΡΡΠΎΠΌΡ ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Atmega8.
ΠΠΎ ΠΈ ΡΡΡ Π½Π΅ Π²ΡΠ΅. Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π² AVRStudio4 Π΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ βΠΠ°ΠΊΡΠΎΠ°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρβ.
ΠΠ»Ρ ΡΠΎΠ³, ΡΡΠΎ Π±Ρ ΠΈΡ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠ΄Π° Π²ΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠΎΡΠΊΡ
.include "m8def.inc" // ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ .include, ΠΌΡ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» m8def.inc ;ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΡΡΠ°Π½Π΅Ρ Π»Π΅Π³ΡΠ΅ ;)
Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠ΄Π°, ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΎΠ±ΡΡΡΠ½Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅. ΠΠΎ Π° ΠΏΠΎΠΊΠ°, Π±ΡΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ Π΅Ρ ΡΠ°ΠΊ:
RJMP RESET ; Reset Handler RETI; RJMP EXT_INT0 ; IRQ0 Handler RETI; RJMP EXT_INT1 ; IRQ1 Handler RETI; RJMP TIM2_COMP ; Timer2 Compare Handler RETI; RJMP TIM2_OVF ; Timer2 Overflow Handler RETI; RJMP TIM1_CAPT ; Timer1 Capture Handler RETI; RJMP TIM1_COMPA ; Timer1 CompareA Handler RETI; RJMP TIM1_COMPB ; Timer1 CompareB Handler RETI; RJMP TIM1_OVF ; Timer1 Overflow Handler RETI; RJMP TIM0_OVF ; Timer0 Overflow Handler RETI; RJMP SPI_STC ; SPI Transfer Complete Handler RETI; RJMP USART_RXC ; USART RX Complete Handler RETI; RJMP USART_UDRE ; UDR Empty Handler RETI; RJMP USART_TXC ; USART TX Complete Handler RETI; RJMP ADC ; ADC Conversion Complete Handler RETI; RJMP EE_RDY ; EEPROM Ready Handler RETI; RJMP ANA_COMP ; Analog Comparator Handler RETI; RJMP TWSI ; Two-wire Serial Interface Handler RETI; RJMP SPM_RDY ; Store Program Memory Ready Handler
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ΄Π΅Ρ ΡΠΆΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠ΄
RESTART: ; ΠΌΠ°ΡΠΊΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ MAIN: NOP ; ΠΌΠ°ΡΠΊΠ΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° RJMP MAIN
ΠΠΎ ΡΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° (ΡΠΎΡΠ½Π΅Π΅ Π½Π΅ ΠΎΠ΄Π½Π°, Π° ΠΌΠ½ΠΎΠ³ΠΎ) ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ², Π½Π°ΠΌ ΠΏΠΎΠ΄Π°ΡΠΈΠ»ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ? βRESET:β ΠΈ βMAIN:β ΡΡΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΡ, Π² ΠΈΡ
ΠΈΠΌΠ΅Π½Π°Ρ
ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ° ΠΈ ΡΠΈΡΡΡ. ΠΠ°ΡΠΊΠ΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π΄ΠΎΠΏΡΡΡΠΈΠΌ βNOPβ.
ΠΠ°ΠΊ ΠΊ Π½ΠΈΠΌ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ? ΠΠΎΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ RJMP.
Π’Π°ΠΊ ΠΆΠ΅, ΠΈΠ· ΠΠ°ΡΠΊΠ΅ΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ(ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ), ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ, ΠΌΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΡΡΠ΄Π°, ΠΎΡ ΠΊΡΠ΄Π° Π΅Ρ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ. ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ βRCALL (ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°)β, Π° ΡΡΠΎ Π±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈΠ· ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ(ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ), Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ βRETβ. Π£ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
RESTART: MAIN: NOP RCALL PPP1 ; Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ RJMP MAIN PPP1: NOP RET ; Π²ΡΡ ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° βRCALLβ, ΠΏΡΠΈ Π΅Ρ Π²ΡΠ·ΠΎΠ²Π΅, Π°Π΄ΡΠ΅Ρ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π΅Ρ Π²ΡΠ·Π²Π°Π»ΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π‘Π’ΠΠ, Π° ΠΏΠΎ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ βRETβ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° βΡΡΠ΅ΠΊβ. Π‘Π’ΠΠ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
Π§ΡΠΎ Π±Ρ Π½Π°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΌΠΊ, Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Ρ.ΠΊ. ΠΌΠΊ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ΅, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π£Π‘ΠΠΠ, Π¨ΠΠ, Π¦ΠΠ, ΠΠ¦Π ΠΈ Ρ.Π΄. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΊ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠ°Π»ΠΎ βΡΡΠ΅ΠΊΠ°β. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡΠ»Π΅ ΠΌΠ°ΡΠΊΠ΅ΡΠ° βRESET:β.
LDI R16,HIGH(RAMEND) OUT SPH,R16 LDI R16,LOW(RAMEND) OUT SPL,R16
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ .include βm8def.incβ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠΎΠ΄Π°, ΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
LDI R16,0x04 OUT SPH,R16 LDI R16,0x5f OUT SPL,R16
Π Π°Π·Π½ΠΈΡΠ° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄.
Π‘Π’ΠΠ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°: (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΠΎΡΠ΅Π΄ΡΠΈΠΉ, Π²ΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ²ΡΠΌ).
ΠΠ°Π³Π°Π·ΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΡΡΠΎ Π½Π΅ ΡΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅Ρ, Π° ΡΠΎΠΆΠΎΠΊ ΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠ°. Π½Π°Π΄Π΅ΡΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π² Π½Π΅Π³ΠΎ Π·Π°ΡΡΠΆΠ°ΡΡΡΡ ΠΏΠ°ΡΡΠΎΠ½Ρ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΎΡ ΡΡΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ.
ΠΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π‘Π’ΠΠ, Ρ.ΠΊ. Π»ΡΠ±Π°Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΡΠ²Ρ ΡΡΠ΅ΠΊΠ°. ΠΡΠΎ Π½Π° ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ°, ΡΡΠΎ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΡΠ²Π΅ΡΠΈΡΡ Π΅ΠΉ ΡΠ΅Π»ΡΡ ΡΠ΅ΠΌΡ ΠΈ Π½Π°ΠΏΠΈΡΡ Π΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
.include "m8def.inc" RJMP RESET ; Reset Handler RETI; RJMP EXT_INT0 ; IRQ0 Handler RETI; RJMP EXT_INT1 ; IRQ1 Handler RETI; RJMP TIM2_COMP ; Timer2 Compare Handler RETI; RJMP TIM2_OVF ; Timer2 Overflow Handler RETI; RJMP TIM1_CAPT ; Timer1 Capture Handler RETI; RJMP TIM1_COMPA ; Timer1 CompareA Handler RETI; RJMP TIM1_COMPB ; Timer1 CompareB Handler RETI; RJMP TIM1_OVF ; Timer1 Overflow Handler RETI; RJMP TIM0_OVF ; Timer0 Overflow Handler RETI; RJMP SPI_STC ; SPI Transfer Complete Handler RETI; RJMP USART_RXC ; USART RX Complete Handler RETI; RJMP USART_UDRE ; UDR Empty Handler RETI; RJMP USART_TXC ; USART TX Complete Handler RETI; RJMP ADC ; ADC Conversion Complete Handler RETI; RJMP EE_RDY ; EEPROM Ready Handler RETI; RJMP ANA_COMP ; Analog Comparator Handler RETI; RJMP TWSI ; Two-wire Serial Interface Handler RETI; RJMP SPM_RDY ; Store Program Memory Ready Handler RESET: LDI R16,HIGH(RAMEND) OUT SPH,R16 LDI R16,LOW(RAMEND) OUT SPL,R16 RGMP RESET MAIN: NOP ; ΠΌΠ°ΡΠΊΠ΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° RJMP MAIN
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΠΏΠΎ ΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ΄ Ρ Π½Π°Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅.
ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΡΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ°ΡΡΠΎΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΠ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ,
Π·Π½Π°ΡΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ΅Π½Ρ βBuildβ, ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Ρ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ βBuild and Runβ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΆΠ΅Π»ΡΡΡ ΡΡΡΠ΅Π»ΠΎΡΠΊΡ Π½Π° ΠΏΡΠΎΡΠΈΠ² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π½Π°ΡΠ΅ΠΌ Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΊΠΎΠ΄Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΡΠ΅ΠΌ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ΅Π½Ρ βDebugβ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ βAVR Simulator Optionsβ, ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:
Π ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΠ ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΡ, ΡΠ°ΠΊ ΠΆΠ΅, Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Ρ ΠΏΡΠ°Π²Π°, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΡΠ΅ΠΌ ΠΠ: Π΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΎΡΡ, ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ(EEPROM, RAM, FLASH). Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΄Π°ΡΠ°ΡΠΈΡ Π½Π° Atmega8, Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ 203 (ΠΎΠ±ΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²) ΠΈ 205 (ΠΎΠ±ΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄) ΠΈ ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π·Π°ΠΏΠΎΠΌΠ½ΠΈ, Π½Π΅ Π±ΠΎΠΉΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠΎΠΌ, ΠΎΠ½ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ!
ΠΠ°ΠΏΠΈΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² ΡΡΠ±ΡΠΈΠΊΠ΅ AVR Studio 4 Ρ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ AVR, AVR Studio 4. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΡΡΡΠ»ΠΊΡ.
atmel-studio Β· Π’Π΅ΠΌΡ GitHub Β· GitHub
ΠΠΎΡ
146 ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.
..
Π’Π΅ΠΌΠ½ΡΠΉ ΡΠ΅ΠΊΡΠΎΡ
/
ΠΠΠ
ΠΠ²Π΅Π·Π΄Π°
62
ΡΠ°ΠΌΠ°Π»ΡΠ΄ΡΠ΅Π³
/
evilmass_at90usbkey2
Π‘ΠΏΠΎΠ½ΡΠΎΡ
ΠΠ²Π΅Π·Π΄Π°
29
hannahvsawiuk
/
3-ΡΠ°Π·Π½ΡΠΉ Π¨ΠΠ
ΠΠ²Π΅Π·Π΄Π°
21
ΠΠ΅ΠΎΠΌΠ΅Ρ
/
ΠΠΠ Π
ΠΠ²Π΅Π·Π΄Π°
8
ΡΠ΅Π°ΡΠΈΠ΄
/
atmega32u4-usb-ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ
Π‘ΠΏΠΎΠ½ΡΠΎΡ
ΠΠ²Π΅Π·Π΄Π°
7
ΡΠ°ΠΉ
/
ΡΠΌΡΡΠ»2ΠΊΠ°Π½_ΠΊΠΎΠ΄
ΠΠ²Π΅Π·Π΄Π°
6
ΡΠ°ΠΌΠ°Π»ΡΠ΄ΡΠ΅Π³
/
lufa-sdcard-mass-storageΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°-fatfs-AT90USBKEY2
Π‘ΠΏΠΎΠ½ΡΠΎΡ
ΠΠ²Π΅Π·Π΄Π°
6
ΠΠΎΠ΄ΠΆΠΈΠΌΠΌΠΈΠΏΠΈ
/
LoRa-GPIO
ΠΠ²Π΅Π·Π΄Π°
5
ΡΠ΅Π°ΡΠΈΠ΄
/
Arduino-USB-ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ
Π‘ΠΏΠΎΠ½ΡΠΎΡ
ΠΠ²Π΅Π·Π΄Π°
4
bebenlebricolo
/
CMakeAS7
ΠΠ²Π΅Π·Π΄Π°
4
ΠΏΠ΅Π½ΡΡ32
/
Π’Π΅ΡΠΌΠΎΠΌΠ΅ΡΡ
ΠΠ²Π΅Π·Π΄Π°
4
EWouters
/
ΠΏΠΈΠ΄ΠΆΠΈΠ»ΠΈΠ±
ΠΠ²Π΅Π·Π΄Π°
4
ΡΠ°Π·Π½ΡΠ΅ Π±ΠΈΡΡ
/
pi4-ΡΡΡΠ±ΠΎ-ΡΠ½ΠΊΠ°Π±ΡΠ»ΡΡΠΎΡ
ΠΠ²Π΅Π·Π΄Π°
4
ΡΠΎΡ
Π°Π½Π²Π΅ΡΠΌΠ°94
/
ΠΡΠΊΡΡΡΡΠΉ Π²Π΅ΡΡΠΎΠ»Π΅Ρ
ΠΠ²Π΅Π·Π΄Π°
3
ΡΡΠΊ-ΡΠΌΠ°Π½
/
ΡΠΌΠ½ΡΠΉ
ΠΠ²Π΅Π·Π΄Π°
3
ΠΏΠ΅Π½ΡΡ32
/
Π‘Π΅ΡΠ²ΠΎΠ΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ
ΠΠ²Π΅Π·Π΄Π°
3
ΠΡΠΉΠ²ΠΏΡΡΠΈΡΡ
/
samd_tutorials
ΠΠ²Π΅Π·Π΄Π°
3
ΠΠΎΡ
Π°ΠΌΠ΅Π΄ΠΠΎΡΠ°Π±Π°
/
ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅Π»Ρ Ρ PID
ΠΠ²Π΅Π·Π΄Π°
3
ΡΠ°ΡΠΊΡ
/
Π‘Π°ΠΉΠΌΠΎΠ½-ΠΠ΅ΠΉΠΌ
ΠΠ²Π΅Π·Π΄Π°
3
ΠΏΠ΅Π½ΡΡ32
/
ΠΠ°ΠΊΠΎΠ½ ΠΠΌΠ°
ΠΠ²Π΅Π·Π΄Π°
3
Π£Π»ΡΡΡΠΈΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π°
atmel-studio
ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Π½Π΅ΠΉ.
ΠΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ΅ΠΌΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡ ΡΠ΅ΠΌΡ Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
Π§ΡΠΎΠ±Ρ ΡΠ²ΡΠ·Π°ΡΡ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ
atmel-studio
ΡΠ΅ΠΌΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ΅Π»Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ «ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΠΌΠΈ».
Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
ΠΠ»Π°ΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° USB 2.0 AVR ATmega32U4
β Π·Π°ΠΊΠ°Π·Π°: ΠΊΡΠΎΡΠΊΠ°32u4-1.0
ΠΠ°Π»ΠΈΡΠΈΠ΅: Π½Π° ΡΠΊΠ»Π°Π΄Π΅
Π¦Π΅Π½Π°:Β 12,90 Π΅Π²ΡΠΎ
Π²ΠΊΠ». Π±Π΅Π· ΠΠΠ‘ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°
Π§Π°ΡΡΠΎΡΠ° ΠΊΡΠΈΡΡΠ°Π»Π»Π°
8,0000 ΠΠΡ16,0000 ΠΠΡ
ΡΡ.
ΠΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ?
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π½Π°ΡΠΈΠΌ Skype-ΡΠ°ΡΠΎΠΌ ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΠΏΠΎΠ»Π΅ Π½ΠΈΠΆΠ΅.
Crumb32U4 V1.0 Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ USB 2.0
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Crumb32U4 V1.0 β ΡΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ/ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ (Π²ΡΠ΅Π³ΠΎ 41 x 18 ΠΌΠΌ!) ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ATmega32U4 ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΠΌ/Π½ΠΈΠ·ΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ USB 2. 0. ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΡ
ΡΠ°Π·ΡΠ΅ΠΌΠ°Ρ
. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΡΠΈΡΡΠ°Π»Π» XTAL Π²ΠΊΠ»ΡΡΠ΅Π½.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°:
ΠΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ USB HID. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊ USB (ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½ ΠΊΠ°ΠΊ USB-ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ USB-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ²) ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ΅Π΄ΡΠ΅Π΅ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅! ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ LUFA Leight Weight USB Framework Π΄Π»Ρ AVR ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π΄Π΅ΡΡ .
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ: 9 ΡΡ.0080
ΠΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ ΡΡΡΡΠ΅Π²ΡΡ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π²ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅Π»Ρ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΡΡΠ΅Π²ΡΡ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ² ΠΈ ΡΠΎΠ·Π΅ΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΈΡΡΠ°Π»Π» ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ±ΡΠ°Π½, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ Π»ΠΈΡΡΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ Π»ΠΈΡΡΠΊΠ΅.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅
- ATmega32U4 (32k Flash, 2.5k SRAM, 1k EEPROM)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ: 1xUSART, SPI, I2C/TWI, 26x IO Pins
- ΠΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°: 1x 8-Π±ΠΈΡΠ½ΡΠΉ / 2x 16-Π±ΠΈΡΠ½ΡΠΉ / 1x 10-Π±ΠΈΡΠ½ΡΠΉ (64 ΠΠΡ, Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ) ΡΠ°ΠΉΠΌΠ΅Ρ Ρ Π¨ΠΠ/Π·Π°Ρ Π²Π°ΡΠΎΠΌ/ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ, 12 ΠΊΠ°Π½Π°Π»ΠΎΠ². 10-Π±ΠΈΡΠ½ΡΠΉ ΠΠ¦Π, Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ, ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΡΠΏΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ/ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ
- 6-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ISP ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠΎΠΉ
- Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΊΡΠΈΡΡΠ°Π»Π»Π° XTAL
- Π Π°Π·ΡΠ΅ΠΌΡ: 2x 16-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, 1x 6-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ISP, mini USB-B (5 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²)
- 2,54 ΠΌΠΌ (1/10 Π΄ΡΠΉΠΌΠ°) ΡΠ΅ΡΠΊΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²
- Π Π°Π·ΠΌΠ΅Ρ: 40,64 ΠΌΠΌ x 17,78 ΠΌΠΌ
ΠΠ°Π³ΡΡΠ·ΠΊΠΈ
90 004 Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅:
Power-S-501 V1.