2007 하계 방학 실습

Download Report

Transcript 2007 하계 방학 실습

전자의료시스템 및 실습
C-언어
구환
경희대학교 전자정보대학 동서의료공학과
Study Plan
• 기간
- 7/2 – 7/20
• 장소
- 동서의료 공학과 실험실(207)
• 내용
- C language
- Orcad(Schematic)
- TMS320LF2407A
• 목표
• 준비물
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Contents
• C language
-
History
Characteristics
Structure
Compile & Execute
Basic functions
Example
• Introduction to DSP
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Why?
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: History
• A language
- UNIX: Assembly
- 기계 의존적
-> 호환성 대두
• B language
- Ken Thompson에 의해서 개발
• C language
-
B language를 기초로 하여 개발
1972, Dennis Ritchie에 의해서 개발(Bell Institute, USA)
DEC 사의 PDP-11 컴퓨터에서 구현된 다중 프로그래밍 언어
가장 많이 사용됨
활용: 운영체제 개발, 게임, 그래픽, 영상처리, 애니메이션 개발 등
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Characteristics
•
•
•
•
•
•
•
•
•
•
•
•
High- or middle level language
시스템 프로그래밍이 가능
구조적 프로그래밍이 가능하고 모듈화된 설계 가능, 유지 보수 용이
소문자를 기본으로 하는 자유 형식
많은 자료 형과 다양한 연산자.
Portability
Pointer
Preprocessor로 인해서 효율적인 프로그래밍이 가능
입출력 기능이 없어서, library function을 통해서 이루어짐
고급 언어와 어셈블리 언어의 장점만을 가진 중간 수준의 언어
반드시 하나 이상의 함수가 있어야 함, 재귀적 호출 가능
단순하고 예약어가 적기 때문에 배우기 쉽다.
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Structure(1)
파일 포함(header file)
매크로 정의
사용자 정의 함수 선언
머리부(Header)
main()
{
내부 변수 선언;
명령문 기술;
}
몸체부(Body)
함수명(가인수 리스트, …)
가인수 선언;
{
내부 변수 선언;
명령문 기술;
}
2007 Summer Seminar
사용자 정의 함수부
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Structure(2)
#include <stdio.h>
#define PI 3.1415926
int add(int a, int b);
머리부(Header)
main()
{
int a, b, sum;
a = 2; b = 3; sum = 0;
sum = add(a, b);
printf(“%d\n”, sum);
}
int add(int a, int b)
{
return a+b;
}
2007 Summer Seminar
몸체부(Body)
사용자 정의 함수부
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Compile & Execute
• Compiler?
- 간단하게 말하면 해독기
- 기계가 이해할 수 있는 언어로 바꿔 주는 도구
• Preprocessor?
- 프로그래머와 컴파일러 사이에서 매개 역할을 수행
- C 프로그램을 컴파일 하기 전에 프로그래머가 작성한 원시 프
로그램에 특정하게 정의된 각종 내용을 삽입시키는 기능을 하
는 처리기
- #define, #include, #undef, …
• Assembler?
- 엄격하게 말하면 어셈블리어를 기계어로 바꿔주는 해독기
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Compile & Execute
프로그램 작성 단계
원시 프로그램의 편집(editor)
C 원시 코드 작성(*.c, *.cpp) 및 저장
C 선행 처리기(C preprocessor)
확장 된 C 원시 코드
C 컴파일러(C compiler)
프로그램 컴파일 단계
어셈블리 언어 코드
어셈블러(assembler)
목적 코드(object code) 생성(*.obj)
링커(linker)
프로그램 실행 단계
실행(execution) 파일 생성(*.exe)
결과 확인
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Basic functions
• 표준 입출력 함수
- printf(), scanf(), getchar(), …
• 제어문
- if~else, switch~case, case, for, while, do~while
•
•
•
•
배열
포인터
구조체와 공용체
라이브러리 함수
- strlen(), strcpy(), malloc(), …
• 파일 입출력 함수
- fopen(), fclose(), …
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Firmware?
• Firmware?
- 롬에 기록 된 하드웨어를 제어하는 마이크로 프로그램들의 집합
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Our goal & Tips
• Goal
- 하드웨어에 대한 이해(구조, 동작)
- 주어진 목표에 맞는 specific한 프로그램 작성
- 주어진 하드웨어를 최대한으로 활용하는 것
• Tips
- 시스템은 항상 동작 중
-> while(1) {}을 사용
- 하드웨어적으로 생각하는 것이 성능 향상
- 작성 전에 미리 그림을 그릴 것
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Structure
파일 포함(header file)
매크로 정의
사용자 정의 함수 선언
머리부(Header)
main()
{
내부 변수 선언;
하드웨어 구성 제어;
명령문 기술;
}
함수명(가인수 리스트, …)
가인수 선언;
{
내부 변수 선언;
명령문 기술;
}
2007 Summer Seminar
몸체부(Body)
사용자 정의 함수부
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Example
#include “F2407_C.H”
#define TIME 10000
void Delay(int time)
{
int i;
for(i=1;i<time;i++);
}
void main(void)
{
while(1)
{
*PCDATDIR = 0xFF; Delay(TIME);
*PCDATDIR = 0x00; Delay(TIME);
}
}
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
C language: Example
void main(void)
{
/*** Configure the System Control and Status registers ***/
*SCSR1 = 0x0001;
*SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
/*** Configure All IO pins as outputs ; check the program ***/
*PADATDIR = 0xFF00;
*PBDATDIR = 0xFF00;
*PCDATDIR = 0xFF00;
*PDDATDIR = 0x0100;
*PEDATDIR = 0xFF00;
*PFDATDIR = 0xFF00;
…
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(활용분야)
• 범용 마이크로 프로세서(Microprocessor)
- Intel Pentium
- OS(Operating System)가 필요
- 실시간 제어용으로는 부적합
• 마이크로 컨트롤러(Microcontroller)
-
주로 기기의 제어 용도로 사용되는 프로세서
A/D 변환기, PWM 발생기, 타이머 등을 내장하고 있는 경우가 많음
하드웨어 단계에서 개발자가 접근이 용이, 외부 장치의 부착이 용이
가전기기의 제어, 의료 기기의 제어
• DSP(Digital Signal Processor)
- 빠른 연산 속도
- 신호처리나 고속 연산에 유리하도록 특별히 제작한 프로세서
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(명령어 구조)
• CISC(Complex Instruction Set Computer)
- 어떤 필요한 기능이 있을 때 그 기능을 수행하기 위한 명령어가 프로
세서에 지속적으로 추가
- 복잡하고 명령어가 많음
- 짧은 프로그램 코드
- 프로세서 설계가 복잡함
- 기존의 일반적인 프로세서의 구조
• RISC(Reduced Instruction Set Computer)
- 개발자들이 주로 사용하는 명령어가 국한되어 있음
- 자주 쓰이는 간단한 명령어들만 남겨두고, 대신 이러한 명령어들이
보다 빨리 수행될 수 있도록 프로세서를 설계
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(응용)
• 제어분야
- 모터 제어, 미사일 자세 제어 등
• 신호 처리 분야
- 능동 소음 제어, 디지털 필터링 등
• 멀티미디어 분야
- HDTV, MP3P 등
• 통신 분야
- ADSL 모뎀, 광통신 등
• 기타 분야
- 배터리 충전기, LCD 모니터 등
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(응용)
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(기초 지식)
• 주소 표현
- 이진수 표현: 숫자 뒤에 ‘b’
ex) 10b
- 16진수 표현: 숫자 뒤에 ‘h’
ex) 1234h
• 비트, 바이트, 워드
- 비트: 한 자리에 해당 하는 단위, 0 또는 1 ‘b’
- 바이트: 8비트를 한 묶음 ‘B’
- 워드: 16bits -> 16 bits, 32 bits -> 32bits, 주의
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea
Introduction to DSP(기초 지식)
• ROM(Read Only Memory)
- 전원이 끊어져도 기록된 정보가 없어지지 않는 비휘발성 기억장치
• RAM(Random Access Memory)
-
정보를 기록, 읽어내는 것이 가능
장점: 염가, 소형, 낮은 소비 전력, 고속 동작
단점: 전원이 나가면 기억되어 있던 모든 데이터가 지워짐
DRAM(Dynamic RAM): 주기적으로 refresh
SRAM(Static RAM): 전원만 연결되면 OK, 집적용이
• Flash ROM
- 썼다 지웠다 하는 것이 가능
- Mask Programmable ROM, PROM, EPROM, EEPROM
2007 Summer Seminar
Impedance Imaging Research Center, Kyung Hee University, Suwon, South Korea