Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

소개

임베디드(:12) 시스템은 매우 낮은 수준에서 장치를 다루고 프로세서(:12)를 직접 제어해야 한다. 또한 PC에 비해서 자원에 대한 제약이 심하기 때문에 프로그래밍을 위한 언어로 Assembly(:12)가 널리 사용되어져 왔다. 현재까지도 여전히 Assembly는 중요하게 사용되지만 하드웨어기술의 비약적인 발달로 인하여, 아예 Linux(:12) 커널(:12)을 직접 올리는 임베디드 시스템도 등장을 하고 있으며, 이로인하여 C의 활용도 점점 높아지고 있는 추세다.

이 위키 페이지는
  1. Linux(:12)운영체제를 이용한 임베디드 시스템 구축을 목적으로 하며, ARM(:12) 프로세서 기반의 S3C2410 레퍼런스 보드를 이용해서 임베디드 시스템 구축과 관련된 학습을 한다. 그러므로 Linux 시스템 프로그래밍에 대한 충분한 이해를 하고 있어야 한다.
  2. Assembly(:12)에 대한 기본적인 능력을 배양해야 한다.
  3. 관련 내용은 참고/수정이 가능한 형태로 문서화 한다.
  4. S3C2410 레퍼런스 보드가 배달되는 즉시 필요한 정보를 수집한다.

임베디드에 대해서

임베디드 시스템은 각종 장치와 제어기들이 완전히 캡슐화된 형태로 제공되는 특별한 전용의 목적을 위해서 만들어진 컴퓨터 시스템을 의미한다. 범용적으로 사용하기 위한 개인 컴퓨터 와는 달리, 자기가 해야할일을 수행하기 위한 몇몇의 정의된 기능만을 수행한다. 임베디드 시스템의 핵심은 microprocessor(:12)로 주어진일을 수행하기 위한 프로그램을 수행한다. 임베디드 시스템은 산업/군사/의료/통신 분야에서 널리 사용된다.

다음은 임베디드 시스템의 대표적인 응용 분야다.
  • cellular telephones
  • 라우터(:12), 방화벽(:12)등의 네트워크 장비
  • 프린터, disk drive
  • 개인 손 계산기
  • 방사능/수질 오염측정등 센서 제어 기기
  • PDA와 같은 개인 단말기
  • psp, ps2와 같은 consol 게임기
  • 각종 의료기기
  • 로보트
  • home automation 제품
  • 자동차에 사용되는 각종 제어장치들(engine controller, antilock break controller)
  • TV, 전화기, 자동세척기, 냉장고, 세탁기등 디지털화된 가전제품

참고 Crystal 이 접해본 Emebedded System Programming

32비트 프로세서 100MHz로 동작 그래픽엔진 비디오 프로세서(CRT Controller) DSP 기능 사운드 엔진 등의 기능을 가지거나

16비트 USB 1.1 I2C SPI등의 기능을 가진 프로세서에서

컴파일러가 GCC 기반의 컴파일러인 경우 부트코드(약 100라인 미만)만 Assembly또는 스크립트(Script)로 되어 있고 나머지(98% 이상)은 C로 되어 있다.

2006년 12월 현재 Emebedded의 절대 강자인 ARM Core를 사용하는 프로세서에서도 Assembly는 극히 작은 부분만 사용되며 대부분의 코드는 C로 작성된다. (특정 경우에 필요한 부분만 Inline Assembly로 사용하여 속도 향상을 추구하나 극히 일부이다.)

정리하자면 임베디드 시스템에서 프로그래밍을 하기 위해서는

  1. 프로세서에 대한 이해
  2. C언어
  • 필요에 의해서 또는 깊이 알고자 한다면 **********************************
  • Assembly의 이해
  • Core의 동작원리, Chip Funtion의 이해 등
  • Compiler의 이해 (GCC 컴파일러를 사용한다면)
  • RTOS의 이해
  • Linux 이해(Linux를 Porting 한다면)
  • 네트워크 프로그래밍
결국 임베디드 시스템프로그래밍 역시 시스템 프로그래밍이다.

More Come To

To Be Continue ...

디렉토리

제목 저자 변경일