터치관련 질문드립니다. 개발 환경은 Aesop과 동일 하고요, vmware 환경에서 slackware 돌아가고 툴체인도 aesop 거랑 같습니다. 보드는 bluesky2410입니다.
H/W가 다르니 꼭 답 안해 주셔도 되지만, 마땅히 물어 볼데가 없어서..
아무거라도 조언 주시면 큰 도움이 되겠습니다.
터치를 사용해 볼려고 하는데요.. /korea-dokdo/nfsmount/rootfs-aesp 을 루트파일시스템으로 해서 NFS로 부팅한 상태 입니다..
[root@aESOP2440]$cat /proc/interrupts 이렇게 치면
13: 200259 DMA timer
14: 193612 timer
18: 0 I2SSDI
19: 198 I2SSDO
25: 2 S3C2410 USB core
26: 0 usb-ohci
30: 0 RTC Alarm
37: 8858 cs89x0
52: 1199 serial_s3c2410_rx
53: 3187 serial_s3c2410_tx
61: 292 s3c2410-ts
62: 2758 s3c2410-ts
Err: 0
[root@aESOP2440]$
이렇게 나오고 화면을 한번 터치하고 다시 위와 같이 입력하면
[root@aESOP2440]$cat /proc/interrupts
13: 303093 DMA timer
14: 270938 timer
18: 0 I2SSDI
19: 198 I2SSDO
25: 2 S3C2410 USB core
26: 0 usb-ohci
30: 0 RTC Alarm
37: 9083 cs89x0
52: 1207 serial_s3c2410_rx
53: 3295 serial_s3c2410_tx
61: 294 s3c2410-ts
62: 2778 s3c2410-ts
Err: 0
[root@aESOP2440]$
이렇게 터치쪽 인터럽트(?) 가 증가하는 것을 볼 수 있습니다..
질문1) 이러면 터치가 제대로 동작하고 있는게 맞나요?
s3c2410-ts 가 왜 2개 인가요?
/dev 아래 터치관련 파일이 없어
mknod /dev/s3c2410-ts c 61 0
이렇게 만들었습니다..
[root@aESOP2440]$ls -al /dev/s3c2410-ts
crw-r--r-- 1 root root 61, 0 Nov 21 2000 /dev/s3c2410-ts
질문2) 이렇게 만들어 주는게 맞나요?
Application에서 사용하기 위해
if((touch_screen_fd = open("/dev/s3c2410-ts", O_RDONLY|O_NONBLOCK)) == -1) 이렇게 열었습니다
에러는 안나더군요.
touch_screen_fd 값은 4를 반환합니다.
질문3) 여기까지 제대로 된 건가요?
touch interrupt가 있을 때 마다 값을 read 하기 위해 read 하는 함수를
SIGINT signal을 받았을 때 실행하도록 함수를 넣어 주려 하는데..
case SIGINT:
Touch_read(); 이런식으로요.. 그런데 SIGINT는 터치에 해당하는 signal이
아닌 것 같네요.. 실행이 안되는 것 보니
case SIGIO:
case SIGINT:
Touch_read();
이렇게 하면 키보드 눌를 때만 Touch_read()함수가 동작하네요..
Full souce가 혹시 궁금하시면 올려드리겠습니다.. 제가 작성하건 물론 아니지만..
조언 주시면 무지 감사하겠습니다.
touch는 signal로 읽는게 아니고, open을 했으면 해당 fd에 대해서
read만 걸어주시면 됩니다.
회사가면 touch test 프로그램이 있나 찾아서 올려드리도록 하지요.
SIG관련들은 시스템 시스널입니다. 터치 관련 interrupt는 커널의
터치 드라이버에서만 처리가 되어서 read()로 읽을 수 있게 되어
있습니다.
물론, read()도 내부서 처리가 다 된 후에 데이터만 올라오게 되어있ㄱ요.
SIG들은 실제로는 process간 signal이라서 software interrupt
라고 생각하시면 됩니다. hw interrupt는 일반적으로 device driver에서 처리가 된 후 해당 device driver의 read() operation이 가능하도록 만들어 주는 역할을 합니다...^^