您的位置:首页 > 运维架构 > Linux

arm linux移植lcd

2016-11-06 01:56 260 查看
学了这么久的嵌入式linux,终于可以自己写一个笔记。嵌入式学习内容太多了,先写一个lcd的移植吧。
有一个2440的板子,配的lcd是三星的3.5寸lcd(320x240)。还有一个4412的板子,配的lcd是7寸lcd(1024x600)。先看2440的板子,使用2.6的内核。在编译内核的时候都是先cp
config_my2440_s35 .config,再make
menuconfig,再make。所以先看看这个config_my2440_s35,找到Frame buffer hardware drivers。



可以看到CONFIG_FB_S3C2410_S320240这个选项,意思就是编译内核的时候帧缓冲设备使用S320240这个东西。其实如果将arch/arm/configs/my2440_defconfig中的Frame buffer hardware drivers改成CONFIG_FB_S3C2410_S320240那么编译内核也可以直接make
menuconfig,不用再拷贝配置文件了。再找到drivers/video/Kconfig这个文件,找到FB_S3C2410_S320240。就是所使用的三星3.5寸液晶屏。



再继续找到arch/arm/mach-s3c2440/mach-my2440.c,还是找CONFIG_FB_S3C2410_S320240,可以看到对应lcd的宏定义。



这样就把移植中关于lcd的一些配置都找到了,如果想要换lcd,只需改对应的参数即可。然后保存配置,编译出zImage下载到板子上试试。

s3c2440的lcd驱动在内核代码中已经有了,没什么需要自己编写的部分,关于2440的lcd控制器比较复杂,还得继续看看。

对应4412的板子也是一样,4412用的是3.0的内核。比2440的部分复杂一点,原理都是一样的。







3.0的内核中samsung的lcd部分已经有了一些lcd的支持,要移植的话,需要加上自己的lcd的一些参数。板子所配的lcd是VS070CXN,7寸的lcd,在drivers/video/samsung/中加上一个s3cfb_vs070cxn.c。



还要把samsung目录下的Makefile修改一下。



先写到这里。还有关于backlight,以后再看看,应该没有lcd本身复杂。
linux学习确实是复杂,必须要心里有个大体框架,然后一个一个个构建好,才能把如此庞大的系统学会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: