Transcript
Page 1: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

임베디드 시스템을 위한 USB 장치 지원 진행상황 보고

Page 2: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

Index• 프로젝트 목표

– Bootstrap Loader– KGDB 지원

• 진행 상황– USB Enumeration– Bulk transfer– Data transmit Application

– 실행 예

• 완성 정도– Bootstrap Loader– KGDB 지원

• 개발 현황

• 예정 사항

• QnA

S E V E N C O R E - 경 주 현 2

Page 3: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

프로젝트 목표프로젝트 목표

• Bootstrap loader– 사용 부트 로더 : BLOB– USB Device Software Stack

이식– USB Bulk Transfer 이용

HOST to CLIENT 파일 전송

S E V E N C O R E - 경 주 현 3Bootstrap Loader

그림 1. USB Device software stack 이식

Page 4: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

프로젝트 목표프로젝트 목표

• KGDB I/O 지원 (USB)– 사용 커널 : 2.6.27_r5– USB CDC SPEC 구현– USB 장치를 KGDB I/O

Device 로 등록하여 커널 디버깅이가능한 상태로 만듦 .

S E V E N C O R E - 경 주 현 4

그림 2. KGDB I/O Device 로써 USB 장치 추가

KGDBKGDB

Page 5: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

진행 상황진행 상황

• USB Enumeration– USB 장치 인식을 위한 작업 .

• Host Controller -> Control EP0• Host Specific (OHCI , UHCI)

S E V E N C O R E - 경 주 현 5USB Enumeration

그림 3. USB Enumeration

Page 6: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

진행 상황진행 상황

• USB Bulk transmit– 이미지 다운로드 가능– Kernel 이미지 write 작업 없이

다운로드 받은 Ram 영역으로 점프

S E V E N C O R E - 경 주 현 6

5~8 Seconds

30~35 Seconds

Bulk transfer

그림 4. flash 영역에 write 없이 kernel 실행

Page 7: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

• LINUX Host 파일 전송 프로그램– 삼성 SoC 계열에서 일반적으로 쓰이던

USB Donwloader 프로그램 DNW 을 대체 가능한 GPL 기반 응용프로그램

– 타겟에 Bulk Transfer 를 위한 USB device controller 가 구현되어 있으면 어떤 SoC에서든 사용 가능한 libUSB 응용 프로그램

– Full speed, 초당 400Kbytes 가량 전송가능 .( 기존 Serial 통신보다 약 30 배 속도 증가 )

S E V E N C O R E - 경 주 현 7

그림 5. DNW (Downloader for windows)

진행 상황진행 상황

Bulk transfer

Page 8: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

진행 상황진행 상황

S E V E N C O R E - 경 주 현 8실행 예

1. Blob 메뉴화면에 들어간다 .

2. usbdownload 명령어를 사용하면 USB cable 이 연결될 때까지 기다린다 .

3. 연결이 일단 되면 파일이 전송될 때까지 다시 기다린다 .

Page 9: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

S E V E N C O R E - 경 주 현 9

1. USB Cable 이 연결 된 것이 확인 되면 usbupload 프로그램으로 파일을

전송한다 .

2. 파일 전송이 시작되면 BLOB 과 App 양쪽 모두 진행상황이 표시된다 .

실행 예

진행 상황진행 상황

Page 10: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

• Bootstrap Loader– 당초 제안 사항이었던 USB Bulk 통신을 이용한 다운로드 완

료 .– Interrupt 방식을 사용하지 않고 Polling 방식으로 구현 .– CDC Spec 이 아닌 Bulk transfer 방식으로 구조 변경 .

S E V E N C O R E - 경 주 현 10

완성 정도완성 정도

• KGDB– KGDB I/O Device 로 USB 장치를 사용하기 위한 구조 설계– KGDB 의 Polling 장치 찾는 루틴에 USB rx, USB tx 맵핑 – 외부 참여 인원과 상의

Page 11: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

S E V E N C O R E - 경 주 현 11

개발 현황개발 현황

- 문서화 현황

• 7 개 공식 문서 등록• 5 개 비공식 문서 등록 및 작성 중

활성화 정도

- 외부 인력 참여 현황

• Sourceforge 를 통해 접촉한 인도인 .• KGDB 동작 방식에 관한 문서 작성• KGDB I/O 장치 지원

Page 12: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

S E V E N C O R E - 경 주 현 12

예정 사항예정 사항

활성화 정도

• KGDB– Target

• USB Out Endpoint, USB In Endpoint 이용 Polling Function 작성• KGDB I/O Device 에 Polling 장치로써 위의 Function 등록

– Host• USB 장치를 GDB remote I/O 장치로 이용하기 위한 GDB patch

Page 13: 임베디드 시스템을 위한  USB  장치 지원  진행상황 보고

QnA

S E V E N C O R E - 경 주 현 13


Top Related