반응형

 

http://www.idogendel.com/en/archives/191 에 소개된 내용입니다.

 

필요한 패키지 설치

Code::Blocks

 

sudo apt-get update

sudo apt-get install codeblocks

 

 

Avrdude

  64비트 리눅스 인경우에는 추가로 libc6-dev-i386를 설치해주어야 합니다.

sudo add-apt-repository ppa:pmjdebruijn/avrdude-release

sudo apt-get update

sudo apt-get install binutils-avr gcc-avr avr-libc avrdude libc6-dev-i386

 

 

ISP programmer 연결

USB 타입이 없는 관계로 serial to usb에 연결해서 사용하기로 했습니다. 노트북에 연결하고서 dmesg로 로그를 확인해봅니다. ttyUSB0로 잡혔습니다.

제가 사용한 ISP는 AVRISP mkII 호환 되는 프로그래머입니다.



 

 

코드 블록을 실행시켜보니..

Codeblocks

 

두 개의 컴파일러가 잡혔네요.. 일단 확인을 눌러 그냥 넘어갔습니다.

 

 

메뉴에서 File – New – Project를 선택합니다. 그리고 AVR 프로젝트를 선택하고 GO를 클릭합니다.

 

 

Project title이름으로 Blink를 적고나서 "Folder to create project in:" 항목에 저장할 위치를 지정해주면 나머지 두 항목은 자동으로 입력이 됩니다. Next를 클릭합니다.

 

 

Debug 항목을 체크해제하고 Next를 클릭합니다.

 

 

프로세서 모델을 선택해줍니다. 제 경우에는 atmega128입니다.

그리고 Create Fuse..를 체크해제하고 Finish를 클릭합니다.

 

아래 처럼 코드를 작성하고 메뉴에서 Build – Build를 선택하면 컴파일이 됩니다.

  1. #include <avr/io.h>    
  2. #include <util/delay.h>    
  3.       
  4. int main(void) {    
  5.       
  6.   DDRB = 0xFF;    
  7.         
  8.   while (1) {    
  9.         
  10.     PORTB  = 0xFF;    
  11.     _delay_ms(300);    
  12.         
  13.     PORTB = 0x00;    
  14.     _delay_ms(300);    
  15.         
  16.   }    
  17.   return 0;    
  18.       
  19. }    

 

 

-------------- Build: Release in Blink (compiler: GNU GCC Compiler for AVR)---------------

 

avr-gcc -Wall -mmcu=atmega128 -DF_CPU=16000000UL -Os -I/usr/include -c main.c -o obj/Release/main.o

avr-g++ -L/usr/lib -o bin/Release/Blink.elf obj/Release/main.o -mmcu=atmega128 -Wl,-Map=bin/Release/Blink.map,--cref

Output file is bin/Release/Blink.elf with size 4.36 KB

Running project post-build steps

avr-objdump -h -S bin/Release/Blink.elf > bin/Release/Blink.lss

avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex bin/Release/Blink.elf bin/Release/Blink.hex

avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex bin/Release/Blink.elf bin/Release/Blink.eep

Process terminated with status 0 (0 minute(s), 0 second(s))

0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

 

 

hex파일이 생성된 위치로 이동합니다.

 

 

ISP를 연결하고 다음 명령을 사용했습니다. avrisp2는 사용중인 프로그래머 이름이고 m128는 사용중인 atmega128, 그리고 마지막에 hex파일이름을 적어주었습니다.

sudo avrdude -c avrisp2 -p m128 -U flash:w:Blink.hex

 

 

이제 포트B에 LED를 연결해보면 깜빡이는 걸 볼 수 있습니다…

 

자세한 옵션은 아래 사이트를 참고하세요

http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions

 

  

반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">