• 검색 결과가 없습니다.

마이크로컨트롤러 시스템 개발 환경

N/A
N/A
Protected

Academic year: 2021

Share "마이크로컨트롤러 시스템 개발 환경"

Copied!
19
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

C 언어로 배우는 8051 마이크로프로세서

마이크로컨트롤러 시스템 개발 환경

(2)

학습목표 및 목차

 마이크로컨트롤러 시스템을 개발하는 방법을 이해한다.

 프로그램을 개발하는 데 필요한 도구를 안다.

 통합 환경의 컴파일러를 사용할 수 있다.

 다운로드 프로그램을 사용할 수 있다.

01. 마이크로컨트롤러 시스템 개발 방법 02. 컴파일러

03. ROM화 작업

(3)

3/58

01. 마이크로컨트롤러 시스템 개발 방법

1.1 시스템 개발 순서

 목적하는 하드웨어를 제작하여 동작시키기까지의 순서

① 하드웨어 제작

② 소스 프로그램 작성

③ 컴파일 작업

④ 시뮬레이션 수행(optional)

⑤ ROM화 작업

⑥ 타깃 보드에 탑재하여 실행

⑦ 동작 확인

(4)

01. 마이크로컨트롤러 시스템 개발 방법

1.2 하드웨어 제작

 인두기, 인두기 스텐드

인두기는 저항이나 커패시터 등을 프린트 기판에 납땜할 때 필요하다. 여러 가지 종류 가 있으나 끝이 뾰족하고 가는 것, 소비전력이 20~30W 정도의 것을 선택한다. 인두기 스텐드는 인두기를 고정시키는데 사용된다.

 니퍼(Nipper), 롱 노즈(Long Nose)

니퍼는 저항이나 커패시터 등을 기판에 납땜한 다음에 여분의 리드(lead) 선을 절단하 는데 사용된다. 롱 노즈는 전선이나 부품을 잡아 편하게 납땜할 수 있다.

스트리퍼(stripper)

직경 0.25mm 정도의 래핑선의 피복을 벗기는데 사용

 납흡입기(solder sucker)

수동소자나 DIP 타입(다리(lead)가 달린) 부품의 납땜제거에 사용

인두기 인두기 스텐드 니퍼 롱 노즈 스트리퍼 납흡입기

(5)

5/58

01. 마이크로컨트롤러 시스템 개발 방법

1.3 프로그램 작성

순서도 작성

순서도(flow chart)는 알고리즘을 표준화된 기호나 도형으로 나타낸 것이다. 즉, 순 서도는 넓은 의미의 알고리즘이라고 할 수 있다.

 코딩(Coding)

 코딩은 알고리즘이나 순서도에 서술된 내용을 원하는 언어로 바꾸는 것이다. 이 단계는 단순히 알고리즘이나 순서도로 표현된 단계를 컴퓨터가 인식할 수 있는 언어로 바꾸는 과정이다.

 C 언어나 어셈블리어를 사용한다.

 디버깅(Debugging)

 디버깅은 프로그램 중의 오류를 찾는 과정이다. 오류에는 문법적 오류(semantic error)와 논리적 오류(logical error)가 있다.

 문법적 오류는 번역기가 번역과정에서 자동으로 지적하여 주므로 크게 문제되지 않는다. 그러나 논리적 오류를 찾는 방법은 프로그램을 프린터로 출력하여 내용 을 살피는 방법과 프로그램의 중간에 추적 루틴을 삽입하는 방법이 있다.

(6)

1.4 프로그램 실행 과정

01. 마이크로컨트롤러 시스템 개발 방법

START

원시 프로그램 작성

오브젝트 모듈의 링크 기계어로 번역

HEX 파일 작성

에디터를 이용하여 윈시파일 작성

컴파일러를 이용하여 소스파일을 컴파일하여 목적파일을 생성

에러 발생

다운로딩 또는 ROM화

END

오류가 있으면 수정하여 다시 컴파일

링커를 이용하여 ABS 파일 생성 롬 에뮬레이터, 인서킷 에뮬레이터, 롬 라이터에 전송하기 위한 형태인 HEX 파일로 변환

YES

NO

실 행 디버깅

다운로딩 프로그램을 이용하여 타겟 시스템에 전송하거나 ROM화

타겟 시스템에 전송된 프로그램을 실행

(7)

7/58

01. 마이크로컨트롤러 시스템 개발 방법

1.5 프로그램 개발 지원도구

 에디터

 프로그램을 작성하기 위해 사용하는 일종의 워드 프로세서로서 Q-EDIT, ULTRA EDITOR, 메모장, 워드패드 등이 사용

크로스 컴파일러(cross compiler)

 C 컴파일러는 C로 작성된 소스 코드를 기계어로 번역하는 프로그램이다.

마이크로컨트롤러 부분에서는 현재까지 고급언어 컴파일러로는 C 컴파일 러만 존재한다.

 링크 & 로케이터(Link & Locator)

 오브젝트를 ROM에 저장할 수 있는 실행 가능한 절대 파일(Absolute

Object File)로 만들어 주는 과정이다. 관련 오브젝트들과 라이브러리들을 링크시키고 주소지정을 함으로써 실행 가능한 Absolute File이 만들어 지 는 것이다.

* 빌드(Build]= 크로스 컴파일러+ 링크 & 로케이터

(8)

02. 컴파일러

 상용 8051 컴파일러 및 어셈블러

Keil, IAR, Raisonance라는 회사에서 제작. 상용 프로그램인 이들 컴파일러 들은 8051용 통합개발환경(IDE)을 제공하고 있으며, 사용에 제한이 있는 데 모 버전을 무료로 배포

 공개용 8051 컴파일러 및 어셈블러

MCS-IDE는 ASEM-51 어셈블러와 SDCC를 사용한 개발용 통합환경을 제공

MCS-IDE http://www.opcube.com/home.html

RIDE51 평가판

http://www.raisonance.com/

Keil C 평가판

http://www.keil.com/

IAR C 평가판

http://www.iar.com/

(9)

9/58

02. 컴파일러

2.2 MCS-IDE 실행 과정

MIDE-51 실행 초기화면 M-IDE를 실행

(10)

02. 컴파일러

소스파일 작성

소스 파일을 새로 작성하거나([File]-[New] 메뉴

또는 (New)) 기존 소스 파일을 연다([File]-[Open] 메뉴 또는 (Open)).

(11)

11/58

02. 컴파일러

컴파일이 완료된 화면

[Build]-[Build] 메뉴(또는 (Build current file))를 클릭하면 컴파일 된다.

프로그램에 에러가 없으면 최종 결과물인 *.hex 파일이 만들어진다. (Open)).

(12)

02. 컴파일러

2.5 컴파일러 사용 시 주의 사항

 컴파일러마다 다른 점 : 헤더 파일, 비트 단위 제어 방식

P04_01a.c

#include <reg51.h>

sbit sw = P2^0;

void main(void) {

P2=0xff; // 포트 2를 입력으로 사용 do {

if (sw == 0) P1=0x79; // 7-세그먼트에 1 출력 if (sw == 1) P1=0x40; // 7-세그먼트에 0 출력 } while(1);

}

Keil이나 RIDE51에서 동작하는 프로그램

P04_01b.c

#include <8051.h> // <reg51.h> 가능

void main(void) {

P2=0xff;

do {

if (P2_0 == 0) P1=0x79;

if (P2_0 == 1) P1=0x40;

} while(1);

}

MIDE-51에서 동작하는 프로그램

(13)

13/58

02. 컴파일러

2.5 컴파일러 사용 시 주의 사항

 컴파일러마다 다른 점 : 인터럽트 서비스 루틴을 작성하는 방법

 MIDE-51, RIDE51, Keil : ‘void timer0(void) interrupt 1’

 IAR : ‘interrupt [0x0B] void TF0_int(void)’

(14)

03. ROM화 작업

 소스 프로그램을 작성한 후 컴파일하여 링크시키면 핵사파일(*.hex)이 생 성된다.

 생성된 핵사파일을 사용자가 만든 타겟보드(target board)에 실행시키는 방법은 다음과 같이 4가지가 있다.

프로그램 실행 방법 PC

ROM Writer

Target Board

ROM

ROM Emulator In-circuit

Emulator

Serial ISP

(15)

15/58

03. ROM화 작업

3.1 롬 라이터를 이용하는 방법

 롬 라이터(ROM writer)를 이용하여 hex 파일을 ROM에 쓴 후 타겟보드에 장착하여 실행하는 방법

 롬 라이터, EPROM 또는 Flash ROM 타입의 마이크로컨트롤러, 롬 이레이 저(ROM eraser)를 사용한 개발 환경을 갖추게 되는데, 이 환경에서는 롬 라이팅, 장착 실험, 롬 지움의 작업을 계속 반복해야 하는 불편이 있음

 가장 불편한 것은 칩 내부의 실행 상황을 확인할 수 없다는 것과 ROM의 내용을 지우는데 많은 시간이 소요된다

(16)

03. ROM화 작업

3.2 롬 에뮬레이터를 이용하는 방법

 롬 에뮬레이터가 타겟 시스템의 ROM 역할을 함

 마이크로컨트롤러로 제어되는 시스템을 개발할 때, 프로그램의 내용을 변 경하면서 동작상태를 확인해야 하기 때문에 많은 시간과 노력이 필요

 프로그램의 내용을 변경할 때마다 그것을 ROM에 넣어서 장착해야 한다면 많은 시간과 노력이 소요된다. PC에서 프로그램을 변경해서 롬 에뮬레이 터에 보내면 이것이 타겟 시스템의 롬 역할을 함으로써 개발을 빠르고 쉽 게 할 수 있다. 롬 에뮬레이터는 PC가 보낸 프로그램을 자신의 RAM에 저 장한다. 타겟 시스템의 ROM을 빼내고 그 자리에 롬 에뮬레이터를 꽂음으 로써 롬 에뮬레이터가 타겟 시스템의 롬 역할을 하도록 한다.

(17)

17/58

03. ROM화 작업

3.3 인서킷 에뮬레이터를 이용하는 방법

 인서킷 에뮬레이터는 타겟 시스템의 마이크로컨트롤러 역할을 한다. 즉, 타겟 시스템의 8051의 빼내고 그 자리에 인서킷 에뮬레이터의 출력 핀을 꽂아 인서킷 에뮬레이터가 타겟 시스템의 마이크로컨트롤러 역할을 하게 한다.

 원시 프로그램을 PC가 어셈블하고 디버깅해서 HEX 파일로 만든 후, 인서 킷 에뮬레이터로 다운로딩하면, 인서킷 에뮬레이터는 그 프로그램을 자신 의 메모리에 저장하고 이 프로그램을 자신의 8051로 실행시킨다.

(18)

03. ROM화 작업

3.4 직렬 ISP 방법

 SPI(Serial Peripheral Interface)를 이용해 별도의 장비가 필요 없이 간 단한 회로 구성으로 쉽게 프로그램을 ROM에 라이트할 수 있다.

 이 방법은 내부의 프로그램 메모리가 Flash-ROM 구조로 되어 있는 마이 크로컨트롤러에 적용 가능한 방법이며, 대략 1000회 정도 재사용할 수 있 다. 최근에 아트멜사에서 출시한 제품(ATtiny12, ATtiny15, AT89S, AT90S 시리즈, ATmega 시리즈)에 적용 가능

(19)

IT CookBook, C 언어로 배우는 8051 마이크로프로세서

참조

관련 문서

STEAM 참여하는 학생들중 처음에 단순한 과학실험인줄 알고 접근했는데 여러 가지 STEAM요소들을 가지고 프로그램을 개발, 적용하여 참여해보니 더욱

§ 학생들이 주도적으로 연구계획서를 작성하며 여러 가지 참고문헌을 읽고, 음원을 분석하는 프로그램을 연구하는 과정에서 주변에 악기를 잘 다루는 친구들,

프로그램을 마치고 난 후 학생들이 이야기하였던 문제점들을 모아 다음 프로그램의 적용 전에 반영하기로 하였습니다... 이 보고서 내용을 대외적으로

셋째 , 진로와 연계한 초등학생 STEAM 프로그램을 통해 학생들은 과학에 대한 흥미도가 증가하였다.. 셋째 , 진로와 연계한 초등학생 STEAM 프로그램을

또 다른 형태로는 QR-LPD라고 있는데요, 이 방식은 격벽으로 나뉘어져 있는 기판 사이에 극성 이 다른 흰색과 검은색 입자를 에어로졸 상태로 주입하고 전기장의 방향에

Ÿ 중심과목의 성취기준을 중심으로 연계과목의 성취기준을 고려하여

각 동아리활동 STEAM 프로그램을 위한 공동연구 / 주제관련 활동과제개발 연구 각 동아리활동 STEAM 프로그램을 위한 공동연구 /

과학중점학교인 본교에서는 정규교과·비교과체험활동에 STEAM형 프로그램을 적용시켜 STEAM형 프로그램을 활성화시켜 학생들의 과학에 대한 흥미와 관심을 유도하여