Search
Duplicate

Embeded S/W

태그
1 more property

임베디드 정의

특수한 기능을 수행하기 위해 소프트웨어와 하드웨어가 탑재된 전자제어 시스템
단순 회로만으로 구성된 장치가 아닌 마이크로프로세서가 내장되어 있고, 이것을 운영하여 원하는 작업을 수행하는 프로그램이 포함된 시스템

임베디드 특징

Cross-development Platform : 개발은 PC에서 진행하지만 실행은 하드웨어에서
Real-time Features : 임베디드는 특수한 목적을 위해 실시간성이 요구됨
Special-purpose System : 특수한 목적을 가진다.(<->General-purpose System)
JTAG(Joint Test Action Group) : 하드웨어에 다운로드하는 과정을 위해서는 Cable이 필요하다. 초기에는 Device driver가 필요하므로 JTAG cable을 이용해 bootloader를 다운해주어야한다.
일반적으로 Resource의 제약이 크다

RTOS

우선순위기반 스케줄링기법을 사용한다.
결과 산출에 걸리는 시간에도 적시성을 가져야 한다. (Timeliness)
외부 자극에도 예측 가능한 방식으로 반응해야 한다. (Predictable)
그저 빠른 것이 아닌 Deadline을 지킬 만큼 빨라야 한다. 적시성을 지켜야한다.
경성실시간 시스템
: 제어작업이 데드라인을 어기는 경우 시스템에 심각한 영향을 주는 속성을 지닌 시스템
단점
1. 불완전한 기능의 운영체제 (task 생성/실행/종료 자유도 제약)
2. 메모리 보호를 받지 못하는 thread 모델로서 프로그램 실행(한 개의 버 그로 전체 system down)
연성 실시간 시스템
: 데드라인 만족시키는데 있어서 어느 정도 융통성을 갖는 시스템
PSOS : 멀티태스킹 RTOS로 256개의 Task를 가진다.
WinCE : 기존의 데스크탑 PC와 동일한 윈도우 환경 제공
: 프로그램 개발환경이 우수
: 윈도우 및 응용프로그램과의 호환성 우수
overhead : cpu가 동작하는 시간이 아닌 문맥전환과 같이 낭비되는 시간

Embedded Linux

장점 : Linux의 핵심적인 부분만 사용하여 비용적인 부분을 덜 수 있다.
범용성이 좋고 오픈소스라 접근성이 높다.
많은 장치의 driver를 제공한다.
기존의 RTOS보다 많은 메모리를 요구한다.
범용 OS로 설계되어 실시간성을 지원하지 못한다.
높은 인터럽트 지연시간, 높은 스케쥴러 지연시간
GUI환경을 개발하기가 어렵다.

Interrupt service

비동기적 이벤트를 CPU에 알리는 방법
외부에서 들어오는 중요한 신호로 시간에 민감한 경우가 있기에 Interrupt Latency가 짧은 것이 좋음.
ISR자체도 짧은 것이 좋은데 그 이유는 ISR자체가 길어지면 Interrupt nesting(인터럽트를 처리하는 중 또 인터럽트가 발생하는 문제)이 되기 쉽기 때문

Driver와 Controller의 차이

드라이버는 하나의 기능을 수행하는 I/O 디바이스의 종류를 구분해준다.(디스크 기능을 하는 SSD, 하드디스크 등)
컨트롤러는 하나의 기능을 수행하는 I/O 디바이스당 하나씩 존재(키보드 컨트롤러, USB 컨트롤러, 디스크 컨트롤러 등)

지연시간

인터럽트 레이턴시 : 인터럽트가 리퀘스트되고 해당 태스크가 끝나기까지의 시간
인터럽트 리스폰스 : 인터럽트 신호를 주고 ISR전까지의 시간
태스크 리스폰스 : 인터럽트 리퀘스트부터 기존(혹은 새로운)태스크 실행 직전까지의 시간
인터럽스 리커버리 : 인터럽트가 끝나고부터 태스크 시작전까지의 시간
ISR이 종료되고 새로운 태스크 수행이 발생할 때 우선순위에 따라 처리과정이 다르다.

스케쥴링

Rate Monotonic Scheduling(RMS) : 주기가 짧은 태스크의 우선수위를 높인다.
Earliest Deadline First(EDF) : 마감시간이 얼마 남지않은 태스크의 우선순위를 높임.

교차개발환경

Embedded System에서 SW 개발을 위해 다른 머신에서 개발 환경을 구축