Linux系統(tǒng)移植(第2版):第7章 觸摸屏驅(qū)動(dòng)移植_第1頁
Linux系統(tǒng)移植(第2版):第7章 觸摸屏驅(qū)動(dòng)移植_第2頁
Linux系統(tǒng)移植(第2版):第7章 觸摸屏驅(qū)動(dòng)移植_第3頁
Linux系統(tǒng)移植(第2版):第7章 觸摸屏驅(qū)動(dòng)移植_第4頁
Linux系統(tǒng)移植(第2版):第7章 觸摸屏驅(qū)動(dòng)移植_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章觸摸屏驅(qū)動(dòng)移植7.1觸摸屏概述7.2S3C2440ADC接口使用7.32.6內(nèi)核觸摸屏驅(qū)動(dòng)源碼分析(s3c2410_ts.c源碼分析)7.4Linux內(nèi)核輸入子系統(tǒng)介紹7.5觸摸屏驅(qū)動(dòng)移植和內(nèi)核編譯7.1觸摸屏概述7.1.1觸摸屏工作原理7.1.2觸摸屏的主要類型7.1.1觸摸屏工作原理觸摸屏簡單地說就是一種特殊的輸入設(shè)備。為了操作方便,人們用觸摸屏取代鼠標(biāo)或者鍵盤。觸摸屏由觸摸檢測部件和觸摸屏控制器組成;觸摸檢測部件安裝在顯示器屏幕前面,用來檢測用戶觸摸的位置,接受后送觸摸屏控制器;而觸摸屏控制器的主要作用是從觸摸點(diǎn)檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成為觸點(diǎn)坐標(biāo),再送給CPU處理,它同時(shí)能接收CPU發(fā)來的命令并加以執(zhí)行。7.1.2觸摸屏的主要類型按技術(shù)原理來區(qū)別觸摸屏,可分為以下5個(gè)基本種類:矢量壓力傳感式觸摸屏;電阻式觸摸屏;電容式觸摸屏;紅外線式觸摸屏;表面聲波式觸摸屏。1.電阻觸摸屏電阻觸摸屏的屏體部分是一塊與顯示器表面相匹配的多層復(fù)合薄膜,由一層有機(jī)玻璃作為基層,表面還涂有一層透明的導(dǎo)電層,上面再蓋有一層外表面硬化處理、光滑防刮的塑料層,它的內(nèi)表面也涂有一層透明導(dǎo)電層,在兩層導(dǎo)電層之間有許多細(xì)?。ㄐ∮谇Х种挥⒋纾┑耐该鞲綦x點(diǎn)把它們隔開絕緣。2.電容式觸摸屏電容式觸摸屏的構(gòu)造主要是在玻璃屏幕上鍍一層透明的薄膜層,再在導(dǎo)體層外加上了一塊保護(hù)玻璃,雙玻璃設(shè)計(jì)能夠很好地保護(hù)導(dǎo)體層及感應(yīng)器。3.紅外線式觸摸屏這種觸摸屏由裝在觸摸屏外框上的紅外線發(fā)射與接收感測元件構(gòu)成,在屏幕表面上形成紅外線探測網(wǎng),任何觸摸物體都可以改變觸點(diǎn)上的紅外線而實(shí)現(xiàn)觸摸操作。紅外觸摸屏不受電流、電壓和靜電干擾,適宜某些惡劣的環(huán)境條件。4.表面聲波觸摸屏表面聲波是一種沿著介質(zhì)表面?zhèn)鞑サ臋C(jī)械波。這種觸摸屏由觸摸屏、聲波發(fā)生器、反射器和聲波接收器組成,其中,聲波發(fā)生器能發(fā)送一種高頻聲波跨越屏幕的表面,當(dāng)手指觸到屏幕時(shí),觸點(diǎn)上的聲波就被阻止,由此確定觸點(diǎn)坐標(biāo)的位置。7.2S3C2440ADC接口使用7.2.1S3C2440觸摸屏接口概述7.2.2S3C2440觸摸屏接口操作7.2.1S3C2440觸摸屏接口概述S3C2440具有8通道模擬輸入的10位CMOS模數(shù)轉(zhuǎn)換器(ADC),它將輸入的模擬信號轉(zhuǎn)換為10位的二進(jìn)制數(shù)字碼。在2.5MHz的A/D轉(zhuǎn)換器時(shí)鐘下,最大轉(zhuǎn)化速率可以達(dá)到500KSPS。A/D器支持片上采樣和保持功能,并支持掉電模式。7.2.2S3C2440觸摸屏接口操作1.S3C2440觸摸屏控制器工作模式2.S3C2440觸摸屏接口專用寄存器1.S3C2440觸摸屏控制器工作模式S3C2440的觸摸屏控制器是和A/D轉(zhuǎn)換控制器結(jié)合在一起的,觸筆的位置通過模擬信號傳遞給A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換完成后,把結(jié)果保存在相應(yīng)的寄存器。根據(jù)轉(zhuǎn)換方式的不同,觸摸屏控制器有以下4種工作模式。(1)等待中斷模式(2)分離x/y軸坐標(biāo)模式(3)自動(dòng)x/y軸坐標(biāo)轉(zhuǎn)換模式(4)普通轉(zhuǎn)換模式2.S3C2440觸摸屏接口專用寄存器S3C2440觸摸屏接口涉及的專用寄存器比較少,主要有ADCCON、ADCTSC、ADCDAT0和ADCDAT1。下面分別對它們進(jìn)行介紹。(1)ADCCON控制寄存器。(2)ADC觸摸屏控制寄存器ADCTSC。(3)ADCDAT0和ADCDAT1寄存器(4)ADC起始廷遲寄存器(ADCDLY)7.32.6內(nèi)核觸摸屏驅(qū)動(dòng)源碼分析(s3c2410_ts.c源碼分析)Linux2.6.33的內(nèi)核源碼中已經(jīng)包含了觸摸屏的相驅(qū)動(dòng)了,對應(yīng)的源代碼在drivers/input/touchscreen/s3c2410_ts.c中。1.s3c2410ts_probe分析2.touch_timer_fire分析3.stylus_updown分析4.stylus_action分析5.3c2410ts_remove分析1.s3c2410ts_probe分析s3c2410ts_probe是一個(gè)探測函數(shù),在這個(gè)函數(shù)中完成了硬件資源獲取、GPIO口的初始化、中斷申請和注冊驅(qū)動(dòng)程序等操作。2.touch_timer_fire分析touch_timer_fire()函數(shù)主要實(shí)現(xiàn)以下功能:stylusdown的時(shí)候,touch_timer_fire()函數(shù)在中斷函數(shù)stylus_updown里被調(diào)用,此時(shí)緩存區(qū)沒有數(shù)據(jù),ts.count的值為0,所以只是簡單地設(shè)置A/D轉(zhuǎn)換的模式,然后開啟A/D轉(zhuǎn)換。當(dāng)ADC中斷函數(shù)stylus_action()把緩沖區(qū)填滿時(shí),作為中斷后半段函數(shù)稍后被調(diào)用,此時(shí)ts.count等于shift,算出其平均值后,交給事件處理層(EventHandler)處理,主要是填寫緩沖然后喚醒等待輸入數(shù)據(jù)的進(jìn)程。stylus抬起,等到緩沖區(qū)填滿后(可能會(huì)包含一些無用的數(shù)據(jù))被調(diào)用,這時(shí)判斷出stylusup,報(bào)告stylusup事件,重新等待stylusdown。3.stylus_updown分析staticirqreturn_tstylus_updown(intirq,void*dev_id,structpt_regs*regs){unsignedlongdata0;

//用于保存ADCDAT0的值unsignedlongdata1;

//用于保存ADCDAT1的值intupdown;

//用于保存觸筆動(dòng)作data0=readl(base_addr+S3C2410_ADCDAT0);

//讀ADCDAT0的值data1=readl(base_addr+S3C2410_ADCDAT1);

//讀ADCDAT1的值/*再次判斷觸筆是否真的按下,本來進(jìn)入這個(gè)中斷服務(wù)程序就說明觸筆是已經(jīng)按下了,這里有廷時(shí)去抖動(dòng)的作用*/updown=(!(data0&S3C2410_ADCDAT0_UPDOWN))&&(!(data1&S3C2410_

ADCDAT0_UPDOWN));

/*

TODOweshouldnevergetaninterruptwithupdownsetwhile

*

the

timerisrunning,butmaybeweoughttoverifythatthe

*

timerisn'trunninganyways.*/if(updown)touch_timer_fire(0);/*判斷出stylusdown,調(diào)用touch_timer_fire函數(shù),從而進(jìn)入中斷的底半部*/returnIRQ_HANDLED;}4.stylus_action分析staticirqreturn_tstylus_action(intirq,void*dev_id,structpt_regs*regs){unsignedlongdata0;

//用于保存X坐標(biāo)的值unsignedlongdata1;

//用于保存Y坐標(biāo)的值data0=readl(base_addr+S3C2410_ADCDAT0);

//讀X坐標(biāo)的值data1=readl(base_addr+S3C2410_ADCDAT1);

//讀Y坐標(biāo)的值ts.xp+=data0&S3C2410_ADCDAT0_XPDATA_MASK;

//X坐標(biāo)的值累加ts.yp+=data1&S3C2410_ADCDAT1_YPDATA_MASK;

//Y坐標(biāo)的值累加ts.count++;

//計(jì)數(shù)器遞增

if(ts.count<(1<<ts.shift)){

//判斷是否完成采樣次數(shù)writel(S3C2410_ADCTSC_PULL_UP_DISABLE|AUTOPST,base_addr+S3C24

10_ADCTSC);

//設(shè)置為自動(dòng)模式writel(readl(base_addr+S3C2410_ADCCON)|S3C2410_ADCCON_ENABLE_

START,base_addr+S3C2410_ADCCON);

//開始A/D轉(zhuǎn)換}

else{mod_timer(&touch_timer,jiffies+1);//采樣完成,調(diào)用touch_timer_fire報(bào)告坐標(biāo)值writel(WAIT4INT(1),base_addr+S3C2410_ADCTSC);}returnIRQ_HANDLED;}5.3c2410ts_remove分析staticints3c2410ts_remove(structdevice*dev){ disable_irq(IRQ_ADC);

//禁止A/D中斷 disable_irq(IRQ_TC);

//禁止觸摸屏中斷 free_irq(IRQ_TC,&ts.dev);

//釋放觸摸屏中斷號 free_irq(IRQ_ADC,&ts.dev);

//釋放A/D中斷號 if(adc_clock){ clk_disable(adc_clock);

//關(guān)閉時(shí)鐘 //clk_unuse(adc_clock); clk_put(adc_clock); adc_clock=NULL; } input_unregister_device(&ts.dev);

//注銷輸入設(shè)備 iounmap(base_addr); return0;}7.4Linux內(nèi)核輸入子系統(tǒng)介紹7.4.1Input子系統(tǒng)概述7.4.2輸入設(shè)備結(jié)構(gòu)體7.4.3輸入鏈路的創(chuàng)建過程7.4.4使用Input子系統(tǒng)7.4.5編寫輸入設(shè)備驅(qū)動(dòng)需要完成的工作7.4.1Input子系統(tǒng)概述Linux系統(tǒng)提供了Input子系統(tǒng),輸入子系統(tǒng)由輸入子系統(tǒng)核心層(inputcore)、驅(qū)動(dòng)層和事件處理層(eventhandler)3部分組成。輸入事件(如鼠標(biāo)移動(dòng)、鍵盤按鍵按下、joystick的移動(dòng)等)通過driver->inputcore->eventhandler->userspace的順序到達(dá)用戶空間傳給應(yīng)用程序。按鍵、觸摸屏、鍵盤、鼠標(biāo)等輸入都可以利用Input接口函數(shù)來實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)。在Linux內(nèi)核中,Input設(shè)備用input_dev結(jié)構(gòu)體描述。7.4.2輸入設(shè)備結(jié)構(gòu)體要了解輸入設(shè)備子系統(tǒng),就得先了解內(nèi)核中輸入設(shè)備的定義,這里先給出內(nèi)核中input_dev的定義,然后再對其中重要的成員進(jìn)行描述。1.private字段在Input結(jié)構(gòu)中,這個(gè)字段可以被用來指向在輸入設(shè)備驅(qū)動(dòng)程序中的任何私有數(shù)據(jù)結(jié)構(gòu),例如在驅(qū)動(dòng)處理多個(gè)設(shè)備時(shí)。在open()和close()函數(shù)中,需要此字段。2.ID和name字段在注冊輸入設(shè)備前,驅(qū)動(dòng)程序應(yīng)該設(shè)置dev->name。ID字段包含了總線ID(PCI、USB,...),供應(yīng)商ID和設(shè)備的設(shè)備ID。總線ID在input.h文件中定義。供應(yīng)商和設(shè)備ID在pci_ids.h、usb_ids.h和相似的頭文件中被定義。這些字段應(yīng)該在注冊輸入設(shè)備前被驅(qū)動(dòng)程序設(shè)置。ID和name字段可以通過evdev接口傳遞給用戶空間使用。3.keycode、keycodemax、keycodesize字段這3個(gè)字段可以用于所有輸入設(shè)備,被用來報(bào)告將產(chǎn)生的數(shù)據(jù)作為掃描碼。如果不是所有的掃描碼可以被自動(dòng)識別所辨別,它們可能需要通過用戶空間應(yīng)用程序設(shè)置。這樣keycode數(shù)組被用來映射掃描碼到輸入系統(tǒng)的鍵碼。keycodemax包含了數(shù)組的大小。keycodesize表示數(shù)組中數(shù)據(jù)的大?。▎挝粸閎ytes)。4.evbit、keybit、relbit、absbit字段這幾個(gè)字段是用于設(shè)置輸入設(shè)備的事件類型,EV_KEY是最簡單的事件類型,用作按鍵的事件類型。這個(gè)事件通過下面函數(shù)報(bào)告給輸入系統(tǒng):input_report_key(structinput_dev*dev,intcode,intvalue)7.4.3輸入鏈路的創(chuàng)建過程輸入鏈路的創(chuàng)建過程主要包括硬件設(shè)備注冊和inputhandler兩部分。1.硬件設(shè)備的注冊2.注冊inputhandler1.硬件設(shè)備的注冊init_input_dev(&ts.dev);ts.dev.evbit[0]=ts.dev.evbit[0]=BIT(EV_SYN)|BIT(EV_KEY)|BIT(EV_ABS);ts.dev.keybit[LONG(BTN_TOUCH)]=BIT(BTN_TOUCH);input_set_abs_params(&ts.dev,ABS_X,0,0x3FF,0,0);input_set_abs_params(&ts.dev,ABS_Y,0,0x3E8,0,0);input_set_abs_params(&ts.dev,ABS_PRESSURE,0,1,0,0);sprintf(ts.phys,"ts0");

//填寫設(shè)備名稱/*以上是輸入設(shè)備的名稱和ID,這些信息是輸入設(shè)備的身份信息了*/ts.dev.private=&ts;=s3c2410ts_name;ts.dev.phys=ts.phys;ts.dev.id.bustype=BUS_RS232;ts.dev.id.vendor=0xDEAD;duct=0xBEEF;ts.dev.id.version=S3C2410TSVERSION;2.注冊inputhandlerstaticstructinput_handlerevdev_handler={ .event

=evdev_event, .connect

=evdev_connect, .disconnect

=evdev_disconnect, .fops

=&evdev_fops, .minor

=EVDEV_MINOR_BASE, .name

="evdev", .id_table

=evdev_ids,};staticint__initevdev_init(void){ returninput_register_handler(&evdev_handler);}7.4.4使用Input子系統(tǒng)在內(nèi)核自帶的文檔Documentation/input/input-programming.txt中。有一個(gè)使用了Input子系統(tǒng)的例子,并附帶相應(yīng)的說明。7.4.5編寫輸入設(shè)備驅(qū)動(dòng)需要完成的工作從上面這個(gè)例子可以看出,通過Input子系統(tǒng),具體的輸入設(shè)備驅(qū)動(dòng)只需要完成如下工作:1.在模塊加載函數(shù)中告知Input子系統(tǒng)它可以報(bào)告的事件設(shè)備驅(qū)動(dòng)通過set_bit()告訴Input子系統(tǒng)它支持哪些事件,如下所示。set_bit(EV_KEY,button_dev.evbit);set_bit(BTN_0,button_dev.keybit);2.在模塊加載函數(shù)中注冊輸入設(shè)備設(shè)備驅(qū)動(dòng)可以通過input_register_device()注冊一個(gè)輸入設(shè)備,函數(shù)原型如下:input_register_device(&button_dev);3.在鍵被按下/抬起、觸摸屏被觸摸/抬起/移動(dòng)、鼠標(biāo)被移動(dòng)/單擊/抬起時(shí),通過input_

report_xxx()函數(shù)報(bào)告發(fā)生的事件及對應(yīng)的鍵值/坐標(biāo)等狀態(tài)主要的事件類型包括EV_KEY(按鍵事件)、EV_REL(相對值,如光標(biāo)移動(dòng),報(bào)告的是相對最后一次位置的偏移)和EV_ABS(絕對值,如觸摸屏、操縱桿,它們工作在絕對坐標(biāo)系統(tǒng))。4.在模塊卸載函數(shù)中注銷輸入設(shè)備注銷輸入設(shè)備的函數(shù)如下:voidinput_unregister_device(structinput_dev

*dev);

是前一節(jié)內(nèi)核源碼的3c2410ts_remove函數(shù)中用下面函數(shù)注銷觸摸屏輸入設(shè)備。input_unregister_device(&ts.dev);

//注銷輸入設(shè)備7.5觸摸屏驅(qū)動(dòng)移植和內(nèi)核編譯7.5.1修改初始化源碼7.5.2修改硬件驅(qū)動(dòng)源碼s3c2440_ts.c7.5.3修改Kconfig和Makefile7.5.4配置編譯內(nèi)核7.5.5觸摸屏測試程序設(shè)計(jì)7.5.1修改初始化源碼本節(jié)主要是幾個(gè)關(guān)鍵文件,這些文件完成一些硬件初始化工作。讀者看這里的時(shí)候可以對照內(nèi)核原代碼來看。1.修改arch/arm/mach-s3c2440/mach-smdk2440.c2.修改arch/arm/plat-s3c24xx/devs.c3.添加頭文件1.修改arch/arm/mach-s3c2440/mach-smdk2440.c這個(gè)文件夾的上部分寫的都是各個(gè)硬件設(shè)備的初始化數(shù)據(jù)。比如串口的初始化數(shù)據(jù)定義如下:staticstructs3c2410_uartcfgsmdk2440_uartcfgs[]__initdata={[0]={.hwport

=0,.flags

=0,.ucon

=0x3c5,.ulcon

=

0x03,.ufcon

=0x51,},[1]={.hwport

=1,.flags

=0,.ucon

=0x3c5,.ulcon

=0x03,.ufcon

=0x51,},/*

IRport*/[2]={.hwport

=2,.flags

=0,.ucon

=0x3c5,.ulcon

=0x43,.ufcon

=0x51,}};2.修改arch/arm/plat-s3c24xx/devs.c這個(gè)文件里面全是設(shè)備信息。這里常出現(xiàn)的就是resource類型的數(shù)據(jù)結(jié)構(gòu)。代表各類資源,在這里加入下面代碼,注意,要在文件尾,至少要在s3c_adc_resource定義之后,因?yàn)槲覀円玫剿?*touchscreen*/structplatform_devices3c_device_ts={.name="s3c2410-ts",.id=-1,.num_resources=ARRAY_SIZE(s3c_adc_resource),.resource=s3c_adc_resource,};EXPORT_SYMBOL(s3c_device_ts)3.添加頭文件如果使用的內(nèi)核版本里面沒有reg-adc.h,則需要從其他版本復(fù)制reg-adc.h,文件位置在include/asm-arm/arch-s3c2410/regs-adc.h,Linux版本是有這個(gè)文件的,只要在該文件內(nèi)添加如下內(nèi)容,這些內(nèi)容是用來設(shè)置觸摸屏的工作模式的。#defineS3C2410_ADCTSC_XY_PST_N

(0x0<<0)

//無操作模式#defineS3C2410_ADCTSC_XY_PST_X

(0x1<<0)

//對X坐標(biāo)進(jìn)行轉(zhuǎn)換#defineS3C2410_ADCTSC_XY_PST_Y

(0x2<<0)

//對Y坐標(biāo)進(jìn)行轉(zhuǎn)換#defineS3C2410_ADCTSC_XY_PST_W

(0x3<<0)

//等待中斷模式7.5.2修改硬件驅(qū)動(dòng)源碼s3c2440_ts.c將下載的S3C2410的驅(qū)動(dòng)程序代碼復(fù)制到drivers/input/touchscreen/下改名為s3c2440_ts.c,因?yàn)镾3C2410和S3C2440的觸摸屏接口基本相同,所以不用對代碼做多大修改,只要改變一下名字即可。1.修改觸摸屏的私有硬件結(jié)構(gòu)體2.初始化觸摸屏并注冊該觸摸屏輸入設(shè)備3.注冊S3C2440ts觸摸屏驅(qū)動(dòng)1.修改觸摸屏的私有硬件結(jié)構(gòu)體staticchar*s3c2440ts_name="s3c2440TouchScreen";structs3c2440ts{

structinput_dev*dev;

//輸入設(shè)備指針

longxp;

//保存X坐標(biāo)

longyp;

//保存Y坐標(biāo)

intcount;

//采樣記數(shù)器

intshift;

//要采樣的次數(shù)

charphys[32];

};staticstructs3c2440tsts;

//定義S3C2440觸摸屏2.初始化觸摸屏并注冊該觸摸屏輸入設(shè)備memset(&ts,0,sizeof(structs3c2440ts));

ts.dev=input_allocate_device();

//分配一個(gè)輸入設(shè)備到觸摸屏結(jié)構(gòu)中...

ts.dev->evbit[0]=ts.dev->evbit[0]=BIT(EV_SYN)|BIT(EV_KEY)|BIT(EV_ABS);/*同步事件、按鍵事件、絕對坐標(biāo)事件*/

ts.dev->keybit[LONG(BTN_TOUCH)]=BIT(BTN_TOUCH);

//一個(gè)按鍵

input_set_abs_params(ts.dev,ABS_X,0,0x3FF,0,0);

//絕對坐標(biāo)的X方向

input_set_abs_params(ts.dev,ABS_Y,0,0x3FF,0,0);

//絕對坐標(biāo)的Y方向

input_set_abs_params(ts.dev,ABS_PRESSURE,0,1,0,0);//按下還是抬起

sprintf(ts.phys,"ts0");

//

dev文件夾中該觸摸屏的名字

ts.dev->private=&ts;

ts.dev->name=s3c2440ts_name;

//輸入系統(tǒng)的名字

ts.dev->phys=ts.phys;

ts.dev->id.bustype=BUS_RS232;

ts.dev->id.vendor=0xDEAD;

//生產(chǎn)商代號

ts.dev->duct=0xBEEF;

ts.dev->id.version=S3C2440TSVERSION;

ts.shift=info->oversampling_shift;...

printk(KERN_INFO"%ssuccessfullyloaded\n",s3c2440ts_name);

/*

Allwentok,soregistertotheinputsystem*/

input_register_device(ts.dev);

//注冊S3C2440ts輸入設(shè)備3.注冊S3C2440ts觸摸屏驅(qū)動(dòng)staticstructdevice_drivers3c2440ts_driver={

.name="s3c2440-ts",

.bus=&platform_bus_type,

.probe=s3c2440ts_probe,

.remove=s3c2440ts_remove,};

int__inits3c2440ts_init(void)

{

returndriver_register(&s3c2440ts_driver);

}void__exits3c2440ts_exit(void)

{

driver_unregister(&s3c2440ts_driver);

}7.5.3修改Kconfig和Makefile要使驅(qū)動(dòng)程序可以在內(nèi)核的配置界面中顯示并進(jìn)行配置和編譯,需要修改drivers/input/touchscreen/Kconfig和drivers/input/touchscreen/Makefile。1.修改drivers/input/touchscreen/Kconfig2.修改drivers/input/touchscreen/Makefile1.修改drivers/input/touchscreen/KconfigconfigTOUCHSCREEN_S3C2440

tristate"SamsungS3C2440touchscreeninputdriver"

dependsonARCH_S3C2440&&INPUT&&INPUT_TOUCHSCREEN

selectSERIO

help

SayYhereifyouhavethes3c2440touchscreen.

Ifunsure,sayN.

Tocompilethisdriverasamodule,chooseMhere:the

modulewillbecalleds3c2440_ts.configTOUCHSCREEN_S3C2440_DEBUG

boolean"SamsungS3C2440touchscreendebugmessages"

dependsonTOUCHSCREEN_S3C2440

help

Selectthisifyouwantdebugmessages2.修

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論