Copyright 2012, Embedded Systems Lab, Hansung University, All rights reserved 2012 공개 SW 커뮤니티지원사업 상용게임기를이용한임베디드소프트웨어교육환경구성 과제책임자 : 이민석 한성대학교 minsuk@hansung.ac.kr
개발목표 프로젝트주제 상용게임기를이용한임베디드소프트웨어교육환경구성 프로젝트목표 닌텐도 DS와같은상용게임기하드웨어를이용하여마이크로프로세서또는임베디드소프트웨어교육실습을수행하기위한개발환경을구성 WIFI USB Serial Eclipse 상용게임기 ( 타겟시스템 ) PC (Windows, Linux) ( 개발호스트시스템 )
개발동기 상용게임기를이용한임베디드시스템교육환경 1. 가격이저렴하다 ( 닌텐도 DS-Lite 10 만원내외 ) ü Nintendo DS-Lite 단종후, NDSi, Nnintendo 3DS 와도호환 2. 임베디드시스템을처음배우는학생도대부분익숙하다 3. Eclipse 기반의통합개발환경하에서원격디버깅을가능하게하여품질높은 S/W 를개발하기위해충분한환경을제공한다 4. 게임기는다양한임베디드장치들을내장하고있다 저렴한가격으로교육기관, 동호회, 개인이현실감높고, 품질 높은임베디드소프트웨어를개발할수있는환경제공
주요개발내용 (1 / 2) 임베디드소프트웨어교육을위한실습환경이갖추어야할여러가지요소들을상용게임기의게임팩과같은형태로개발및설치 게임기로의프로그램다운로드및실행 게임기에서 OSEK/VDX 실시간운영체제환경을구현
주요개발내용 (2 / 2) 원격디버깅이가능하게하는게임기용소프트웨어구현 프로젝트관리, 소스편집, 컴파일, 다운로드및디버깅을통 합처리하는통합개발환경구현 교육실습을위한실습용교재 + 답안 현재까지는 FreeRTOS 기반수업 OSEK 기반으로실험교재를변경중
시스템구성 Download Server Application Libraries WIFI 새로구현 기존 OSS 활용 GDB Server Shell Real-Time OS (FreeRTOS) Virtual Device Real Device Nintendo DS-Lite Connection USB Serial WIFI Compiler Edit Debugger Projects Eclipse IDE PC (Windows, Linux) Console Downloader Target System Host System
시스템구성 Target System S/W 기존 OSS RTOS: FreeRTOS (+ remote debugging) Open Source Realtime Operating System : http://www.freertos.org 새로구현 è OSEK 호환 RTOS 로변경 http://trampoline.rts-software.org/ Libraries: RTOS version of libwifi, libfat, libnds, pa_lib, Modify OSS to multitasking version : http://www.devkitpro.org Shell: configuration, download & run, file management Virtual device software Sample Applications (game )
Trampoline - Original
Trampoline Nintendo Porting Eclipse CDT GOIL NDS library NDS ROM BIOS
실시간운영체제 (1 / 2) FreeRTOS 올해수업진행 Open Source Realtime Operating System : http://www.freertos.org FreeRTOS 멀티태스킹실행화면 OSEK/VDX 호환 RTOS 인이식완료 GOIL + Trampoline OS (OSEK)
실시간운영체제 (2 / 2) Remote Debugging (USB) GDB Stub Module Eclipse 상에서원격디버깅
쉘프로그램 Shell Program 게임기용소프트웨어를통합적으로실행할수있는기능제공 USB, Wifi 다운로드실행 초기화면 LCD 상단 ( 다운로드모드선택메뉴 ) LCD 하단 ( 파일 / 디렉토리관리메뉴 ) 다운로드환경설정실행
가상디바이스모듈 Virtual Device Module LCD 화면과터치스크린상에서동작하는하드웨어시뮬레이터 가상디바이스모듈
시스템구성 Host System S/W (Windows, Linux) Eclipse IDE: devkitpro http://www.eclipse.org, http://www.devkitpro.org remote debugging 기능추가 Console Downloader (WIFI, USB 이용 ) Wifi Download Server 지원 ( 복잡한실험실네트워크환경지원 ) Adapter Hardware (optional) Atmel 32bit CPU 역시 FreeRTOS 사용 USB, Serial, JTAG 등연결성 3D 가속센서, LED, GPIO 등실제 H/W 추가적인장치의확장성을위해제작한 H/W Board
통합개발환경 Eclipse-CDT Remote Debugging USB / WIFI Download ( 어댑터보드가없는경우 WIFI 만이용가능 ) Windows / Ubuntu 지원
우분투환경지원 à Virtual Machine Image
따라하기매뉴얼 - Ubuntu
따라하기매뉴얼 - Windows
어댑터하드웨어 Atmel 32 bit CPU + 3D-가속센서 + USB + GPIO + LED + Serial x2 + ( 지자기 + 자이로센서 ) Nintendo DS의 Doctor tool R4 Compatible (Upto 8G Micro SD) FreeRTOS 기반 Firmware USB/Serial로 PC와 Nintendo를연결 어댑터가없어도 WIFI로대부분 S/W 기능이용가능
프로젝트활용방안 (1 / 3) 프로젝트결과물을통한수업활용예 ( 수업결과물 ) 실험 Material 실험목표및과제 정답실행이미지 download 해서실행 Example 소스 FreeRTOS libnds 과제를위한예제 Task 실험과제 Template 소스
http://hl1itj.github.com/nds-ide/
프로젝트활용방안 (2 / 3) 실험수업항목 (FreeRTOS) Simple I/O 1,2,3 난이도별 FSM 기반입출력 Key Matrix Scan에의한 Key-Matrix 및 7 Segment 구동 Key Queue Queue에의한 Multi-Tasking 입출력처리 Ball LCD에움직이는 Ball 그리기 Ball Mutex RTOS의 Mutex를이용한 Ball 겹침해결 Ball Wall Mutex를이용한 Wall과 Ball 움직임 Signal 신호등, 보행자, 차량움직임제어 è OSEK 기반으로변경중. Term 프로젝트 LCD, Touch, Sound, 가속센서를이용한게임제작 (Sound, 가속센서, 2D access sample 제공 )
프로젝트활용방안 (3 / 3) 프로젝트결과물을통한수업활용예 ( 수업결과물 )
커뮤니티 / 수업지원 버전관리및배포 (github) http://hl1itj.github.com/nds-ide/ 모든소스 실험에필요한문서, Template 소스 (FreeRTOS 기반 ) Homebrew 게임 (Binary + Source) 예전사이트 : http://sourceforge.net/projects/nintendo Ubuntu, Windows 에대한지원 Single Installation Package Virtualbox, VMWare 용 Preinstalled Virtual Machine 이미지
커뮤니티활동요약 Github 통계 1,100회이상의 commit 1,740회 Download Collaborator 28명 7명은과제참여자 외부공헌자 3 명 Offline 모임 18회 10 개그룹이새로운 ( 확장 ) 게임제작중 FreeRTOS 기반 ( 현재까지는 5 개등록 ) 논문발표활동 정보과학회 ( 우수논문상수상 ), 대한임베디드공학회
장기발전방안 (1 / 3) 발전가능성 - 임베디드시스템교육환경적용 현재한성대학교컴퓨터공학과 마이크로프로세서응용설계 과목에적용하여수업중 (2011년 15명, 2012년 25명수강 ) 프로젝트의결과물로제공되는 Virtual Device를바탕으로 교육실습에필요한장치를 S/W 로추가가능 커뮤니티를통해실습용교재를공유함으로써, 교육콘텐츠증대및개선효과기대 è 임베디드 SW 교육에대한흥미 / 성취도향상!
장기발전방안 (2 / 3) 발전가능성 개인개발자참여확대 현재유사사례많음 ( 유럽, 미국을중심으로 ) Homebrew Game 개발 : Nintendo DS, PSP, 아직은개발도구가취약 ( 예, remote debugging 부재 ) 우리결과물 프로젝트의모든결과물 (SW, HW) 은소스가공개 Eclipse 기반으로 Edit, Build, Remote Debugging 까지가능 같은방식으로다른게임기등에도적용가능 개인개발자들은기존고가의교육용개발장비대신저렴한상용임베디드시스템을활용하여기술을배울수있는기회!
장기발전방안 (3 / 3) 발전가능성 H/W 를통한기능확장 Serial, USB, GPIO 등으로외부장치 / 회로연결가능 프로젝트기본결과물의회로수정으로하드웨어추가가능 (7 Segment LED, Step / DC Motor, Encoder, IR 센서, US 센서, AD/DA Converter 등 ) 추가적인하드웨어를연결할수있도록하고, 간단한 API 를제공함으 로써, 기존고가의장비들의기능을최소한의비용으로구현가능
감사합니다 Q & A