(주)인시그널
Linaro Project
ArndaleBoard.org
OrigenBoard.org
K.E.L.P(Korea Embedded Linux Project

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

안녕하세요

 

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)를 감지할수있는? 함수를 구현하면 될거같긴한데

모르겠네요.

 

질문이 커진거 같은데.

도와주세요 ㅎ

 


 

 

 


[레벨:12]고도리

2012.04.16 20:23:17
*.200.239.234

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


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

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


그럼...

[레벨:2]Supsupi

2012.04.16 21:45:30
*.9.118.77

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

[레벨:2]Supsupi

2012.04.17 10:39:02
*.9.118.77

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

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

 

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

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

 

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

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

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

 

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

모색중이었는데.

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

List of Articles
번호 제목 글쓴이 날짜 조회 수
5328 오리겐보드용 wlan driver [4] [레벨:1]바닷바람 2012-04-20 950
5327 커널에 phy드라이버를 설정하려고 하는데 그림과 같이 ㅠㅠ micrel게 없네요.. file [레벨:3]혜민아빠 2012-04-20 675
5326 커널에서 이더넷을 MII로 쓸지 RMII로 쓸지 겨정하는 부분은 어디에 있나요? [레벨:3]혜민아빠 2012-04-20 676
5325 FFMPEG 을 Windows 에서 IPP 를 이용한 콤파일 관련 질문 [레벨:2]blue0sky 2012-04-20 656
5324 드디어 OS 부팅까지 ㅠㅠ 성공했네요..그런데 이더넷은 왜?????안되는 건지 [4] [레벨:3]혜민아빠 2012-04-19 965
5323 옵티머스 3D 카메라를 이용한 스테레오 비전 처리 [1] [레벨:0]꿀한스푼 2012-04-19 917
5322 S5PC100 회로도 구할 수는 없는지요?(PDF 파일이 아닌 CAD 파일) [레벨:0]최성국 2012-04-19 620
5321 [WinCE] 카메라 NSM-05VF 포팅 관련 질문... [1] [레벨:0]스페셜 2012-04-19 747
5320 [Linux] SMSC911x Driver Upgrade 관련 질문... [3] [레벨:0]스페셜 2012-04-19 800
5319 리눅스 커널이 부팅이 몇 번 됐는데..ㅠㅠ또 다시 안되네요... [3] [레벨:3]혜민아빠 2012-04-18 742
5318 V4L2 device driver의 node ? [1] [레벨:1]테크 2012-04-18 1057
5317 현재 새로운 보드에 기존 커널을 포팅하려고 하는데요... [3] [레벨:3]혜민아빠 2012-04-17 836
5316 Starting Kernel 메세지만 출력이 나왔는데, menuconfig에서 Dataflash설정... file [2] [레벨:3]혜민아빠 2012-04-16 802
» interrupt를 활용한 keypad 감지 c프로그램은 어떤식으로...? [3] [레벨:2]Supsupi 2012-04-16 952
5314 V310 스펙(OM 부팅모드) 관련하여 질문입니다. [3] [레벨:1]노대성 2012-04-15 821
5313 [질문] h264파일을 mp4컨테이너에 담기 [3] [레벨:1]차차호드 2012-04-13 854
5312 중소기업도 GMS 인증 가능할까요? [4] [레벨:2]현쓰 2012-04-12 885
5311 블루스카이님, 고도리님, ikari님, 김지원님 !!! [4] [레벨:1]차차호드 2012-04-12 849
5310 커널에서 head.S보다 더 먼저 거치는 부분이 어딘가요? [3] [레벨:3]혜민아빠 2012-04-12 803
5309 NAND 0번지에 잘못된 프로그램이 들어있는 경우 어떻게 해야하나요? [9] [레벨:1]박영기1 2012-04-12 828

사용자 로그인