针对-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. node install webpack -cli webpack4.xxxx

    webpack 4.xx 版本 分离了 webpack-cli ; 安装webpack4.xx 需要再安装webpack-cli;

  2. 具有避障和寻线功能的Arduino小车

    标签:  Arduino  乐高  机器人 创客对于成年人来说,多半是科技娱乐,或者是一种是一种向往科技的人生态度,总是希望自己不仅可以看到或者听到科技的资讯,还希望能够亲身制作科技玩意,从而更好地体 ...

  3. leetcode479

    public class Solution { public int LargestPalindrome(int n) { ) ; , n) - ; ; v > max / ; v--) { S ...

  4. apache server和tomcat集群配置二:垂直负载

    垂直负载就是同一个机器中的不同服务器之间的负载.跟水平负载(ip不一样的服务器之间的负载)的最大区别就是要修改tomcat的端口号,避免引起冲突. 还要注意apache中workers.propert ...

  5. android中音频播放的两种方法

    方法1.通过MediaPlayer播放,可播放本地,网络音频,适合播放单个文件 方法2.通过SoundPool,适合播放多个文件 详见:http://www.cnblogs.com/xiaoQLu/a ...

  6. Maven学习笔记2-maven命令

    help:active-profiles列出当前构建中活动的Profile(项目的,用户的,全局的). help:effective-pom显示当前构建的实际POM,包含活动的Profile. hel ...

  7. [luogu3385]dfs_spfa判负环模板

    解题关键:模板保存. 判负环不需要memset dis数组,因为已经更新过得d数组一定小于0,如果当前点可以更新d,说明d更小,有可能继续扩大负环,所以继续更新:如果比d[v]大,则不可能继续更新负环 ...

  8. 算法Sedgewick第四版-第1章基础-018一解决不能声明泛型数组的两咱方法(强转或反射)

    1. /****************************************************************************** * Compilation: ja ...

  9. protocol buffers的使用示例

    protocol buffers的使用示例 如果不了解protocol buffers,可以先参看:http://blog.csdn.net/zhu_xun/article/details/19343 ...

  10. R语言输出pdf时,中文乱码处理

    本文转载自:https://blog.csdn.net/hongweigg/article/details/47907555 1.使用基础包,使用函数pdf()输出 在使用pdf()函数时,要输出中文 ...