我们FL2440自带的文件体系中busybox指令不支持TAB主动补全,所以自己从头制作了文件体系,然后烧写,不过往后有点问题,角度屏欠好
使了。也没有提示校准。下面是解决办法
一:WINCE之校屏
WINCE的校屏参数是保存在注册表中的。翻开BSP包中的platform.reg,找到如下代码:
- IFBSP_NOTOUCH!
- [HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/TOUCH]
- “MaxCalError”=dword:7
- “CalibrationData”=”626,4641054,823192,813190,1081070,104”
- “Order”=dword:1
- ENDIFBSP_NOTOUCH!
这儿的CalibrationData便是校屏数据。我们WINCE开机后角度偏移太大,底子无法点击进入校屏程序,有两种办法:
办法一:假如您手上有USB鼠标,将USB鼠标刺进USB的HOST接口,这时就可以经过鼠标进入校屏界面了。点开端,操控
面板,笔针。
办法二:这种办法不合适初学者,合适程序开发人员。首要同步开发板,将校屏应用程序拷到开发板某目录,再经过
VS2005,恣意翻开一个应用程序,将程序进口指向拷备的应用程序,再F5,即运行了该校屏程序。详细进程这儿就不
一一列举了。
校完屏后,假如校对的注册表丢掉,再重烧体系后,又会呈现偏移。批量生产时就更不用说了。那怎么办呢?其实,当
您校完屏后,保存的校对数据现已保存起来了。经过remote register editer检查注册表信息,进入如下途径:
HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/TOUCH
记载CalibrationData的数据,将platform.reg里的过错数据用该数据替换。留意,files目录下的和release目录下的
platform.reg都要修正!更改后再make一下,生成的NK,便是正确的数据了。
二:LINUX之校屏
我们飞凌开发板默许没有校屏,可是引导linux体系后,现已进入shell界面了[QT界面],没有校准的进程。怎么办?经过
DNW或许超级终端,进入linux的consloe,检查/etc下有个文件pointercal,删去该文件,reboot,体系将重启,主动进入校准界面。这时就可以校屏了。
假如这时校屏依然无法成功,即重复的点击那个十字架不断,这是角度屏驱动的问题,“修正以下代码:
/drivers/char/s3c2410ts.c中将static inline void s3c2410_get_XY(void)函数中的x,y值互换次序。” 详细地:
- staticinlinevoids3c2410_get_XY(void)
- {
- if(adc_state==0){
- adc_state=1;
- disable_ts_adc();
- x=__raw_readl(S3C2410_ADCDAT1)&0x3ff;//x:f04y:f0ebypht.
- mode_y_axis();
- start_adc_y();
- }elseif(adc_state==1){
- adc_state=0;
- disable_ts_adc();
- y=__raw_readl(S3C2410_ADCDAT0)&0x3ff;//y:f04x:f0ebypht.
- DPRINTK(“PENDOWN:x:%08d,y:%08d/n”,x,y);
- wait_up_int();
- tsdev.penStatus=PEN_DOWN;
- tsEvent();
- }
- }
改为
- staticinlinevoids3c2410_get_XY(void)
- {
- if(adc_state==0){
- adc_state=1;
- disable_ts_adc();
- y=__raw_readl(S3C2410_ADCDAT1)&0x3ff;//x:f04y:f0ebypht.
- mode_y_axis();
- start_adc_y();
- }elseif(adc_state==1){
- adc_state=0;
- disable_ts_adc();
- x=__raw_readl(S3C2410_ADCDAT0)&0x3ff;//y:f04x:f0ebypht.
- DPRINTK(“PENDOWN:x:%08d,y:%08d/n”,x,y);
- wait_up_int();
- tsdev.penStatus=PEN_DOWN;
- tsEvent();
- }
- }
然后从头编译内核,烧写内核