◆ 무한한 가능성/& Embedded

[펌글] QT Touch Q&A

치로로 2009. 1. 12. 00:30

출처 guruda님의 블로그 | 사노라면
원문 http://blog.naver.com/guruda/50001852189

: qt-2.3.7 올렸구요 강좌에 나온덴로 예제로 된 어플리케이션 구동 확인했습니다
: 그래서 터치스크린을 사용해볼려구 하는데 잘안되네요 게시판 보구 특정소스를
: 수정해야 한다구 해서 qwsmouse_qws.cpp이던가(?) 아무튼 그것두 그대루 복사해
: 서 따왔구요 다시 컴파일 해줬습니다. 그리구 콘솔상에서 mk712 동작되는것두
: 확인했구요 echo '1' > /proc/mk712 명령으로 좌표 찍히는것두 잘됐음니다 근데
: qt 안에 있는 예제 프로그램 올린다음 터치로 버튼같은게 클릭되나 해봤는데
: 그런건 전혀 안되네요 원래 그런건가요? 아님 제가 뭘 빠뜨렸나요? 여기서 진척이
: 안되니깐 답답하네요 답변 기다릴께요 수고하세요


커널의 driver/char/mk712.c 파일을 수정하시고 다시 커널 컴파일 하셨어 올려 보세요..

이지 보드를 쓰고 있습니다.

변변 찮지만 제가 한 내용을 올려볼게요

QT/E 컴파일 이란 강좌.. 밑에 있죠?

그것과 FALINUX 사이트에 가셔서 Q&A 부분에 사용자 강좌에 QT/E 3.3.3 터치패널 구동이라고

있구요 강좌에 보시면 qt-2.3.7 도 깔수 있는 방법이 있습니다

이 세가지 내용을 전부 조합해서  이해하신후

컴파일을 그대로 하시면 되는데요~


주의하실 점은 QT/E-3.3.3/mkspecs/qws/linux-arm-g++

에 있는 qmake.conf에서   QMAKE_CC    QMAKE_CXX   등등을

꼭 armv5l-linux-gcc 모양처럼  바꿔주시고

저장을 시켜주세요

그렇지 않으면

확실친 않지만 제가 생각하기로는 나중에 calibration부분을 이지보드용으로 컴파일을
해줄때  안될수도 있을것 같아요

FALINUX사이트에서도 자료를 받아볼수 있는데 (위에서 제가 말한 qt-3.3.3터치패널)
사용방법도 있습니다.


자료중에는
마우스관련, 터치패드 관련 파일 4개를받아볼수 있고
mk712.c 수정본을 제공받을수 있습니다.

파일 네개는 qt/e-3.3.3 폴더 중 src/embedded 폴더에 넣어주시고
mk712.c 파일은 보드 커널에 drivers/char 밑에 넣어줍니다.

기존에 있는 파일을   교체 하셔도 무방합니다.

그런데 mk712.c 는  보드의 터치패널과 관련된 칩이름으로서 (mk712)
그냥 보통 만들어주는   zImage 를 올리신 후에
좌표를 찍어보시면
x축과 y축이 서로 반대일 겁니다. 

이 x축과 y축을 바꿔줘야 하는데요

여기서부터는 잘보세요!!!!!!
FALINUX 에  올리신 분이 못올리신 내용입니다.


보통 2.3.7 에는 qwsmouse_qws.cpp 인가요?
xy축을 바꿔주는 방법이 소개가 되는데

3.3.3 에는 도저히 그 소스가 없어요
그래서 찾아낸 방법이


FALINUX사이트에서 받은  소스(mk712.c) 중에
static void mk712_output_point(unsigned short x, unsigned short y)
란함수가 있습니다.

이 곳에서 tx = x 를   tx=y 로 바꾸고
ty = y 를 ty=x 로 바꿔주고 보드 커널 이미지를 만들어 줍니다.

그렇게 만들어진 zImage 를 올리시면 될겁니다.

보드쪽에서는

1. 호스트 pc 에서 만들어진 qt/e-3.3.3  밑에 있는 lib 폴더에 만들어진

   라이브러리 파일들을 보드 /lib 에 링크시켜주시고

2. qt 가 마운트 되어 있는 폴더에 가서
    export 를 통하여 경로를 정해주시고

저같은 경우  
        export QTDIR=/mnt/nfs/qte-3.3.3         
        export PATH=$QTDIR/bin:$PATH
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib

   첫줄에서  /mnt/nfs부분은 제각기 다르시겠죠? 경로만 설정 해주시면 되고
   두 번째 줄, 세번째 줄은 똑같이 써주세요 

3.  export QWS_MOUSE_PROTO=linuxtp
    이것은 마우스와 터치패드에 관한 것입니다.
   제가 이것을 빼먹고 했을때는 qt 예제를 실행시킨후 기아상태가 발생했지요
    즉, 키보드 입력이 안먹고 아무것도 안 먹습니다.
   혹, 터치패드가 잡혀서   예제가 실행이 된다해도 그 예제를 종료시키면
   주도권이 다시 콘솔창으로 돌아오지 않을겁니다.
   꼭 해주세요.....

4. 그리고 calibration 인데요
   FALINUX 사이트에서 받은 calibration 폴더에 있는 것을 경로 설정을 잘해주시고
   컴파일을 하시면 calibrate 라는실행 화일이 생길겁니다.
   (혹, 컴파일이 제대로 안 되시는 분들   에러가 백개가 넘게 주루룩~~ 나오시는 분들은
    위에서 말씀드린 qws/linux-arm-g++ 부분에서 CC , CXX 부분등을 armv5l-linux-gcc 등등
    으로 안해주셨을 확률이 있습니다. 확인해 보세요)
  
    그렇게 생긴 calibrate 라는 파일을 보드에서 실행을 시켜보시면
    화면이 뜰겁니다. 실행을 할때 -qws 옵션 붙여주세요
    총 5개 x 표가 나오고 그것을 찍으면 calibration 이 잘 되면 자기가 알아서 종료가 됩니다.
     만약 false 가 나오시는 분들은
     위에서 제가 말한 mk712.c 을 보드커널에 있는 mk712.c 와 교체하시는데 x, y를 바꿔주지
     않아서 그럴겁니다. 꼭 해주시고 그렇게 만들어진 커널이미지를 올려주세요.

5. calibration을 다 해주시면 보드에 /etc/pointercal 이라는 것이 생기구요
    이제 examples 폴더에 있는 예제를 실행해보시면 그 pointercal이라는 파일에서 정보를 읽어가 
    서 터치가 제대로 동작을 할겁니다   


두서없이 작성한 내용이라 좀 허접한데 아무쪼록 도움이 되셨으면 좋겠네요



큐티 3.3.3을 쓰고 있구요

첫번째!

echo'1'>/proc/mk712

를 사용 하여 좌표가 찍히는 것은 됩니다
근데 컴파일하여 -qws옵션을 주어 실행하면 화면에 출력이 되지만
이때 터치는 먹통입니다.

먼저 해보신 분들이나 장형기님!

어떤 문제로 보아야 할까요?

그리고 두번째!

configure할때 thread옵션을 주어서 libqte 가 libqte-mt가 되는것은 확인하였는데요
그후에 예를 들어

./tetrix -qws를 실행하면

./tetrix : error while loading shared libraries : libqte.so.3 cannotnot open sharedy

라는 에러가 뜨는데요 혹시 아시면 가르쳐주시겠습니까?
부탁드립니다.

양해구함 첫번째 문제는 잘 모르겠고 두번째 문제는 링커 문제 같네요.
링커할때 libqte.so 라이브러리를 링크한듯 하네요.
멀티쓰레드 사용하시려면 libqte-mt.so 파일로 링크 해주시면 될듯.
해당 폴더 있는 파일의 Makefile을 수정해 주시고
(-lqte => -lqte-mt) 재컴파일해주세요. ^^&
 X 2006/02/09 
OnePiece 첫번째 문제는 mk712를 수정하시면 될꺼 같네요.
수정하실 부분은
static void mk712_output_point(int x, int y)
{
struct mk712_packet t;

t.header = 0; <-- 1로 변경
t.x = x;
t.y = y;
t.reserved = 0;

mk712_output_packet(t);
output_point = 1;
}


static void mk712_release_event(void)
{
struct mk712_packet t;

if (!output_point) {
points = 0;
return;
}
output_point = 1; <-- 0으로 변경

t.header = 0;
t.x = t.y = t.reserved = 0;

mk712_output_packet(t);
points = 0;
}

이렇게 변경하시면 될꺼 같네요.



'◆ 무한한 가능성 > & Embedded' 카테고리의 다른 글

[펌글] Samsung ARM11 S3C6410 자료  (0) 2009.01.12
[임베디드] about reset  (0) 2009.01.12