기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요?


제가 안드로이드 USB 디바이스를 이용하는 어플리케이션을 만들고 있는데요.


어떤 디바이스에 버튼입력을 감지하는데 이상하게 3~4초 정도 지연이 발생하네요.

몇몇 안드로이드 기기(갤럭시 노트, 갤럭시s3)에서는 지연이 거의 없는데

다른기기에서는(G3 , G2, 갤럭시s4, 엣지, 노트4 등) 대부분 지연이 발생합니다. 

그러니까 버튼을 누를 뒤 3~4초가 지나서 반응하는 경우가 많아요. 한 절반정도는 3초이후에 반응하고

1/10 정도는 바로 반응하기도 하는 것 같습니다. 


확인해보니 안되는 기기의 공통점은 커널버전이 3.4 이상이고

잘 되는 기기는 커널버전이 3.0.31 이네요.


커널단에 무슨 문제가 있을 수 있을까요?

웹 검색을 해봐도 USB 제어와 관련된 뭐가 달라졌는지 잘 모르겠더라구요.


버튼 입력을 받는 방식을 여러가지로 해봤는데 

usbDeviceConnection을 사용했다가 

libusb를 사용하고 있습니다.

두 방식 모두 결과는 동일했습니다. 

일반적으로 3초 이상의 지연이 있고 빠를 때는 1초 이내에 응답하기도 하구요.


아무튼 libusb의 interrupt_transfer를 사용했는데요.

지연되는 부분이 어디인지 확인하기 위해서 로그 찍어가면서 코드를 따라가다 보니

ioctl 로 urb를 제출하고 난 뒤에 poll 함수에서 멈춰있고 버튼입력을 받은 뒤

poll 자체를 벗어나는데 오래걸리더라구요. 


이후 다시 ioctl로 urb를 읽어오는데요. 


혹시 싶어서 poll에 timeout을 주고 강제적으로 fd에서 urb값을 읽어오도록 했는데

그 값 자체가 버튼을 누른지 3초 이상 지나야 바뀌는 것 같더라구요. 


혹시나 싶어서 키보드로 interrupt transfer를 시도해봤는데 키보드는 지연없이 잘 동작하네요.

넘겨주는 값이 이상해서 그런건지 이렇게까지 늦게 반응하는게 잘 이해되지 않습니다 .


이젠 어떤 시도를 해봐야 원인을 찾을 수 있을 지 모르겠네요. 


혹시 짐작가시는 바가 있으시다면 알려주시면 감사하겠습니다. 


읽어주셔서 감사합니다~



고등어

2015.12.17 05:42:06
*.36.136.16


Bulk를 한번 사용해보세요.

아라라라기

2015.12.17 20:03:49
*.106.171.173

Bulk 도 사용해 봤는데 마찬가지 입니다.

내용 추가하자면 가장 최근에 테스트한게 넥서스 7 태블릿 (커널버전 3.4)인데

여기서는 또 정상적으로 동작하네요.



List of Articles
번호 제목 글쓴이 날짜 조회 수sort

USB Host 질문입니다. [2]

LCD 드라이버 포팅 질문입니다. [1]

  • ImYeol
  • 2015-08-03
  • 조회 수 379

[Aliexpress A8] [2]

USB Type SSD를 사용시 적합한 파일시스템이 있을까요 ? [1]

  • lOl
  • 2019-09-02
  • 조회 수 379

ARM 컴파일러는 무료/유료 사용이 따로있나요? [2]

  • timul1
  • 2017-04-03
  • 조회 수 382

MAC Address를 이용한 접속? [3]

android 에서 wifi ap list 기 안 나타나는 문제 [2]

  • MrWho
  • 2015-05-21
  • 조회 수 392

혹시 이런식으로 일 해주는 회사가 있나요? [2]

wifi usb 동글관련 질문 [2]

wlan을 hostapd를 통해서 AP로 사용할때 wpa passphrase 인증문제 [1]

  • 행인1
  • 2017-04-06
  • 조회 수 394

리눅스 커널 버전이 벌써 4.x 대네요.. [1]

u-boot 올리는 주소는 어떻게 알수 있나요?

  • sinwho
  • 2014-12-21
  • 조회 수 398

안드로이드 서비스 개발시 알아야 할 것들이 궁금합니다 [8]

Nand Flash 변경 질문드려요. [4]

  • FOLIMM
  • 2015-02-11
  • 조회 수 406

DMB 칩 과 멀티미디어 칩 가격? [2]

sleep 방지 [6]

  • jackson
  • 2015-02-27
  • 조회 수 410

stod32 사용해 보신분 계신가요? [4]

  • Isaiah
  • 2022-01-03
  • 조회 수 411

s5pv310에 emmc version적용 [4]

v4l2를 이요하여 usb캠 출력하는데 영상이 깨지는현상이 나타나는데 ... file [1]

  • biokk
  • 2015-06-14
  • 조회 수 413

kernel booting 오류 문의 드립니다. [9]

  • 마빡
  • 2015-04-15
  • 조회 수 416

사용자 로그인