: 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이라는 파일에서 정보를 읽어가
서 터치가 제대로 동작을 할겁니다
두서없이 작성한 내용이라 좀 허접한데 아무쪼록 도움이 되셨으면 좋겠네요
| |
첫번째 문제는 잘 모르겠고 두번째 문제는 링커 문제 같네요. 링커할때 libqte.so 라이브러리를 링크한듯 하네요. 멀티쓰레드 사용하시려면 libqte-mt.so 파일로 링크 해주시면 될듯. 해당 폴더 있는 파일의 Makefile을 수정해 주시고 (-lqte => -lqte-mt) 재컴파일해주세요. ^^& |
X | |||
첫번째 문제는 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 |