Linux를 이용한 Embedded 장비 개발 이상호 pagom@hitel.net Http://off.uriweb.net:8888/
Embedded System of Linux 개발 준비사항 하드웨어 이야기 커널 이해 Porting 방법 소감 및 질의 응답
Embedded System 독립장비 (OS가 내장된) 다양한 분야에 적용 발전됨. 개인용 컴퓨터시장보다 규모가 큼 다양한 응용분야 : 산업, 가전, 사무, 군사 편리한 인터페이스, 저 비용, 유연성, 확장성 동시 작업처리, Networking, GUI등 필요 Embedded System 한 개의 시스템이 스스로 판단하고 동작이 일어날수 있는 것. 최근에는 Multi Program이 가능한 운영체제와 표준화된 개발환경이 많이 지원이 되고 있으며 여러 분야에서 포괄적으로 이용이 되고 있다.
Linux 수년간 운영 - 안정성 인터넷 사용자에게 친숙함 다양한 응용프로그램 - DB, GUI, Protocol 외국에서 여러분야로 개발진행 전 세계적으로 개발 진행 Real Time 기능, Small화, 분산처리
Linux의 장점 Linux는 오래되었고 많은 사람이 사용한다. 인터넷으로 발전하고 자료가 공유된다. open source, open architecture이다. 소규모 모듈단위로 설계가 되어 있다. (POSIX를 지원한다.) Real Time운영을 지원한다. 최대의 장점은 ? 많은 사람들이 같이 사용한다는 것이다. 내가 개발한 것은 다른 사람들이 사용할 때 의미가 있으며, 나의 실수는 외부에 공개 됨으로써 완벽한 프로그램이 될 수 있다.
Linux의 단점 개발초기에 커널분석등 학습이 필요 뚜렷한 지원체제가 미비 전략적인 발전 지표 및 핵심분야 접근의 어려움 학교등에서 전문적인 접근필요. 뚜렷한 지원체제가 미비 공동의 개발환경 조성 (Http://off.uriweb.net:8888/) 전략적인 발전 지표 및 핵심분야 접근의 어려움 토의, 포럼 형성이 필요 핵심 커널 기술자 및 Linux 전문가 대거 필요
Embedded Applications 환경구성 HOST TARGET GUI Develop Tool Simulation Environment Target Server Debug Agent Real-Time Embedded Applications Library Core OS Kernel Sub-systems
준비사항 개발할 제품(Target) 참고 자료 : 매뉴얼, 디버깅용 서버 (PC, Linux) 컴파일러(gcc), 디버깅 툴(gdb, dump) 기타 준비물 : Cable, 계측기 어떻게 시작할 것인가 ? 기존의 Embedded 장비를 만들 때처럼 준비를 하자. 특히 하드웨어 관련 매뉴얼과 예제 프로그램은 확실히 챙기자.
CPU선정
ARM Linux 저가, 많은 자료, 쉬운 명령어 참조 모델 : Brutus, Empeg, Itsy, PLEB http://www.arm.uk.linux.org/ ARM7 -> StrongARM 유사함.
커널이해 Linux는 모듈(module)화 되어 있다. 필요한 부분과 필요 없는 부분을 선택. Linux는 다중작업(Multi-tasking)과 다중사용자(Multi-user)가 지원된다. Linux는 POSIX를 지원한다. 소규모(Down Size)화를 할 수가 있다. Linux는 System V 계열이다. 응용프로그램을 비교적 쉽게 Embedded System용화
Porting 1 - Monitor 하드웨어 검증 디바이스 드라이브 초기 작업 OS 개발 및 에러 대비 Debugging : go / stop, trace DRAM Down Loading
Porting 2 - Kernel 사용버전 : 2.2.x Linux 모듈 재 구성 : Memory Map , IO Map 자신이 설계를 하는 모형에 맞추어서 최적화 Memory Map , IO Map Console Port : 최우선 작업 TIC, Process 개수 IRQ, IO Base, Device Driver Entry : 조정
Porting 3 - Device Driver Linux의 기존 것 참조 : 인터넷, 발표자료 Char, Black로 나누어짐 새로운 하드웨어는 개발 작업 하드웨어의 동작특성 Monitor의 역할 기존과 충돌여부 Device Driver Entry 조정
Porting 4 - Networking Socket 구조 안정성, 범용성, 확장성 Client / Server : 동작특성 Serial / Ethernet : Buffer크기, Queue 개수 디자인 되는 제품의 특성별로 추가할 기능 있음.
개발 소감 안정성 유연성 응용성 Linux는 사용 할 만한가 ? 프로그램 하기에는 얼마나 좋은 가 ? 다른 모듈을 연결하거나 새로운 개발에 얼마나 적용이 좋나 ?
새로운 세계를 향하여서... 감사합니다. 저 비용, 핵심기술 습득을 해야 한다. 새로운 목표와 환경에 유연하게 적용을 해야 한다. 공개적이고 개방적인 세계가 다가 온다. 감사합니다. Http://off.uriweb.net:8888/