关于LCD自动关闭问题的解决方案(暂时)
来源:互联网 发布:linux为什么开源 编辑:程序博客网 时间:2024/04/30 12:53
CPU : ARM9 s3c2410
LCD : 规格不明(这个很无奈,但是我所知道的只有一个分辨率)
OS : Linux kernel 2.6.30.4
之前搞定了LCD的驱动程序,基本工作正常。但是测试过程中发现有这么一个问题,就是如果几分钟后LCD会自动关闭,此时敲击I2C键盘LCD无法正常点亮。开始认为问题出在“menuconfig”中的“power management”,但经多次尝试,未果。
网上查阅了很多前人的经验,终于搞清楚了原因。找到“drivers/char/vt.c”文件,在这个文件中有一个函数叫做“static int __init con_init(void)”,这个函数做了控制台初始化的工作。在这个过程中Linux设置了一个计时器,这个计时器的值每次的变化量由“blankinterval”这个变量设定。当计时器的值减至0时,“static void blank_screen_t(unsigned long dummy)”函数就会被执行,完成关闭LCD的操作。
那么显而易见,解决问题的方式有这么两种,其一是修改“blankinterval”为0,这样一来计时器的值就不会发生改变;另外也可以把“static void blank_screen_t(unsigned long dummy)”改成空函数,那么即使计时器值减为0,LCD也不会被关闭。我选用了后者。
源码修改:
drivers/char/vt.c
/*
* We defer the timer blanking to work queue so it can take the console mutex
* (console operations can still happen at irq time, but only from printk which
* has the console mutex. Not perfect yet, but better than no locking
*/
#if 1 //modified by B.Zhou
static void blank_screen_t(unsigned long dummy)
{
}
#else
static void blank_screen_t(unsigned long dummy)
{
if (unlikely(!keventd_up())) {
mod_timer(&console_timer, jiffies + blankinterval);
return;
}
blank_timer_expired = 1;
schedule_work(&console_work);
}
#endif
至此,LCD已经不会自动熄灭了,但是最理想的解决方案应该是熄灭后能够相应I2C键盘,等有时间再看看如何实现。
- 关于LCD自动关闭问题的解决方案(暂时)
- Linux LCD 10分钟自动关闭问题
- 关于自动关闭的alert() 的问题
- Linux LCD 10分钟黑屏,十分钟黑屏,LCD自动关闭,LCD黑屏 问题
- Linux LCD 10分钟黑屏,十分钟黑屏,LCD自动关闭,LCD黑屏 问题
- Linux LCD 10分钟黑屏,十分钟黑屏,LCD自动关闭,LCD黑屏 问题
- Linux LCD 10分钟黑屏,十分钟黑屏,LCD自动关闭,LCD黑屏 问题
- Linux LCD 10分钟黑屏,十分钟黑屏,LCD自动关闭,LCD黑屏 问题
- Winform,窗口的关闭问题,暂时短路了....
- 关于jquery+ajax+json+ssh框架整合,数值异步的问题(暂时解决方案--延迟加载(lazy)改为急加载)
- 关于新安装MATLAB7运行时自动关闭的问题
- 关于tomcat启动后马上又自动关闭的问题
- 关于tomcat启动后马上又自动关闭的问题
- Linux LCD 10分钟黑屏,LCD自动关闭的简单解决办法
- LINUX LCD 屏幕关闭问题
- 关于自动关闭微信浏览器问题
- 暂时关闭
- 关于LCD的烧屏问题
- 关于oracle导出导入以及关于oracle的$符号==SP2-0734: unknown command beginning "exp username..." - rest of line ignored.
- http状态码的含义
- Linux网址精选
- 《深入理解计算机系统》读书笔记一
- 100个有趣经典网站
- 关于LCD自动关闭问题的解决方案(暂时)
- Eboot无法生成nb0文件
- http 401错误解析
- 泛型的补充
- SQL2000下仅有MDF文件时的数据库恢复方法
- 简易78xx电流提升装置
- 一次遍历完成单链表的反转
- VMWare Tools 和 Shared folder(共享文件夹)
- Dojo 输入数量(int ,正整数)