min2440LCD驱动
今天在mini2440的开发板上换了个新内核版本:2.6.34.12的版本,把根文件系统和QT等应用程序都烧到板上后,发现屏幕都不亮,就想是不是驱动没加上,所以在网上搜了下,看到有碰这方面的文章,所以现在把文章转到这里来,方便以后浏览。
转自:http://hi.baidu.com/tekuba/item/e41788a9aa822a99151073e7
mini2440 LCD显示驱动
LCD 驱动中最关键的就是时钟频率(Clock frequency)的设置,时钟频率设置不对,LCD的显示就会闪,或者根本没有显示。关于这个时钟频率的推倒有点复杂,下面只是就显示驱动的设置过程做一个简要的介绍,还没有涉及代码等面。
在内核中添加各种LCD 类型的支持
打开 arch/arm/mach-s3c2440/mach-mini2440.c,先屏蔽之前的LCD 设备平台代码(蓝色部分),再把友善之臂已经移植好的代码加入(红色部分),如下:
/* LCD driver info */
/*这是以前LCD驱动的代码,移植的时候不用这个,将他屏蔽掉
static struct s3c2410fb_display mini2440_lcd_cfg __initdata = {
.lcdcon5= S3C2410_LCDCON5_FRM565 |
S3C2410_LCDCON5_INVVLINE |
S3C2410_LCDCON5_INVVFRAME |
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_HWSWP,
.type= S3C2410_LCDCON1_TFT,
.width= 240,
.height= 320,
.pixclock= 166667,
.xres= 240,
.yres= 320,
.bpp= 16,
.left_margin= 20,
.right_margin= 8,
.hsync_len= 4,
.upper_margin= 8,
.lower_margin= 7,
.vsync_len= 4,
};
static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
.displays= &mini2440_lcd_cfg,
.num_displays= 1,
.default_display = 0,
#if 0
.gpccon= 0xaa940659,
.gpccon_mask= 0xffffffff,
.gpcup= 0x0000ffff,
.gpcup_mask= 0xffffffff,
.gpdcon= 0xaa84aaa0,
.gpdcon_mask= 0xffffffff,
.gpdup= 0x0000faff,
.gpdup_mask= 0xffffffff,
#endif
.lpcsel= ((0xCE6) & ~7) | 1<<4,
};*/
/新增的LCD驱动/
/* LCD driver info */
//;NEC 3.5”LCD 的配置和参数设置
#if defined(CONFIG_FB_S3C2410_N240320)
#define LCD_WIDTH 240
#define LCD_HEIGHT 320
#define LCD_PIXCLOCK 100000
#define LCD_RIGHT_MARGIN 36
#define LCD_LEFT_MARGIN 19
#define LCD_HSYNC_LEN 5
#define LCD_UPPER_MARGIN 1
#define LCD_LOWER_MARGIN 5
#define LCD_VSYNC_LEN 1
//;夏普8”LCD 的配置和参数设置
#elif defined(CONFIG_FB_S3C2410_TFT640480)
#define LCD_WIDTH 640
#define LCD_HEIGHT 480
#define LCD_PIXCLOCK 80000
#define LCD_RIGHT_MARGIN 67
#define LCD_LEFT_MARGIN 40
#define LCD_HSYNC_LEN 31
#define LCD_UPPER_MARGIN 25
#define LCD_LOWER_MARGIN 5
#define LCD_VSYNC_LEN 1
//;统宝3.5”LCD 的配置和参数设置
#elif defined(CONFIG_FB_S3C2410_T240320)
#define LCD_WIDTH 240
#define LCD_HEIGHT 320
#define LCD_PIXCLOCK 146250//170000
#define LCD_RIGHT_MARGIN 25
#define LCD_LEFT_MARGIN 0
#define LCD_HSYNC_LEN 4
#define LCD_UPPER_MARGIN 1
#define LCD_LOWER_MARGIN 4
#define LCD_VSYNC_LEN 1
//;群创7”LCD 的配置和参数设置
#elif defined(CONFIG_FB_S3C2410_TFT800480)
#define LCD_WIDTH 800
#define LCD_HEIGHT 480
#define LCD_PIXCLOCK 11463//40000
#define LCD_RIGHT_MARGIN 67
#define LCD_LEFT_MARGIN 40
#define LCD_HSYNC_LEN 31
#define LCD_UPPER_MARGIN 25
#define LCD_LOWER_MARGIN 5
#define LCD_VSYNC_LEN 1
//;LCD2VGA(分辨率为1024x768)模块的配置和参数设置
#elif defined(CONFIG_FB_S3C2410_VGA1024768)
#define LCD_WIDTH 1024
#define LCD_HEIGHT 768
#define LCD_PIXCLOCK 80000
#define LCD_RIGHT_MARGIN 15
#define LCD_LEFT_MARGIN 199
#define LCD_HSYNC_LEN 15
#define LCD_UPPER_MARGIN 1
#define LCD_LOWER_MARGIN 1
#define LCD_VSYNC_LEN 1
#define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_HWSWP)
#endif
然后打开drivers/video/Kconfig,在大概1935 行加入以下配置信息:
config FB_S3C2410_DEBUG
bool "S3C2410 lcd debug messages"
depends on FB_S3C2410
help
Turn on debugging messages. Note that you can set/unset at run time
through sysfs
choice
prompt "LCD select"
depends on FB_S3C2410
help
S3C24x0 LCD size select
config FB_S3C2410_T240320
boolean "3.5 inch 240X320 Toppoly LCD"
depends on FB_S3C2410
help
3.5 inch 240X320 Toppoly LCD
config FB_S3C2410_N240320
boolean "3.5 inch 240X320 NEC LCD"
depends on FB_S3C2410
help
3.5 inch 240x320 NEC LCD
config FB_S3C2410_TFT640480
boolean "8 inch 640X480 L80 LCD"
depends on FB_S3C2410
help
8 inch 640X480 LCD
config FB_S3C2410_TFT800480
boolean "7 inch 800x480 TFT LCD"
depends on FB_S3C2410
help
7 inch 800x480 TFT LCD
config FB_S3C2410_VGA1024768
boolean "VGA 1024x768"
depends on FB_S3C2410
help
VGA 1024x768
endchoice
这样,我们就完成了LCD 驱动的移植
执行make menuconfig依次展开
Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices --->
LCD select (3.5 inch 240X320 Toppoly LCD) --->
然后根据自己板中LCD的实际情况
我的板子是选择第二个
make zImage之后,下载到板子上的时候,就可以看见启动的画面了。这个启动画面其实对应的就是
linux-2.6.32.2/drivers/video/logo/linux_logo_clut224.ppm
该文件是一个特殊格式的图像文件,有很多方法可以把普通的图片转换为 logo 文件,最常用的就是netpbm 工具组。使用这个工具可以生成自己的logo图像。
min2440LCD驱动相关推荐
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...
- 0、Spring 注解驱动开发
0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...
- 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)
1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...
- Linux驱动框架之framebuffer驱动框架
1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...
- [Ubuntu] 安装/卸载 声卡驱动
卸载 sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils 安装 sudo apt-get install linux-s ...
- pci串口驱动安装失败_TSC TTP-243E Pluse装LTP并口驱动无法安装
一.前言描述 接到客户报修说,电脑无法开机,即到哥上门维修立即安排人员到现场查看原因,到现场后,查看的确是电脑系统问题,重新安装系统,安装完成系统后,发现打印机无法使用.这个打印机型号是TSC TTP ...
- linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...
点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...
- i7 7700hq安装Linux,黑苹果安装火影金刚4K VULCAN JinGang GTX i7-7700HQ 独显驱动 Hackintosh...
严格来说,这不是一台笔记本,更像是一台移动一体机.火影金刚4K,独显GTX 1060,核显HD 630,在BIOS里是可以屏蔽核显的.所以这一次安装黑苹果时,直接当是一台IMAC来安装,连机型都是选择 ...
- java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc
[实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...
最新文章
- jenkins 添加 证书凭证Credentials
- pthread_cond_singal condition
- 拿到腾讯字节快手offer后,他的LeetCode刷题经验在GitHub上收获1.3k星
- IE6中PNG图片背景无法透明显示的最佳解决方案
- BeijingPeople
- JAVA调用java执行,什么结果也没有
- python制作二维码_教你使用Python制作酷炫二维码
- 【物体检测】基于matlab GUI形态学物体检测【含Matlab源码 945期】
- linux查看系统版本_谈一谈在Linux中使用df命令查看文件系统
- 微信小程序开发--获取用户手机号码
- DOS命令大全(存档自用)
- 小程序tabBar右上角添加角标
- 苹果手机怎么设置流量限制
- 红帽linux挂载光盘_redhat挂载光盘 命令 - 卡饭网
- 机器学习:self-paced 和 fine-tuning
- Constructing and Embedding Abstract Event Causality Networks from Text Snippets
- 简单美化 Win 10 的 CMD 命令行终端界面
- 如何解决报错500的问题
- 织梦主动提交_织梦发布文章主动推送(实时)给百度的方法
- 那些证书相关的玩意儿