内核总线之LCD,frambuffer(sb)

第一步:裁剪掉板子自带的LCD驱动程序

      裁剪一个LCD,不同与以前类似与LED,蜂鸣器之之类的驱动,可以在make menuconfig中直接注释,编译生成zImage 镜像,这样的话将会导致板子很多的功能受限,只能在源码包中/driver/video/s3c-fb0.c中注释驱动,才能把板子自带的LCD驱动干掉!

      

       注释之后make生成新的zImage镜像,在新生成的zImage下载到板子之前,启动板子,可以在/dev的目录下看到fb0设备。

      

      观察在/sys/class/graphics/目录下面页也会有一个fb文件

      

      再把新的镜像文件下载到板子,发现两个目录下的文件都不在了,在自己编写LCD驱动程序之前,需要先了解驱动程序是怎样工作的,设备文件的/dev/fb0 的文件创建过程如下:

      

  

   编写的模块代码如下:

          

  1 #include <linux/init.h>
  2 #include <linux/thread_info.h>
  3 #include <linux/module.h>
  4 #include <linux/sched.h>
  5 #include <linux/errno.h>
  6 #include <linux/kernel.h>
  7 #include <linux/module.h>
  8 #include <linux/slab.h>
  9 #include <linux/input.h>
 10 #include <linux/init.h>
 11 #include <linux/serio.h>
 12 #include <linux/delay.h>
 13 #include <linux/clk.h>
 14 #include <linux/miscdevice.h>
 15 #include <linux/io.h>
 16 #include <linux/ioport.h>
 17 #include <linux/vmalloc.h>
 18 #include <linux/dma-mapping.h>
 19 #include <linux/export.h>
 20 #include <linux/gfp.h>
 21 #include <linux/cdev.h>
 22 #include <linux/fb.h>
 23 #include <asm/dma-mapping.h>
 24 #include <asm/uaccess.h>
 25 
 26 #include <linux/gpio.h>
 27 #include <mach/gpio.h>
 28 #include <plat/gpio-cfg.h>
 29 #include <linux/completion.h>
 30 #include <linux/miscdevice.h>
 31 #include <linux/platform_device.h>
 32 #include <linux/usb.h>
 33 
 34 MODULE_LICENSE("GPL");
 35 MODULE_AUTHOR("bunfly");
 36 
 37 int s3c_probe(struct platform_device *dev);
 38 
 39 struct platform_driver s3c_fb = {
 40     .probe = s3c_probe,
 41     .driver = {
 42         .name = "exynos4-fb",
 43     },
 44 };
 45 
 46 struct fb_info info;
 47 
 48 int test_init(void)
 49 {
 50     platform_driver_register(&s3c_fb);
 51 }
 52 
 53 void test_exit(void)
 54 {
 55 }
 56 
 57 module_init(test_init);
 58 module_exit(test_exit);
 59 
 60 int s3c_probe(struct platform_device *dev)
 61 {
 62     printk("probe\n");
 63     register_framebuffer(&info);
 64     return 0;
 65 }
 66 
 67 
 68 
 69 
 70 

 

    通过这个模块,在/dev目录下面可以看到有fb0的设备:

  

      

 

posted @ 2015-06-02 18:27  慢伴拍的二叉树  阅读(402)  评论(0编辑  收藏  举报