[PC활용, GNU(리눅스)] 우분투 18.04.01에서 AVR(Avrdude, gcc-Avr, binutils-avr 등) 사용하기 - 소개 및 설치
다음은 우분투에서 AVR 설치하는 방법과 소개를 하겠다.
1. AVRDude 소개
Avr dude는 AVR Downloader/Uploader이다.
아래의 사이트를 클릭하면 아래의 사이트를 볼 수 있다.
그림 1-1. AVRDude - AVRDude(Nongnu.org/avrdude)
AVRDUDE는 ISP (in-system programming) 기술을 사용하여 AVR 마이크로 컨트롤러의 ROM 및 EEPROM 내용을 다운로드 / 업로드 / 조작하는 유틸리티이다.
설명서는 다운로드 영역에서 다운로드하거나 온라인으로 읽을 수 있다.
역사(History)
AVRDUDE는 일단 Brian S. Dean이 Atemel AVR 마이크로 컨트롤러 시리즈의 인 시스템 프로그래머의 개인 프로젝트로이 컨트롤러 용으로 제공되는 Opensource 및 무료 소프트웨어 도구 모음의 일부로 시작되었다.
원래 이 소프트웨어는 FreeBSD 운영 체제용으로 작성되었으며, 사설 CVS 저장소에서 유지 관리되었으며 avrprog라는 이름으로 배포되었다.
Brian은 소프트웨어를 다른 운영 체제로 이식하는 것에 대한 관심이 높아짐에 따라 savannah.nongnu.org에서 공개적으로 프로젝트에 액세스 할 수 있도록하기로 결정했다.
AVRDUDE로 이름 변경은 AVRstudio 소프트웨어와 함께 Atmel이 배포한 avrprog 유틸리티의 모호성을 해결하기 위해 선택 되었다.
주요 특징
AVRDUDE의 주요 기능은 다음과 같다.
• easyautomation을 위해 모든 다운로드 및 업로드 기능 (퓨즈 바이트 처리 포함)에 대한 명령 줄 기반 사용자 인터페이스
eg. Makefiles에 포함시킴.
• 소위 터미널 모드에서 다양한 메모리 영역의 대화형 검사 및 수정.
또한 Atmel STK500 보드의 작동 매개 변수 (목표 전압, VAref, 마스터 클록 주파수)를 수정하기위한 옵션이 제공된다.
• Win32 플랫폼뿐만 아니라 모든 주요 POSIX 스타일 운영 체제에서 실행되는 것으로 알려져 있다.
POSIX 스타일 시스템에서 기존 운영 체제 드라이버를 사용하면 루트 권한이없는 보안 병렬 포트 액세스를 유지할 수 있다.
Win32 플랫폼에서 병렬 포트 액세스는 사용자 프로세스가 IO 레지스터에 직접 액세스 할 수 있게 하는 드라이버 (giveio.sys)를 이전에 설치해야 한다.
• AVR의 ISP 인터페이스를 컴퓨터의 병렬 포트 (추가 회로 없음) 또는 직렬 포트 (일부 추가 회로 필요)에 직접 연결하는 저렴한 ISPplug에서부터
버퍼 / 드라이버 칩을 사용하는 고급 ASP 어댑터 (예 : 74HC373), AVR910 스타일의 ISP 장치, Atmel STK500 보드 및 Atmel JTAG ICE mkII와 같은
직렬 연결 프로그래머까지 (더 복잡한) 가장 많이 사용되는 adapterscome 미리 정의 된 새로운 병렬 포트 어댑터를 추가하는 것은 구성 파일을
편집하는 것만큼 간단하다. (재 컴파일 필요없음)
• Intel Hex, Motorola S-Record 및 원시 바이너리 파일을 지원한다.
명령 줄에서 직접 메모리 내용 지정 (예 : 퓨즈 바이트의 경우 유용). 입력시 파일 형식을 자동으로 감지 할 수 있다.
• "터미널 모드"에서는 장치의 메모리 영역을 검사하고 수정할 수 있습니다. 이를 통해 상호 퓨즈를 설정하거나 몇 개의 EEPROM 셀을 수정할 수 있다.
도움을 받거나 버그를 신고하는 방법
AVRDUDE에 대한 지원을 받거나이 도구의 다른 사용자와 연락하려면 avr-chat 메일 링리스트를 참조하십시오.
프로젝트에 어떤 방식으로 기여하고자하는 사람들은 avrdude-dev 메일 링리스트에 가입 할 수 있다.
1-2. Savannah 홈페이지
아래의 사이트에 접속하면 프로젝트에 관해서 알 수 있다.
그림 1-2. savannah 홈페이지 - Nongnu.org
1-3. GCC-AVR - 소개
아래의 링크를 클릭하면 AVR-GCC에 대해서 자세히 살펴볼 수 있다.
https://gcc.gnu.org/wiki/avr-gcc
그림 1-3-1. AVR-GCC - 도도(Dodo)
1-4. 우분투 패키지에서의 AVR-GCC
https://packages.ubuntu.com/en/bionic/gcc-avr
그림 1-4-1. Ubuntu – Details of package gcc-avr in bionic - Ubuntu.org
2. 설치하기
우분투에서 AVR을 설치하는 명령어는 아래처럼 하면 된다.
번호 |
명령어 |
소개 |
비고(Remarks) |
1 |
sudo -i |
|
|
2 |
apt-get install avr* |
|
|
3 |
|
|
|
그림 2-1. AVR 설치하기 - 도도(Dodo)
그림 2-2. AVR 설치하기 - 도도(Dodo)
그림 2-3. AVR 설치하기 - 도도(Dodo)
3. AVRDude 환경설정
AVRDude에 대한 환경설정에 관한 것이다.
번호 |
명령어 |
소개 |
비고(Remarks) |
1 |
cd /etc |
폴더 이동하기 /etc |
|
2 |
vim avrdude.conf |
vim avrdude.conf 파일 수정하기 |
|
3 |
|
|
|
그림 3-1. AvrDude에 대한 환경설정 - 도도(Dodo)
그림 3-2. AvrDude에 대한 환경설정 - 도도(Dodo)
4. MakeFile 구성(MakeFile Configuration)
MakeFile은 소스 코드에서 실행 가능한 프로그램 및 라이브러리를 자동으로 빌드하는 유틸리티이다.
A. AVR MakeFile 템플릿 다운로드
여기에서 AVR 마이크로 컨트롤러 용 make 파일을 다운로드 해라.
Makefile.tpl.txt (AVR Microcontroller용 Makefile.tpl)
주의 : 다운로드 한 파일은 프로젝트 디렉토리에 저장해야 한다. 파일은 확장자가없는 "MakeFile"과 같아야 한다.
B. AVR MakeFile configurationAssumption : 마이크로 컨트롤러가 ATmega32이고 프로그래머 하드웨어가 JTAG ICE라고 가정한다.
그러면 굵게 표시된 다음 매개 변수를 편집해야 한다.
* 이것은 마이크로 컨트롤러 ID입니다. avrdude의 매뉴얼 페이지를보십시오. 즉
gedit /etc/avrdude.conf
*/PROJECTNAME=myproject /* Project name , This could be anything you wish
*/AVRDUDE_PROGRAMMERID=jtagmki
/*Programmer ids are listed in /etc/avrdude.conf
*/AVRDUDE_PORT=/dev/ttyUSB0 /* 병렬 포트용 드라이버가 로드되어 작동하는지 확인하고 권한을 777으로 하세요 * /
4-1. 소스코드
#include <avr/io.h>
int
main(
void
)
{
// Set Port D pins as all outputs
DDRD = 0xff;
// Set all Port D pins as HIGH
PORTD = 0xFF;
return
1;
}
4-2. 컴파일 하기
$ make hex /* Generate hex file */
$ make install /* Burn hex file in microcontroller ( Make sure your board is switched on and programmer is connected )*/
소스코드를 작성하고 make를 한다.
5. GCC-AVR에서 제시하는 컴파일 방법
원문으로 읽어보면 도움이 될 것이다.
Let's start with a simple C program, source.c:
#include <avr/io.h> int var; int main (void) { return var + SP; }
Your source directory then contains the following files:
The startup code gcrt1.S and macros.inc are verbatim copies from AVR Libc.
sectionname.h is included by macros.inc but we don't need it: Simply provide sectionname.h as an empty file.
For the matter of simplicity, we show how to compile for a device that is similar to ATmega8 so that we don't need to extend avr/io.h to show the work flow. In the case you copied avr/io.h to a new place, don't forget to add respective -isystem to the first two commands for source.c and gcrt1.S.
ATmega8 is a device in core family avr4, thus we compile and assemble our source.c for that core architecture. __AVR_ATmega8__ stands for the subheader selector you added to avr/io.h.
Similarly, we assemble the startup code for our device by means of:
Finally, we link the stuff together to get a working source.elf (assuming that RAM starts at address 0x124):
Voilà!
6. 맺음글(Conclusion)
AVR에 사용되는 주요 프로젝트 등에 대해서 살펴보았다.
7. 참고자료
1. gcc/Makefile.tpl at master · gcc-mirror/gcc · GitHub, Last Modified, Accessed by 2018-09-06, https://github.com/gcc-mirror/gcc/blob/master/Makefile.tpl
2. Welcome [Savannah], Last Modified, Accessed by 2018-09-06, http://savannah.nongnu.org/
3. AVRDUDE - AVR Downloader/UploaDEr, Last Modified 2010-01-08 09:14:46(CET), Accessed by 2018-09-06, https://www.nongnu.org/avrdude/
4. avr-gcc - GCC Wiki, Last Modified 2017-10-06 09:47:16, Accessed by 2018-09-06, https://gcc.gnu.org/wiki/avr-gcc
5. Ubuntu – Details of package gcc-avr in bionic, Last Modified, Accessed by 2018-09-06, https://packages.ubuntu.com/en/bionic/gcc-avr
'공부(Study) > 컴퓨터 - PC활용' 카테고리의 다른 글
[PC활용] 컴퓨터(노트북 / 랩탑)에서 디스크 - 소개 및 장착(SATA 타입) (0) | 2018.09.08 |
---|---|
[PC활용] SSL - "이 웹 사이트에서의 보안인증서 문제가 있습니다"에 대한 해결(인터넷 익스플로러, 파이어폭스) (1) | 2018.09.08 |
[PC활용, GNU(리눅스)] Eclipse(이클립스) - 프로젝트 소개 및 우분투 18.04.01 설치하기(Jee Photon) (0) | 2018.09.06 |
[PC활용] Canonical(케노니컬) - 우분투 18.04.1 프로젝트, 소개, 다운로드, 설치 (0) | 2018.09.05 |
[PC활용] Microchip(마이크로칩) - 소개 및 데이터시트, 아트맬 스튜디오(Atmel Studio 7) 설치하기 (0) | 2018.09.05 |