ATmega128 개발 도구

마이크로프로세서

2020. 4. 21. 13:14

 

[그림] ATmega128 실행 단계

  • 위 처럼 회색박스안에 있는 일련의 과정(컴파일, 링크 Hex 컨버팅)을 빌드(Build)라고 함
  • 리눅스 시스템에서는 메이크(Make)라고 하기도 함.

 

1. Compiler (컴파일러)

  • 고급언어(C, Java, ...) 프로그램을 기계어(Machine Language)로 번역하는 소프트웨어
  • 일반적으로 현재 컴파일러가 돌아가는 그 컴퓨터의 ISA를 가지는 기계어로 번역한다.
  • Intel - WIndows에서 컴파일하면 Windows - Intel 8086 ISA로 구성된 기계어로 번역됨
  • 우리가 개발은 PC에서 하기 때문에 대부분 Intel 8086 ISA로 구성된 기계어로 번역된다

 

2. Cross Compiler/Assembler (교차 컴파일러/어셈블러) 

  • 컴파일러가 수행되는 환경이 아닌 다른 프로세서의 기계어로 번역하는 컴파일러/어셈블러
  • 우선 일반 GCC컴파일러가 소스코드를 Windows Intel 기계어로 번역하면, 그 기계어 코드를
  • ATmega128에서 돌아갈 수 있는 기계어로 다시 재 번역해줌. (ATmega는 80x86 기계어 실행 못함)
  • 우리는 PC(Windows - Intel ABI)에서 개발하고, 교차 컴파일러/어셈블러를 써서 재번역한다

 

3. Linker (링커)

  • 우리가 소스코드를 하나의 파일에 작성하는 것이 아니라 여러개의 파일에 작성하면,
  • 기계어도 여러개로 떨어져서 나오는데, 이 때 링커가 컴파일된 각 파일을 조합해서
  • 하나의 기계어 프로그램으로 만듬

 

4. Hex File Converter

  • 컴파일러 -> 교차컴파일러 -> 링커에 의해 만들어진 기계어 소스코드를
  • ATmega128에 전송하기 전에, Hex File Converter를 이용하여 특정 포맷으로 컨버팅한다.
  • 기계어는 0100110...001과 같이 구분없이 배치되어있기 때문에 컨버터를 이용하여 특정 포맷으로
  • 잘라서 소스코드를 ATmega128에 전송해야하는데, 우리는 Intel-Hex Format이라는 포맷을 사용한다.

 

5. ISP Downloader (with Loader)

  • ISP 다운로더는 In System Programmable 다운로더의 약자로, PC에서 개발한
  • 소프트웨어를 손쉽게 ATmega128 보드(타겟 보드)의 플래시메모리에 쓰게 해준다.
  • PC에서 쓰이는 로더(Loader)와 비슷하면서, 기계간의 통신이 가능하게 해준다는 특징이 있다.

 

6. Debugger (디버거)

  • 프로그램 실행 중 변수, 레지스터의 상태를 보여주고 프로그램을 문장별로 제어할 수 있게 하며,
  • 사용자로 하여금 프로그램의 오류를 찾기 쉽게 도와주는 소프트웨어이다 (IDE같은 개발 도구임)

 

7. Reference

 

마이크로 프로세서 및 실습 Ⅰ

마이크로 프로세서 및 실습

www.kocw.net