63. 마이크로컴퓨터 개발 환경
에뮬레이터
에뮬레이터란 마이크로프로세서(MPU)나 마이크로컨트롤러(MCU), FPGA 등의 연산 처리 기능을 전용 하드웨어와 소프트웨어 환경으로 모방해서 구축하고 프로그램의 디버그 등을 실행하는 장치입니다. 에뮬레이터는 인서킷 에뮬레이터와 온칩 에뮬레이터로 크게 나눌 수 있습니다. 다음의 표에 각각의 특징에 대해 설명합니다.
인서킷 에뮬레이터 (ICE:in-circuit emulator)
인서킷 에뮬레이터는 마이크로컴퓨터나 마이크로프로세서의 기능을 모방해서 실현하는 장차입니다. 일반적으로 ICE(아이스라고 발음)라고 합니다. 사용할 때는 프린트 기반에 설치한 마이크로컴퓨터를 분리하여 IC 소켓에 접속합니다. 따라서 실제 사용 환경과 가까운 상태에서 디버깅 작업을 실행합니다. 디버깅 작업을 지원하는 기능으로는 명령 단계 실행이나 브레이크 포인트(프로그램의 실행을 일시적으로 멈추게 하는 위치)의 설정, 마이크로컴퓨터나 마이크로프로세서 내부의 메모리와 레지스터의 내용 확인 등이 있습니다. 또한, 프로그램에 과부하가 걸렸을 때 강제로 멈추게 하는 기능도 포함되어 있습니다. 주로 임베디드 기기에 탑재하는 소프트웨어 개발에 사용합니다.
온칩 에뮬레이터 (on-chip emulater)
온칩 에뮬레이터는 마이크로컴퓨터나 마이크로프로세서를 프린트 기판에 설치한 상태에서 프로그램의 디버깅을 실행하는 장치의 총칭입니다. 마이크로컴퓨터나 마이크로프로세서 내부에 디버깅 회로를 탑재시키고 그 회로에서 수집한 정보를 이용해서 디버깅 작업을 합니다. 정보는 먼저 디버깅용 인터페이스를 통해 에뮬레이터 장치로 보내지고 그곳에서 USB나 이더넷으로 접속된 호스트 마이크로컴퓨터로 전송됩니다. 인서킷 에뮬레이터와 비교하면 기능은 크게 떨어지지만, 가격이 낮다는 점과 프로세서와의 연결이 간단하다는 장점을 가지고 있습니다. 온칩 에뮬레이터는 마이크로컴퓨터(마이크로프로세서)와 에뮬레이터 유닛 사이의 접속 방식에 따라 몇 가지 종류가 있습니다. 구체적으로는 JTAG 에뮬레이터와 전용 에뮬레이터, 원격 모니터 디버거, ROM 에뮬레이터 등입니다.
통합 개발 환경 (IDE:integrated development environment)
컴파일러와 문서 편집기, 디버거와 같은 다양한 툴을 하나의 그래픽 사용자 인터페이스(GUI)에서 이용할 수 있도록 한 소프트웨어 개발 환경입니다. 대표적인 통합 개발 환경으로는 미국 IBM사가 개발한 ‘Eclipse(이클립스)’와 미국 프리스케일 세미컨덕터 사의 마이크로컴퓨터용으로 개발한 ‘CodeWarrior(코드워리어)’, 르네사스 테크놀로지의 마이크로컴퓨터용으로 개발한 ‘Hign-Performance Embedded Workshop’ 등이 있습니다.
디버거
프로그램의 결함(버그)을 발견, 수정하는 작업을 지원하는 소프트웨어 툴입니다. 대부분은 인서킷 에뮬레이터(ICE)와 같은 하드웨어와 연동시켜 사용합니다.
컴파일러
프로그래밍 언어로 기술한 프로그램의 소스 코드를 컴퓨터가 직접 실행할 수 있는 기계(머신)어 프로그램으로 변환하는 소프트웨어 툴입니다. 컴파일러를 사용하여 변환하는 과정을 컴파일이라고 합니다. 변환한 프로그램은 오브젝트 코드라 하고 인터프리터 언어와 비교하면 실행 속도는 매우 빠릅니다.
링커
컴파일러에 의해 소스 코드로부터 변환된 오브젝트 코드에 필요한 라이브러리를 추가해서 실행할 수 있는 프로그램을 생성하는 소프트웨어 툴입니다. 일반적으로는 컴파일러에 통합되어있는 경우가 많습니다. 개발 환경에 따라서는 컴파일러와 링커 처리를 합쳐 빌드라고 합니다.