이 블로그는 임베디드 컴퓨터를 이용한 장치(시스템) 개발과 원격제어에 필요한 지식을 공유 하기 위한 블로그 입니다.
실제 개발과 프로그램 예를 위하여 Microchip 사의 ATmega128를 사용한 보드와 Arduino Mega 보드(ATmega2560), Raspberry Pi, Raspberry Pi Pico, WiFi 모듈을 사용 합니다.

atmega2560-develop-env

ATmega2560 develop Environment
  개인용 컴퓨터(PC)와 Arduino 2560 보오드 (ATmega2560)를 사용 한 개발 환경


  • Microchip Studio 7(Atmel Studio 7): IDP(Integrated Development Platform)
    • PC에 설치되는 개발용 Tool로서 다음과 같은 기능을 수행 한다.
      • Source Program 작성 기능
        • Text Editor 를 내장하고 있기 때문에 C/C++언어와 Assembly 언어 Source Code를 작성할 수 있다.
      • Advanced Software Framework(ASF)를 포함 하고 있다.
        • ASF는 광범위한 source code library와 Drivers, Communication stacks, 1,600+ project examples(source code 포함), Graphic services, Touch functionality를 포함 하고 있어서 개발 시간을 단축 하고 신뢰성 높은 프로그램을 작성 할 수 있다.
      • Cross Assembler 기능
        • Cross Assembler 를 포함하고 있기 때문에 개발용 Tool(PC에 설치된)에서 작성된 프로그램을 Cross Assemble 하여 AVR에서 실행되는 파일로 만들 수 있다.
      • Cross C/C++ Compiler 기능
        • Cross C/C++ Compiler 를 포함하고 있기 때문에 C와 C++언어로 작성된 프로그램을 Cross Compiler 하여 AVR에서 실행되는 파일로 만들 수 있다.
      • Simulator 기능
        • Microsoft Window 환경에서 AVR Controller의 실행 화일을 실행 시킬 수 있도록 한다.
      • Binary File(Hex 또는 elf Format)을 타켓 보오드에 다운로드하는 기능.
        • 실행 코드를 AVR의 Flash ROM에 쓰는 기능.(USBISP, Down Loader 등을 이용)
      • Debugger 기능
        • Window 환경의 Debugger를 사용하여 프로그램 디버깅이 가능하다.
      • 외부 Tool 사용 환경 제공
    • Design Software(IDP : Integrated Development Platform)다운로드 및 설치
    • Atmel Studio 7 의 설치 후 실행 화면 예

  • Embedded Microcomputer
    • 이 예에서 사용 하는 ATmega2560 Microcontroller( 이 칩이 Computer로 이용 되기 보다는 장치의 제어에 이용 되기 때문에 이 칩의 제조사인 Atmel 사에서는 이 칩을 Microcontroller 라고 한다.)의 중요 Spec.은 아래와 같다.
      • 32개의 8 Bits Registers
      • 256K Bytes Flash Memory
      • 8K Bytes Internal SRAM
      • 4K Bytes EEPROM
      • 86 개의 Programmable I/O Line
        • Two 8-bit Timer/Counters
        • Four 16-bit Timer/Counter
        • 16-channel, 10-bit ADC
        • Four Programmable Serial USART
        • Master/Slave SPI Serial Interface
        • Byte Oriented 2-wire Serial Interface
  • Uploader
    • PC에 설치된 개발용 Tool(IDP)을 사용 하여 개발된 실행 File(Embedded Computer에서 실행 됨)을 Embedded Computer로 Up Load 하는 Software Tool.
    • Uploader가 실행 코드를 Embedded Computer로 Up Load 하기 위하여는 Uploader 와 Embedded Computer 사이에 통신이 가능 하게 하는 Boot Loader 프로그램(Arduino 2560 보오드에는 optiboot Bootloader가 설치 되어 있음)이 Embedded Computer에 설치 되어 있어야 한다.
    • 참고자료: Microchip Studio 7에서 Mega 2560에 Hex file Uploading 하기
  • Boot Loader
    • Embedded Computer의 Boot 메모리 영역에 설치되어 PC에 설치된 Down Loader와 통신 하며 실행 코드를 Embedded Computer로 Uploader 할 수 있게 하는 프로그램.
    • Arduino 2560 보오드 (ATmega2560)는 optiboot Bootloader를 사용하기 때문에 Studio 7에 외부 Uploader Tool(AVRDUDE)을 설치 하여 사용 한다. "Microchip Studio 7에서 Mega 2560에 Hex file Uploading 하기" 페이지 참고 요.