Download - 임베디드 시스템을 위한 USB 장치 지원 진행상황 보고
임베디드 시스템을 위한 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
프로젝트 목표프로젝트 목표
• 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 이식
프로젝트 목표프로젝트 목표
• 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
진행 상황진행 상황
• 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
진행 상황진행 상황
• 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 실행
• 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
진행 상황진행 상황
S E V E N C O R E - 경 주 현 8실행 예
1. Blob 메뉴화면에 들어간다 .
2. usbdownload 명령어를 사용하면 USB cable 이 연결될 때까지 기다린다 .
3. 연결이 일단 되면 파일이 전송될 때까지 다시 기다린다 .
S E V E N C O R E - 경 주 현 9
1. USB Cable 이 연결 된 것이 확인 되면 usbupload 프로그램으로 파일을
전송한다 .
2. 파일 전송이 시작되면 BLOB 과 App 양쪽 모두 진행상황이 표시된다 .
실행 예
진행 상황진행 상황
• 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 맵핑 – 외부 참여 인원과 상의
S E V E N C O R E - 경 주 현 11
개발 현황개발 현황
- 문서화 현황
• 7 개 공식 문서 등록• 5 개 비공식 문서 등록 및 작성 중
활성화 정도
- 외부 인력 참여 현황
• Sourceforge 를 통해 접촉한 인도인 .• KGDB 동작 방식에 관한 문서 작성• KGDB I/O 장치 지원
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
QnA
S E V E N C O R E - 경 주 현 13