자료실

뒤로가기
제목

[PIC 프로그래밍] 5. 프로그래밍언어 - Hex 파일, 어셈블리, C언어

작성자 가치창조기술(ip:)

작성일 2011-08-09 14:21:06

조회 2443

평점 0점  

추천 추천하기

내용

 

2.1 프로그래밍 언어

Programming microcontroller - Machine Code




마이크로컨트롤러는 플래쉬 메모리에 올라와 있는 프로그램을 실행합니다. 이 실행가능한 코드는 0과 1로 구성이 되어 있으며 마이크로컨트롤러에 따라 12, 14, 16비트의 너비의 워드로 구성되어 있습니다. 이 워드는 CPU에게는 명령어로 여기어 지게 됩니다. 여러가지 이유로 이 실행코드는 16진수(hexadecimal)로 표기를 하는데 이 코드를 HEX코드라고 합니다.

마이크로컨트롤러가 인식하는 모든 인스트럭션을 인스트럭션 셋이라고 이야기하며 PIC MCU의 인스트럭션 셋은14비트 프로그래밍 워드를 가진 총 35개의 인스트럭션을 가지고 있습니다.




Programming microcontroller - Assembly

 

0과 1로 되어 있는 실행코드를 직접 작성하는 것은 매우 어려운 일이죠. 그래서 어셈블리어라는 언어가 만들어 졌습니다. 어셈블리어의 인스트럭션은 인스트럭션의 이름을 축약하여 명령어로 사용합니다. 각각의 인스트럭션은 MCU의 각각의 메모리위치에 대응되어 프로그램을 살펴보기가 간단하여졌습니다.

하지만 이 역시 모든 인스트럭션을 다 알고 있어야 되고 여전히 기계어와 가까운 언어여서 불편함이 많았습니다. 그 결과 좀더 상위레벨의 프로그램 언어가 만들어 지게 되었고 그중하나가 C언어 입니다. 이러한 언어의 장점은 프로그램 작성이 간단하다는 점입니다. 어떻게 각각의 명령이 실행되는지 몰라도 프로그램을 작성할 수가 있게 되었습니다.

 

 

어셈블리 언어와 비슷하게, 컴파일러라고 불리는 프로그램은 소스코드를 기계어로 변환을 시키는 역활을 합니다. 어셈블리 컴파일러와는 다르게 이러한 컴파일러는 가능한 짧은 코드를 항상 생성하지는 않습니다.

 

 

위의 그림은 상위레벨의 프로그램언어로 작성된 코드가 하위 레벨 코드로 바뀌어 장비에 적용되는 것을 표현한 그림입니다.

아래는 C언어로 작성된 간단한 프로그램 예제입니다.:

 

상위레벨 프로그래밍 언어의 장점

 

RISC 아키텍쳐에서 어셈블리 프로그래밍을 해보셨다면, 인스트럭션이 매우 적다는 것을 느끼실 것입니다. 예를들어, 두개의 숫자를 곱하는 인스트럭션이 없어서 곱하기 대신 더하기를 연속적으로 해주어야 하는 경험을 해보셨을껍니다. 상위레벨 프로그래밍 언어에서는 소스코드상에 표현된 이러한 명령을 자동적으로 기계어 인스트럭션으로 변경하여 줍니다.

 

 

PREPROCESSOR

 

프리프로세서는 특별한 인스트럭션으로 본질적으로 C언어에 포함되지 않습니다만 컴파일러와 같이 오는 소프트웨어 팩키지의 한 부분이라 이야기할 수 있습니다. 각각의 프리프로세서는 '#'로 시작이 됩니다. 컴파일에 앞서, C 컴파일러는 프리프로세서를 찾기위해 소스코드를 서치합니다. 만약 프리프로세서를 찾으면, 그 부분을 명령에 따라 단순히 다른 텍스트로 변경을 합니다. 그리고 컴파일을 시작합니다. 이 프리프로세서는 소스코드 어디에든 위치 할 수 있습니다.

 

가치창조기술

www.ubiquitics.co.kr

www.vctec.co.kr

 

MCU 개발용 보드

제품특징

  • PIC, dsPIC, PIC24, PIC32MX, AVR, PSoC, 8051, ARM 마이크로프로세서 지원
  • 프로그래머 및 ICD 디버거가 개발보드에 내장되어 있어 경제적
  • COG/LCD/GLCD 장착
  • MCU의 모든 핀들은 개발보드상의 인터페이스 핀에 연결되어 있음
  • 개발보드상의 DIP스위치를 이용하여 개발보드를 설정
  • MCU 핀에 LED 및 푸시버튼이 보드상에 연결되어 있음
  • 즉시 사용가능한 다양한 예제 지원
  • 마이크로일렉트로니카 컴파일러 지원
  • 다양한 개발용 악세사리를 개발보드상에 연결하여 사용이 가능

제품군:

제품군 설명
Microchip PIC

Microchip PIC용 개발보드 제품군

Microchip dsPIC Microchip dsPIC용 개발보드 제품군
Microchip dsPIC24-33 Microchip dsPIC24-dsPIC33용 개발보드 제품군
Microchip PIC32MX Microchip PIC32MX용 개발보드 제품군
Atmel AVR 및 XMega Atmel AVR 및 XMega용 개발보드 제품군
Cypress PSoC Cypress PSoC용 개발보드 제품군
Atmel 8051 Atmel 8051용 개발보드 제품군
NXP ARM NXP ARM용 개발보드 제품군
GPS 개발보드 GPS 개발보드 제품군
MCU 컴파일러

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원
  • 편리하고 직관적인 IDE환경
  • 500개 이상의 라이브러리 함수지원으로 개발시간 절약
  • 다양한 개발용 툴 지원
  • mikroProg 하드웨어 In-Circuit Debugging 지원
  • 즉시 사용가능한 예제 지원

제품 모델:

제품 설명
PIC용 컴파일러 Microchip PIC용 컴파일러
AVR용 컴파일러 Atmel AVR용 컴파일러
dsPIC30/33 및 PIC24용 컴파일러 Microchip dsPIC30/33 및 PIC24용 컴파일러
PIC32용 컴파일러 Microchip PIC32용 컴파일러
8051용 컴파일러 Atmel 및 Silicon Labs 8051용 컴파일러

개발용 악세사리보드

제품특징

  • 악세사리보드로 다양한 MCU와 주변장치의 기능을 테스트
  • 통신/저장/시간측정/디스플레이/측정/오디오/전원공급/기타 등의 악세사리보드
  • Mikroelektronika 개발보드에 연결하여 사용 가능
  • 즉시 사용 가능한 예제 제공

제품군:

제품군 설명
통신용 보드 통신용 악세사리보드
스토리지 보드 스토리지용 악세사리보드
시간측정용 보드 시간측정용 악세사리보드
디스플레이 보드 디스플레이용 악세사리보드
센서 및 측정보드 센서 및 측정용 악세사리보드
오디오 및 보이스 보드 오디오 및 보이스용 악세사7리보드
전원제어보드 전원제어용 악세사리보드
기타보드 릴레이, RFID, 센서 등의 다양한 악세사리보드

MCU 개발용 키트

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원 개발용 키트
  • 개발에 필요한 개발보드, 컴파일러 및 악세사리보드 포함
  • 개발용 키트 묶은 구매로 개별구매보다 저렴

제품군:

Part Number 모델 설명
PIC 개발용 키트 Microchip PIC 개발용 키트
dsPIC30 개발용 키트 Microchip dsPIC30 개발용 키트
dsPIC33-PIC24 개발용키트 Microchip dsPIC33-PIC24 개발용 키트
AVR 및 XMega 개발용키트 Atmel AVR 및 XMega 개발용 키트

8051 개발

용 키트

Atmel 및 Silicon Labs 8051 개발용 키트     

 

첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

등록된 댓글이 없습니다.

댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

관리자에게만 댓글 작성 권한이 있습니다.