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

안녕하세요?


제가 안드로이드 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
6348 on cell 형 multi touch panel 사용법? [1] 문종섭 2016-09-29 204
6347 [요청] 이솝따라하기 편 닉슨클라우드 2017-01-11 206
6346 Web Application Server 또는 Web Server에 대한 질문 [2] SpecialCase 2019-03-28 207
6345 /dev/mmcblk0rpmb가 나오게 하려면 어떻게 해야 하나요? [1] 혜민아빠 2015-11-19 208
6344 CodeSourcery에 보면arm-none-linux-gnueabi 라이브러리가 세폴더로 ... biokk 2015-03-05 208
6343 Touch screen에 관해서… [1] 어떤이의꿈 2015-08-10 209
6342 PWM Timer2 Prescaler값 변경시 시스템 시간 지연 문제? [3] 루벤94 2015-10-06 209
» 안드로이드 버튼입력 지연 [2] 아라라라기 2015-12-15 211
6340 임베디드제품에 안드로이드 앱의 install이 가능한가요 ? [3] 김진희 2015-07-24 214
6339 [debian vs ubuntu] [1] 밥줘잉 2016-11-10 215
6338 리눅스에서 인터럽트 트랜스퍼의 폴링인터벌을 조절할 수 있는 방법이... [1] 아라라라기 2015-12-26 218
6337 ARM Ubuntu에서 touchscreen 설정 블루스카이 2016-07-04 219
6336 혹시 RouteTable 정보 읽을 수 있는 분 있나요? file [3] 엘카 2016-04-29 224
6335 Linux booting message관련해서... [3] 박종석 2016-08-30 228
6334 안전모드 진입 [1] 하하호호하하 2021-01-29 228
6333 [안드로이드 서비스 실행관련] [1] 밥줘잉 2015-10-09 230
6332 cat sys/kernel/debug/gpio, gpio 초기화 질문입니다. [2] k40007 2016-10-01 233
6331 안드로이드 소스를 빌드 하였는데, img 파일이 생성되지 않습니다. [4] 겟페우스 2016-10-15 233
6330 S5PV210 에서 Overlay Layer적용 [1] jameskody 2015-04-03 233
6329 네비바 삭제 질문드립니다. 하하호호하하 2015-03-17 233

사용자 로그인