TQ2440触摸屏驱动程序的移植(3)

3.个人建议自己先把上述源码都交叉编译成内核模块,至于怎么交叉编译成内核模块,这里就不再赘述了,在编译模块的过程中可以检查驱动程序的错误与否,不然你要是直接抠出来就放进内核源码里面,要是等下你编译内核的时候出错,这个就比较麻烦和耗时间了,好了,如果编译内核模块的这个过程中驱动程序源码没有什么问题的话,接下来你就可以放心大胆地将my_adc.c和my_ts.c放进内核源码中,并且修改相应的kconfig和Makefile文件了,具体步骤如下:

3.1 把my_adc.c放入内核源码drivers/char 这个目录下,并且修改这个目录下的kconfig和Makefile文件:

在kconfig里面把config TQ2440_ADC的代码改成下面所示的代码:

config MY_ADC
    bool "My ADC driver for TQ2440"
    depends on ARCH_S3C2440
    default y if ARCH_S3C2440
    help
      My ADC driver for TQ2440.

在Makefile里面把obj-$(CONFIG_TQ2440_ADC) += EmbedSky_adc.o 改成下面所示的代码:

obj-$(CONFIG_MY_ADC)        += my_adc.o

3.2 把my_ts.c放入内核源码drivers/input/touchscreen下,并修改这个目录下的kconfig和Makefile文件:

在kconfig里面把原来的config TOUCHSCREEN_TQ2440的代码修改成如下所示的代码:

config TOUCHSCREEN_MY2440
    tristate " MY2440 TouchScreen input driver"
    depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN && MY_ADC
    help
      Say Y here if you have the MY2440 TouchScreen.
          and depends on MY_ADC
 
      If unsure, say N.
 
      To compile this driver as a module, choose M here: the
      module will be called my_ts.

在Makefile里面把原来的obj-$(CONFIG_TOUCHSCREEN_TQ2440) += tq2440_ts.o 修改成下面所示的代码:

obj-$(CONFIG_TOUCHSCREEN_MY2440) += my_ts.o

4.至此修改linux内核源码的工作就结束了,接下来我们来配置和编译内核:

进入修改后的源码目录linux2.6.30.4下,找到config_EmbedSky_W43(我的显示屏是4.3寸的),然后输入指令:cp config_EmbedSky_W43 .config ,再然后输入指令:make menuconfig ,接着会弹出内核配置的图形界面,具体操作如下:

4.1 进入Device Drivers--> Character devices 把 My ADC driver for TQ2440 这个选项选上,如下图所示:

TQ2440触摸屏驱动程序的移植

4.2 进入 Device Drivers  --->Input device support  ---> Touchscreens  --->MY2440 TouchScreen input driver 这个选项选上,如下图所示:

TQ2440触摸屏驱动程序的移植

4.3 最后回到 Linux Kernel Configuration ,选择 Save an Alternate Configuration File ,保存你刚才所做的所有设置。

5.好了,到此内核源码的修改和内核的配置工作你都完成了,接下来你就可以编译内核了,输入指令:make 然后就开始编译内核了,等到结束后,找到zImage.bin这个文件便是我们编译好的内核镜像文件,然后把这个内核烧写进开发板,你会发现触摸屏就奇迹般地能够用了,至此TQ2440触摸屏驱动程序的移植就结束了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8bdc97f1509dac7787d0974528712815.html