블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  • total
  • today
  • yesterday
11-29 14:46

* 어떤 용도로 어떤 기능을 갖는 시스템인지 또한 어느 정도의 성능을 가져야 하는지를 먼저 분석

1. 임베디드 하드웨어의 설계
  1) 프로세서 선정
    - ARM : 간단한 명령어 사용, 개발 환경 용이, 적은 전력 소모, 보통 휴대 단말기에 사용
    - MIPS : 고속 처리, 고속 네트워크 장비 등에 많이 사용
    - i386 : 안전성 확보, PC와 동일한 개발 환경
    - Power PC : 강력한 네트워크 기능을 포함한 SoC
  2) 메모리 선정
    - 코드 및 데이터 저장용 메모리(ROM) : EEPROM(소용량), NOR 플래시(저용량), NAND 플래시(고용량)
    - 프로그램의 구동 중에 사용되는 메모리 : SDRAM(많이 사용)
  3) 주변 장치 선정 : 개발할려는 시스템의 용도와 특성에 맞게 주변 장치를 선정 ex) 휴대폰 : LCD 제어기, 터치 제어기
  4) 회로도 설계
    - 선정된 여러 하드웨어를 논리적으로 서로 연결한 도면을 그리는 작업
    - 툴(Tool)을 이용하여 설계 ex) OrCAD, PowerLogic, Mentor, PCAD, CADSTAR, CSiEDA5 등
  5) PCB 설계
    - 설계한 회로도를 바탕으로 실제 부품을 배치하고 각 신호를 물리적으로 연결하는 작업
    - 툴을 이용하여 설계 ex) PowerPCB등
  6) 하드웨어 조립 및 시험

2. 임베디드 소프트웨어 설계
  1) 소프트웨어 사양 결정
  2) 임베디드 운영체제 : 시스템의 기능이 복잡해지고 여러가지 일을 동시에 처리하기 위해 사용
    - RTOS : Hard RTOS, Soft RTOS - 실시간 처리가 보장되지 않을 시 시스템에 대한 영향 정도에 따라 구분
      ⑴ 주어진 입력 조건을 이용하여 한계 시간 내에 처리하여 결과를 얻어내야만 하는 경우
      ⑵ 멀티쓰레드(Multi-thread)와 선점성(preemptive) 지원, 시간 제약성과 신뢰성 중요
    - Non-RTOS : 선점성 지원 안함. but, 멀티프로세싱은 지원
  3) 운영체제와 커널 포팅
    - 커널 포팅(이식) : 선정된 운영체제의 커널이 개발할려는 시스템에서 동작할 수 있도록 운영체제의 각종 기능 처리 등을 구현하여 운영체제의 스케쥴러가 정상적으로 동작할 수 있도록 하는 과정
  4) 디바이스 드라이버 포팅
    - 디바이스(Device) : 입출력 장치
    - 디바이스 드라이버 : 디바이스 제어, 정형화된 인터페이스 제공
  5) 애플리케이션 개발

3. 임베디드 소프트웨어 개발환경
  1) 교차(Cross) 개발환경
    ※ 네이티브(Native) 컴파일러 : 개인용 PC에서 동작하는 프로그램을 PC에서 동작하는 컴파일러를 이용하여 개발하여 실행
    - 호스트(HOST) 시스템 : 개발환경을 가지고 있는 PC
    - 타깃(TARGET) 시스템 : 개발하고자 하는 제품
    - IDE(Integraded Development Environment) 활용
  2) 디버그 인터페이스
    - 디버깅 : 타깃 시스템을 실행하면서 프로그램의 실행 상태, 메모리, 변수 등을 프로그래머가 확인하거나 제어하면서 오류를 찾아 수정하는 동작
    - ICE 장비, 디버거 사용

posted by lepoussin