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

안녕하세요

 

mango64라는 s3c6410기반 보드를 활용하고 있습니다

qt를 올려보고 디바이스 드라이버를 이용해 led 제어까지 qt로 구현해봤습니다.

 

반대로 keypad를 이용하여 qt를 제어해보고 싶은데

어떤식으로 해야할지 감이 안오네요.

 

일단  c로 커널에 포함된 keypad device driver를 이용하여

어떤 버튼을 눌렀는지 감지만 할 수 있다면 qt에서도 적용할 수 있을거 같은데.

문제는 polling방식 감지가 아니라 interrupt 방식으로 구현이 가능할까요?

 

감이 안와서 커널에 포함된 keypad device driver를 보고잇는데..

일단 키패드는 GPIO에 붙어있습니다.

인터럽트 핀과 연결이 안되어 있다보니

커널층에서  타이머같은걸로계속 키를 읽어보는 polling방식으로 구현이 된거같은데...

어떤식으로 활용해야할지 모르겠고..

 

디바이스 드라이버를  계속 따라가다보니

static void input_pass_event(struct input_dev *dev,unsigned int type, unsigned int code, int value)
{
 struct input_handle *handle;

 rcu_read_lock();

 handle = rcu_dereference(dev->grab);
 if (handle)
  handle->handler->event(handle, type, code, value);
 else
  list_for_each_entry_rcu(handle, &dev->h_list, d_node)
   if (handle->open)
    handle->handler->event(handle,
       type, code, value);
 rcu_read_unlock();
}

까지 왔습니다 하지만 event(handle, type, code, value) 함수를 못찾고 헤매고 있네요.

 

결국 event(handle, type, code, value)를 감지할수있는? 함수를 구현하면 될거같긴한데

모르겠네요.

 

질문이 커진거 같은데.

도와주세요 ㅎ

 


 

 

 


고도리

2012.04.17 05:23:17
*.200.239.234

http://www.aesop.or.kr/36077


문서의 71 page를 보시면 관련 부분에 대한 예제가 있습니다.

예전 예제라 커널 버전에 따라 좀 틀리겠지만, 2.6.30 이전에는 큰 문제없이 적용됩니다.


그럼...

Supsupi

2012.04.17 06:45:30
*.9.118.77

정말 감사드립니다. 고도리님 ~!!

Supsupi

2012.04.17 19:39:02
*.9.118.77

올려주신 소스를 보았습니다.

디바이스 드라이버 인터럽트를 이용한 방식이던데

 

디바이스 드라이버의 인터럽트 루틴에서

application에 있는 일반 함수를 call하는게 가능할까요?

 

제가 가지고 있는 디바이스 드라이버책에보면

이런식으로 디바이스 드라이버 인터럽트를 구현해놨지만

application에서 결국 while함수를 이용한 polling으로

 

read함수를 호출하여 값의 변화를 읽는방식이라서 다른방법을

모색중이었는데.

폴링방식이 아닌걸로 keypad인식하는게 쉽지않네요 ㅎ

List of Articles
번호 제목 글쓴이 날짜 조회 수
5308 Starting Kernel 메세지만 출력이 나왔는데, menuconfig에서 Dataf... file [2] 혜민아빠 2012-04-17 1306
» interrupt를 활용한 keypad 감지 c프로그램은 어떤식으로...? [3] Supsupi 2012-04-17 1766
5306 V310 스펙(OM 부팅모드) 관련하여 질문입니다. [3] 노대성 2012-04-15 1253
5305 [질문] h264파일을 mp4컨테이너에 담기 [3] 차차호드 2012-04-14 1426
5304 중소기업도 GMS 인증 가능할까요? [4] 현쓰 2012-04-12 1441
5303 블루스카이님, 고도리님, ikari님, 김지원님 !!! [4] 차차호드 2012-04-12 1243
5302 커널에서 head.S보다 더 먼저 거치는 부분이 어딘가요? [3] 혜민아빠 2012-04-12 1183
5301 NAND 0번지에 잘못된 프로그램이 들어있는 경우 어떻게 해야하나요... [9] 박영기1 2012-04-12 1625
5300 [s5pc110] 인코딩시에 와이드비율에서 이미지 마지막 흐려지는 현상 file [5] 차차호드 2012-04-11 1447
5299 Starting Kernel 메세지까지 출력이 되었습니다. 어디서부터 디버깅... file [3] 혜민아빠 2012-04-10 1313
5298 NAK bailout생기면서 I2C 통신 fail이 나네요. 훌러덩 2012-04-10 8974
5297 커널 디버깅을 하기 위해 printascii()함수를 사용하려면 무슨 head... [1] 혜민아빠 2012-04-10 1573
5296 콘솔상에서 /dev/mem을 통한 물리메모리 덤프 시도 [1] 김지원 2012-04-10 1401
5295 긴급질문입니다! boot animation 무한반복현상 [2] yama 2012-04-09 1089
5294 invvalidate TLB 해황 2012-04-08 734
5293 제가 만든 모듈을 보드에 있는 커널에 삽입하려고 하니..아래와 같은... [1] 혜민아빠 2012-04-07 1493
5292 stripped 파일은 어떻게 만드는 것인가요? file [5] 혜민아빠 2012-04-07 1221
5291 4210에서 smbus사용하기 위해서 [1] 훌러덩 2012-04-06 1319
5290 왜? 모듈을 올리려면(insmod: can't insert 'dev_led.ko': invali... [3] 혜민아빠 2012-04-06 1554
5289 S3C6410타겟보드에 2.95 컴파일러를 사용하는 환경에서 개발이 가능할... [2] 은민아빠 2012-04-05 1141

사용자 로그인