임베디드 시스템 (Embedded System)
Contents 강의소개 Embedded System Embedded System 활용 분야 Embedded OS Embedded Linux Embedded Linux 특성
강의 소개 Topic Lecture Embedded Linux CPU: PXA 255(Xscale) : Embedded Linux-Based on HW Target Board: HBE-EMPOS-II Boot Loader: blob Development Environment: Tool Chains, JTAG Embedded Linux 개발론 Kernel image Device Drivers RAM disk: busybox Applications: Web Server, mini Browser, Audio/video GUI: Qt/E, Qutopia Experiment Project
강의 목표 Embedded Linux 시스템 이해 실제 환경에서 프로그램 기술 마이크로프로세서 시스템에 운영체제를 포팅(porting)하는 절차와 전반적인 시스템 개발에 대한 체계적인 이해 임베디드 시스템 기반의 응용 시스템 개발의 경험과 기술 필요성을 인식 실제 환경에서 프로그램 기술 C 언어를 사용하여 디바이스 드라이버와 주요 외부 장치에 대한 응용 프로그램을 코딩하여 실제 임베디드 시스템에 실장하여 구현: 시스템의 가시화 Project: Application 실장 프로젝트 계획서 제출(2인 1조) 및 평가 프로젝트 시연(중간고사와 기말고사)
임베디드 시스템 정해진 특정 기능을 수행하기 위해 하드웨어와 소프트웨어가 내장된 전자제어 시스템 단순 회로만으로 구성된 장치가 아닌 마이크로 프로세서(microprocessor)가 내장되어 있고, 이것을 운영하여 원하는 작업을 수행 및 관리하는 프로그램이 포함된 시스템 컴퓨터 하드웨어와 소프트웨어가 조합되어 특정한 목적을 수행하는 시스템 H/W : 마이크로프로세서, 컨트롤러, 메모리, 센서, 외부장치 드라이버(PCMCIA 카드, USB 메모리등) 등 S/W : Operating System, 디바이스 드라이버, 응용 프로그램, 네트워크 응용 등
임베디드 시스템 특징 Application-specific functionality 특정한 기능에 부합하는 최적화 설계: 범용 컴퓨터가 아님 Small size & Light weight 목적에 부합되는 시스템으로 구축 Real-time Operation/Dependable Extreme Cost Sensitivity 임베디드 장비 업체는 다수의 장비를 싸게 판매하는 방법으로 cost에 민감 Limited memory, lower power for microprocessor 휴대 가능 혹은 장기간 베터리로 운용 크기가 적으며, 특별한 목적으로 사용, 간편성과 Cost면에 유리한 성능
Embedded System 응용 분야 자동차, 우주, 항공, 군사, 의료장비와 공장 제어 등의 산업 분야와 휴대전화, PDA와 같은 통신분야 “Post PC” 시대의 첨병: 보다 작고, 가볍고, 간편하며 실시간으로 처리되는 제품이 시장을 주도
임베디드 시스템 OS Real Time OS 일반 임베디드 OS VxWorks: HONDA의 Asimo에 사용 pSOS: 삼성전자 휴대폰, VxWorks 통합 VRTX, uC/OSII 일반 임베디드 OS Windows CE (pocket PC): HP iPAQ series Intel x86 계열 지원, MS 회사의 각종 환경 지원(ActiveX, Win32 API등) 3Com Palm Motorola 드래곤볼 CHIP 기반의 운영체제, 수년간 개발로 안정적인 OS와 대양한 응용 프로그램 제공(sony클레오) Symbian 모바일 통신회사들이 결성한 단체에서 모바일 단말기에 사용한 목적의 운영체제: smart phone을 목표로 GUI 환경에 멀티미디어 서비스 제공 Embedded Linux: PDA 단말기
OS 탑재 필요성 시스템 고기능화 빠른 개발과 유지 보수 기존의 시스템 고유 기능에서 Network와 Multimedia 기능을 수용 순차적인 프로그램의 한계성 다양한 디바이스 수용과 관리 빠른 개발과 유지 보수 새로운 요구 상황에 맞게 프로그램을 수정, 다운로딩이 용이 새롭게 생겨나는 고품질의 창조형 서비스를 적시에 제공
RTOS 한계성 불완전한 기능의 운영체제 RTOS에는 thread 모델로서 프로그램 실행 특정회사 혹은 기능에 따라 개발 메모리 보호를 받지 못하는 프로그램 수행 한 개의 응용 프로그램(Task, Process)의 버그가 전체 시스템을 다운으로 유도 ROMable 운영체제 특정회사 혹은 기능에 따라 개발 소스 프로그램의 비공개 초기구입 비용이 고가 사용료가 고가로 비경제적
Embedded Linux 저 성능의 프로세서와 소용량의 메모리를 가진 임베디드 시스템용으로 개발된 Linux Embedded System에 내장되는 소프트웨어를 운영하는 기본 핵심기능의 소프트웨어: kernel 다양한 유틸리티와 개발환경 제공 RTOS (Real-Time Operating System): VxWorks, pSOS, QNX, VRTX, nucleus 등 실시간 운영체제가 가지는 한계성
Embedded Linux 특성 Embedded Linux Source의 공개성: OS, Applications 안정적이고 검증된 커널로 지속적으로 upgrade: kernel 2.6.x, OS 9.0 경제성 : 개발 비용 및 사용료가 없음 다양한 개발 환경의 제공: Cross-compiler, debegger, GUI (Qt/E, Qutopia) 등 Linux는 완전한 운영체제: 파일 시스템, 인터넷 접속, 각종 응용 소프트웨어 수행 가능 Linux는 단위 모듈로 설계 다양한 CPU에 수행: strongARM, Xscale, ppc, dragonball 많은 장치의 드라이버를 제공: JTAG, PCMCIA, PDA LCD, I/O, IDE 다양하고 많은 개발자들이 Embedded Linux를 개발 도구로 사용
임베디드 시스템 개발 구조 임베디드 시스템의 개발은 크게 3가지의 독립된 연구개발분야가 유기적으로 결합 OS 개발 또는 포팅 디바이스 드라이버 개발 임베디드 소프트웨어 개발 (application) 하드웨어 개발
임베디드 시스템 개발 구조 Development PC Host Target Debug Agent Embeded Application GUI Development Tools (tool chains) Target Server LAN Library Sub-system Serial Core OS Simulation Environment Kernel JTAG communication
호스트 PC 기본 프로그램 Cross Compiler Tool Chain: CPU에 의존 호스트 컴퓨터와 타겟보드에서 사용하는 프로세서가 다를 경우 타겟 보드에서 실행될 수 있도록 프로그램을 컴파일해주는 응용 프로그램 JTAG 호스트 컴퓨터에서 타겟보드의 Flash ROM에 프로그램(부트로더)을 다운로딩하는 프로그램(fusing 작업) Terminal Emulation : Serial port 타겟보드에서 일어나는 진행 상황을 호스트 컴퓨터에서 볼 수 있도록 모니터링 할 수 있는 통신 프로그램 타겟보드에 명령을 입력할 수 있는 통신 프로그램: minicom (Linux), Hyper Terminal(MS Windows) bootp, tftp, nfs service: Ethernet LAN 환경 호스트 컴퓨터와 타겟보드 사이의 원할한 통신을 제공하여 편리한 개발환경을 제공해주는 응용 프로그램
타겟보드 기본 프로그램 Bootloader Linux Kernel File System Device Driver 타겟보드 booting시 하드웨어를 초기화하고, 커널을 RAM에 올린 후 실행 권한을 커널로 전달하는 프로그램 Linux Kernel 타겟보드의 시스템(Linux) 구동에 필요한 환경을 만들고 타겟보드 상에서 수행되는 자원을 관리하는 소프트웨어 File System 파일 시스템은 파일을 디스크나 기타 미디어에 저장하는 방식과 그에 연관된 operation 및 자료 구조를 포괄적으로 포함 ext2, jffs2 Device Driver 주변 하드웨어를 제어하기 위한 프로그램 Application GPS, tcpdump, MediaPlayer 등
HBE-EMPOS-II Ethernet LAN port Com1 Console port Parallel port JTAG interface
HBE-EMP2CYC
Report (1) 주변에 임베디드 시스템으로 구축된 시스템의 실례를 찾아보고 어떻게 구현되었는지 시스템 기능 블록(functional block)으로 확인해보자 Example: Samsung’s SGHH2400 GSM handset
Report (2): OneC vWS22100 GSM chipset