针对-s5pv210,但对其他平台也使用
lcd显示logo失败,若显示成功默认的logo是一只企鹅,但是串口打印“Start display and show logo”,但是LCD屏没有显示   
[    0.833071] s3cfb s3cfb: [fb2] dma: 0x465ab000, cpu: 0xe1000000, size: 0x005dc000
[ 0.845112] FIMD src sclk =
[ 0.965701] s3cfb s3cfb: registered successfully
[ 0.965744] Start display and show logo
 
原因:LCD驱动有问题。
第一步:在arch/arm/mach-s5pv210/mach-smdkc110.c当中,约712行,将之前的LCD初始化删掉,并修改如下:
#ifdef CONFIG_FB_S3C_LTE480WV
static struct s3cfb_lcd wvga_s70 = { .width = ,
.height = ,
.p_width = ,
.p_height = ,
.bpp = ,
.freq = , .timing = {
.h_fp = ,
.h_bp = ,
.h_sw = ,
.v_fp = ,
.v_fpe = ,
.v_bp = ,
.v_bpe = ,
.v_sw = ,
},
.polarity = {
.rise_vclk = ,
.inv_hsync = ,
.inv_vsync = ,
.inv_vden = ,
},
}; static void lcd_cfg_gpio(struct platform_device *pdev)
{
int i; for (i = ; i < ; i++) {
s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN());
s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE);
} for (i = ; i < ; i++) {
s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN());
s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE);
} for (i = ; i < ; i++) {
s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN());
s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE);
} for (i = ; i < ; i++) {
s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN());
s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE);
} /* mDNIe SEL: why we shall write 0x2 ? */
writel(0x2, S5P_MDNIE_SEL); /* drive strength to max */
writel(0xaaaaaaaa, S5PV210_GPF0_BASE + 0xc);
writel(0xaaaaaaaa, S5PV210_GPF1_BASE + 0xc);
writel(0xaaaaaaaa, S5PV210_GPF2_BASE + 0xc);
writel(0x000000aa, S5PV210_GPF3_BASE + 0xc);
} #define S5PV210_GPD_0_0_TOUT_0 (0x2)
#define S5PV210_GPD_0_1_TOUT_1 (0x2 << 4)
#define S5PV210_GPD_0_2_TOUT_2 (0x2 << 8)
#define S5PV210_GPD_0_3_TOUT_3 (0x2 << 12)
static int lcd_backlight_on(struct platform_device *pdev)
{
int err; err = gpio_request(S5PV210_GPD0(), "GPD0"); if (err) {
printk(KERN_ERR "failed to request GPD0 for "
"lcd backlight control\n");
return err;
} gpio_direction_output(S5PV210_GPD0(), ); s3c_gpio_cfgpin(S5PV210_GPD0(), S5PV210_GPD_0_3_TOUT_3); gpio_free(S5PV210_GPD0());
return ;
} static int lcd_backlight_off(struct platform_device *pdev, int onoff)
{
int err; err = gpio_request(S5PV210_GPD0(), "GPD0"); if (err) {
printk(KERN_ERR "failed to request GPD0 for "
"lcd backlight control\n");
return err;
} gpio_direction_output(S5PV210_GPD0(), );
gpio_free(S5PV210_GPD0());
return ;
} static int lcd_reset_lcd(struct platform_device *pdev)
{
int err; err = gpio_request(S5PV210_GPH0(), "GPH0");
if (err) {
printk(KERN_ERR "failed to request GPH0 for "
"lcd reset control\n");
return err;
} gpio_direction_output(S5PV210_GPH0(), );
mdelay(); gpio_set_value(S5PV210_GPH0(), );
mdelay(); gpio_set_value(S5PV210_GPH0(), );
mdelay(); gpio_free(S5PV210_GPH0()); return ;
} static struct s3c_platform_fb lte480wv_fb_data __initdata = {
.hw_ver = 0x62,
.nr_wins = ,
.default_win = CONFIG_FB_S3C_DEFAULT_WINDOW,
.swap = FB_SWAP_WORD | FB_SWAP_HWORD,
.lcd = &wvga_s70,
.cfg_gpio = lcd_cfg_gpio,
.backlight_on = lcd_backlight_on,
.backlight_onoff = lcd_backlight_off,
.reset_lcd = lcd_reset_lcd,
};
#endif
 
第二步:使用make menuconfig,去配置当前显示的windows,请配置为windows0

Device Drivers
  -->Graphics support
  --> Support for frame buffer devices
  --> () Default Window (-)
 
修改为
Device Drivers
  -->Graphics support
  --> Support for frame buffer devices
  --> () Default Window (-)

内核启动后,lcd显示logo失败的更多相关文章

  1. STM32F103 ucLinux开发之四(内核启动后的调试)

    Stm32-uclinux启动后的调试 1.  修改__pfn_to_page使得能够启动 根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后 ...

  2. Matlab7.1——启动时只显示Logo

    1. 现象 Matlab7.1在启动时只显示Matlab的Logo: 2. 解决方法 听我的吧,这个是官方办法,我也亲自试过了1结束matlab进程:2在C:\user\APPDATA\Roaming ...

  3. 通过JTAG对比内核启动后text/rodata段内容

    关键词:vmlinux.strip.dump._text.__end_rodata等等. 在日常的调试中,可能会在某些情况下踩到内核重要的数据,比如代码段或者rodata之类. 这种情况下,需要确认这 ...

  4. 自定义内核启动后的Logo

    1.使用图像GIMP工具   2.详细步骤如下:   A.将800x480的图片导入到GIMP工具.   B.选中GIMP菜单栏进行以下操作     图像         -->模式       ...

  5. qt designer启动后不显示界面问题的原因与解决办法

    Qt 5.6.1无论是在vs里双击ui文件还是直接启动designer.exe都一直无法显示界面,但任务管理器中可以看到该进程是存在的.前几天还正常的,但昨天加了一块NVIDIA的显卡(机器自带核显) ...

  6. STM32F103 ucLinux开发之三(内核启动后不正常)(完结)

    STM32F103 ucLinux内核没有完全启动 从BOOT跳转到内核后,执行一长段的汇编语言,然后来到startkernel函数,开启C语言之旅. 但是内核输出不正常,如下所示: Linux ve ...

  7. 设置vue启动项目后默认显示的页面

    通过配置路由,可以设置vue项目启动后默认显示的页面.路由的path设置为path:"/",启动项目后就会显示默认的组件页面. import Vue from 'vue' impo ...

  8. I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载

    经过前面的移植,u-boot已经有能力启动内核了,本文主要来看下如何通过之前移植的u-boot来启动内核.如果按照前面的文章完成了LTIB 的编译,那么,Linux的内核应该就会出现rpm/BUILD ...

  9. linux内核启动以及文件系统的加载过程

    Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令,就进入 Linux 内核启动阶段.普通 Linux 内核的启动过程也可以分为两个阶段.本文以项目中使用的 lin ...

随机推荐

  1. Python函数(三)-局部变量

    全局变量 全局变量在函数中能直接访问 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" name = 'John' def te ...

  2. Oracle 10g RAC全库flashback

    因业务原因,今天需要做一次全库flashback.以下是操作全过程: 1.确认主库是否能flashback到需要的时间点 在节点1上执行: SQL> alter session set nls_ ...

  3. 图解JVM和Tomcat类加载机制

    说到本篇的tomcat类加载机制,不得不说翻译学习tomcat的初衷. 之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试.后来同 ...

  4. NT AUTHORITY\IUSR登录失败解决方法

    NT AUTHORITY\IUSR登录失败解决方法 1 今天打开网站时,突然报这个错误,平时都好好的 Cannot open database "aslkm" requested ...

  5. 一个hitbernate配置文件,带几个表(注意mapping);如果连接字符串没有设置utf-8,向insert mysql 会产生乱码(utf8 或 utf-8)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuratio ...

  6. day70-oracle 12-Java调用存储过程和存储函数

    我们现在调用的是存储过程和存储函数.用CallableSatement调用存储函数和存储过程. RDBMS:关系数据库.使用标准方式调用存储过程.也就是说:在mysql中调用和在oracle中调用的写 ...

  7. 学习Javascript的书籍(转)

    学习Javascript的书籍   作者: 阮一峰 日期: 2008年1月 9日 昨天,ppip同学留言: 你的js主要是用什么材料学的?推荐用哪本教程呢? 我想了一下,发现自己还真的读过不少书.我在 ...

  8. SQL查询语句 [2]

    一.快捷查询 快捷查询方式是一种多字段查询的简化写法,在多个字段之间用'|'隔开表示OR,用'&'隔开表示 AND. 1.不同字段相同查询条件 在  Home/controller/UserC ...

  9. 关于c#数据类型,类型转换,变量,常量,转义符。。。

    先说一下数据类型...数据类型可以分为两大类:基本数据类型和引用类型. 基本数据类型按功能又分为“值类型”,“布尔型”,“字符型”. 引用类型分为“字符串”,“时间日期”.  没图没真相↓面放图. 橙 ...

  10. UTF8转unicode说明

    1.最新版iconv中的char *encTo = "UNICODE//IGNORE"; 是没有这个字符串的,它里面有UNICODELITTLE 和 UNICODEBIG 而且是没 ...