【转帖】linux和qtopia下的矩阵键盘驱动程序
出处:http://blog.163.com/xiyong8260/blog/static/66514621200944115026359/网易博客:xiyong
基于s3c2440和linux,实现了3*4的矩阵键盘驱动。
功能:延时消抖,重复按键,多键齐按(??)
更详细的说明文档:“基于S3C24440和嵌入式Linux的矩阵键盘设计”,电子技术,2008,45(5):21-23
/**********************************************************
* s3c2440-keyboard.c
*
* keyboard driver for S3C2440 based PDA
*
*
* History:2007/04/30
*
*
***********************************************************/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/miscdevice.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include <linux/spinlock.h>
#include <asm/irq.h>
#include <asm/arch/irq.h>
#include <asm/arch/irqs.h>
#include <asm/arch/clocks.h>
#include <asm/hardware.h>
#include <asm/arch/S3C2440.h>
#define DEVICE_NAME "s3c2440-kb" //键盘设备名
static int kbMajor = 0; //默认的主设备号
#define MAX_KB_BUF 10 //循环队列的尺寸
typedef struct {
unsigned int keyStatus;
int irq;
// int timeCount;
u_short buf[MAX_KB_BUF]; /* 循环队列*/
unsigned int head, tail; /* 循环队列的读写指针*/
spinlock_t lock; /*锁*/
} KB_DEV;
static KB_DEV kbdev;
#define KEY_UP 0 //按键弹起
#define KEY_DOWN 1 //按键按下
#define NO_KEY_DOWN 2 //没有键按下
#define EINT1_DOWN 0
#define EINT3_DOWN 1
#define EINT8_DOWN 2
#define NO_EINT_DOWN 3
/*循环队列操作*/
#define BUF_HEAD (kbdev.buf[kbdev.head])
#define BUF_TAIL (kbdev.buf[kbdev.tail])
#define INCBUF(x) if((++x)==MAX_KB_BUF) x=0
/*定时器设置*/
#define KB_TIMER_DELAY (HZ/50) /*HZ表示每秒产生的时钟滴答数,定时器超时为20ms*/
#define REPEAT_START_DELAY (HZ) /* 自动重复开始延时:1秒*/
#define REPEAT_DELAY (HZ/2) /*自动重复延时:0.5秒*/
static struct timer_list kb_timer;
static struct timer_list repeat_timer;
spinl
相关文档:
MySQL :: Linux 下自动备份数据库的 shell 脚本
Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。
脚本内容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME=" ......
1、下载MySQL的安装文件
安装MySQL需要下面两个文件:
MySQL-server-5.0.46.i386.rpm
MySQL-client-5.0.46.i386.rpm
2、安装MySQL
rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是
ivh
,其中i表示将安装指定的rmp软件包,V表 ......
对于鼠标驱动和前面分析过的键盘驱动都是共用input模型,所以,对于事件上报和处理的方式都没有区别,只是mouse鼠标驱动当上报完dx,dy,left,middle,right之后,需要调用input_sync(),将前面上报的仅仅填充在缓冲区中的数据,通过mousedev_notify_readers()发送给open了的挂接在mousedev->client_list链表上等待获取鼠标信息的 ......
这篇文章写于三年前,当时手中拿着Stevens的三本巨著 TCP v1/v2/v3 的摸不着头脑-因为它们太厚了。我知道我不需要那么多,那么详细。于是有了自己分析源代码的想法......
我不对文中的内容提供任何保证,但欢迎与我联系以便不断的修改它,最终给需要知道关于Linux TCP/ ......
可以用下面的命令查找到系统中哪一个文件夹有问题然后逐层查看就可以找到是哪一个文件了
命令是
首先切换到根目录
cd /
du -sh ./*
du -sh ./* | sort
然后找到最大的文件夹
逐层就可以找到是哪一个文件夹最大是否是有问题的
一般这样就可以确定目标文件是哪一个了 ......