AVR upload executable file in Terminal
#
Installation#
macOS#
Linux(debian)#
WindowsDownload: http://download.savannah.gnu.org/releases/avrdude/
.zipํ์ผ์ ๋ฐ์ผ์๊ณ ์ํ๋ ์์น์ ์์ถ์ ํผ ๋ค, ํ๊ฒฝ ๋ณ์์ Path์ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฑ๋กํ๋ฉด ๋ฉ๋๋ค.
#
ProgrammerAtmel-ICE, USBtoUART, stk500 ๋ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
#
USB to UART#
CH340G ๋๋ผ์ด๋ฒ#
macOSDownload: http://www.wch.cn/download/CH341SER_MAC_ZIP.html
#
Linux(debian)USB to UART ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ttyUSBx์ ์์ ๊ถ์ด root์๊ฒ ์๊ณ ๊ทธ๋ฃน์ด dialout์ด๊ธฐ ๋๋ฌธ์ ๊ถํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ dialout ๊ทธ๋ฃน์ ์ถ๊ฐ์์ผ ์ฃผ๋ฉด ๋ฉ๋๋ค.
Download: http://wch.cn/downloads/CH341SER_LINUX_ZIP.html
make
ํ ๋, error๊ฐ ์ถ๋ ฅ๋๋ฉด ch34x.c ์ #include <linux/sched/signal.h>
๋ฅผ ์ถ๊ฐํ๊ณ wait_queue_t๋ฅผ
wait_queue_entry_t`๋ก ์์ ํ ๋ค, ๋ค์ make๋ฅผ ์๋ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
#
WindowsDownload: http://wch.cn/downloads/CH341SER_ZIP.html
#
FTDI ๋๋ผ์ด๋ฒ ์ค์น#
Linux(debian)Ubuntu 11.10 ์ดํ ๋ฒ์ ์์๋ FTDI ๋๋ผ์ด๋ฒ๊ฐ ์ปค๋์ ํตํฉ๋์ด ์์ต๋๋ค.
#
macOS, WindowsDownload: https://www.ftdichip.com/Drivers/VCP.htm
#
CP2102 ๋๋ผ์ด๋ฒ ์ค์น#
Linux(debian)Linux 3.x.x์ Linux 4.x.x ๋ฒ์ ์์๋ CP2102 ๋๋ผ์ด๋ฒ๊ฐ ์ปค๋์ ํตํฉ๋์ด ์์ต๋๋ค. Ubuntu ๊ธฐ์ค 11.10 ~ 18.04 LTS๋ก ํ์ธ ๋ฉ๋๋ค.
#
macOS, WindowsDownload: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
#
Upload์ ๋ก๋๋ฅผ ์งํํ๊ธฐ ์ ์ ์คํ ํ์ผ์ธ .elf ํ์ผ์ด๋ .hex ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค.
avr-objcopy๋ binutils-avr์ ํฌํจ๋์ด ์๋ ์ค๋ธ์ ํธ ํ์ผ์ ๋ณต์ฌํ๊ณ ๋ค๋ฅธ ํ์ผ๋ก ๋ณํํด์ฃผ๋ ๋ช
๋ น์
๋๋ค. ์
๋ก๋ํ ๋, <executable file>
์ ์
๋ ฅํ์ผ๋ก ๋ฐ์๋ค์ด์ง ๋ชปํ๋ ๊ฒฝ์ฐ, ์๋ ๋ช
๋ น์ ํตํด .elf ํ์ผ์์ ํ์ํ ๋ถ๋ถ์ .hex ํ์ผ์ ์ ์ฅํฉ๋๋ค.(avrdude ๋ฒ์ ์ด ๋ฎ์ ๊ฒฝ์ฐ elf๋ฅผ ์
๋ ฅํ์ผ๋ก ์ฌ์ฉํ์ง ๋ชปํฉ๋๋ค.)
#
avrdudeRef: https://nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions
avrdude๋ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ฌ์ฉํ์ฌ AVR MCU์ ์คํ ํ์ผ์ ์ ๋ก๋ํ๊ฑฐ๋ ํจ์ฆ ๋นํธ, ๋ฝ ๋นํธ ๋ฑ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ ๋๊ตฌ์ ๋๋ค. ์๋ ์ต์ ์ ํ์ธํ๊ณ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋จธ์ AVR MCU์ ๋ฐ๋ผ ์ต์ ์ ์ ํํ์๋ฉด ๋ฉ๋๋ค.
-p<partno>
: ์คํ ํ์ผ์ ์ ๋ก๋ํ MCU ์ค์ .-c<programmer-id>
: ์ฌ์ฉํ ํ๋ก๊ทธ๋๋จธ(์ ๋ก๋ ์ฅ์น) ์ค์ .-P<port>
: ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฐ๊ฒฐ๋ ํฌํธ๋ฅผ ์ค์ ํฉ๋๋ค.-b<baudrate>
: UART ํต์ ์ ํตํด ์ ๋ก๋ํ๋ ๊ฒฝ์ฐ ๋ณด์ค ๋ ์ดํธ๋ฅผ ์ค์ .-B<bitclock>
: JTAG ์ธํฐํ์ด์ค ๋๋ ISP ํด๋ญ์ ๋ํ ๋นํธ ํด๋ญ ์ฃผ๊ธฐ. ๊ฐ์ ms ๋จ์๋ก ๋ถ๋์์์ ์ ์ฌ์ฉ.- 1/<bitclock> MHz
- ์ฌ์ฉ๋ AVR MCU ํด๋ญ์ 1/4 ์ดํ๋ก ์ค์ ํ๋ ๊ฒ์ด ์ ๋นํจ.
-v
: ์ ๋ก๋ ์ ์์ธ ์ ๋ณด ํ์.-U<memtype:op:filename[:format]>
: ์ฌ์ฉํ ์ ์ฅ ๊ณต๊ฐ, ์คํ ๋ฐฉ๋ฒ, ์ ๋ ฅ ํ์ผ, ํ์ผ ํ์ ์ค์ .memtype
: eeprom, flash, fuse, boot ๋ฑ.op
: r, w, v.format
: i(intel hex), e(ELF), a(auto detect) ๋ฑ. e, a ๋ฑ์ ์ ๋ก๋ํ ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅ.- .elf ํ์ผ ์
๋ก๋:
-Uflash:w:[filename].elf:e
- .hex ํ์ผ ์
๋ก๋:
-Uflash:w:[filename].hex:i
#
stk500(@todo stk500 ์ฌ์ฉ์ ISP ํด๋ญ ์ค์ ํ ์คํธ ์๋จ.)
#
avrispmkII#
arduinonano์ ๊ฒฝ์ฐ Old Bootloader๋ฅผ ์ฌ์ฉํ๋ฉด -b57600
์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
#
atmelice_isp(@todo atmelice_isp ์ฌ์ฉ์ ISP ํด๋ญ ์ค์ ํ ์คํธ ์๋จ.)