s3c2440基于linux的button和led字符设备驱动
先是内核驱动程序:
#include <linux/module.h>//具体的头文件位置为/opt/FriendlyARM/mini2440/linux-2.6.29/include/linux/*.h
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include <linux/irq.h>
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <asm/uaccess.h>
#include <mach/regs-gpio.h>//具体头文件位置/opt/FriendlyARM/mini2440/linux-2.6.29/arch/arm/mach-s3c2410/include/mach/*.h
#include <mach/hardware.h>
#include <linux/platform_device.h>
#include <linux/cdev.h>
#include <linux/miscdevice.h>
#include <linux/ioctl.h>
#define DEVICE_NAME "buttons"
struct button_irq_desc {
int irq;
int pin;
int pin_setting;
int number;
char *name;
};
static struct button_irq_desc button_irqs [] = {
{IRQ_EINT8 , S3C2410_GPG0 , S3C2410_GPG0_EINT8 , 0, "KEY0"},
{IRQ_EINT11, S3C2410_GPG3 , S3C2410_GPG3_EINT11 , 1, "KEY1"},
{IRQ_EINT13, S3C2410_GPG5 , S3C2410_GPG5_EINT13 , 2, "KEY2"},
{IRQ_EINT14, S3C2410_GPG6 , S3C2410_GPG6_EINT14 , 3, "KEY3"},
{IRQ_EINT15, S3C2410_GPG7 , S3C2410_GPG7_EINT15 , 4, "KEY4"},
{IRQ_EINT19, S3C2410_GPG11, S3C2410_GPG11_EINT19, 5, "KEY5"},
};
/* 上面初始化成员里的S3C2410_GPG0_EINT0在/opt/FriendlyARM/mini2440/linux-2.6.29/arch /arm/mach-s3c2410/include/mach/regs-gpio.h中定义为
#define S3C2410_GPF0_EINT0 (0x02 << 0),即为我们前面说的“10”模式,其他的管脚类似。这个初始化函数的作用就是将如S3C2410_GPF0_EINT0的模式写入地址为如 S3C2410_GPF0的寄存器里,并将这个管脚设置成中断模式,以及添加一些其他信息。*/
static volatile char key_values [] = {'0', '0', '0', '0', '0', '0'};
//声明LED的管脚
static unsigned long led_table [] ={ S3C2410_GPB5, S3C2410_GPB6, S3C2410_GPB7, S3C2410_GPB8,};
// 声明LED管脚的配置信息,此处的 S3C2410_GPB8_OUTP与上面的S3C2410_GPF0_EINT0类似。
static unsigned int led_cfg_table [] = { S3C2410_GPB5_OUTP, S3C
相关文档:
VPS使用手记-Linux命令行基础
Written by shine
on 2009, April 21, 4:09 PM. Linux
这里我将列出使用linux
vps
过程中的常用命令,面向的对象是懂一点命令行
的朋友,如果你没有任何命令行基础,建议找本Linux的基础教程来看看。
在讲具体的命令之前,先介绍一下Linux命令行的一些常识:
一条命令一般的格式是这 ......
在现行的linux发布版本中,软件包管理工具使用最多的是rpm和dpkg,但是这两者都不能解决软件之间的依赖关系,所以又有了yum和apt,yum其实是对rpm的封装,而apt是对dkpg的封装,两者都在封装的同时,很好的解决了软件依赖问题,使用起来非常方便。下面是一些软件管理常用的命令:
更新软件列表:
......
一、概述
系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。通过int 0x80,就可使用内核资源。不过,通常应用程序都是使用具有标准接口定义的C函数库间接的使用内核的系统调用,即应用程序调用C函数库中的函数,C函数库中 ......
1 下载解压
在官方网站下载最新mesa,mesa主要有以下几部分:
MesaLib-x.y.z - Mesa库源代码,驱动和文档。
MesaDemos-x.y.z - OpenGL的演示和测试程序。绝大多数需要GLUT(Mark Kilgard的原始GLUT/freeglut/OpenGLUT)
MesaGLUT-x.y.z - Mark Kilgard的GLUT,配合mesa使用,也有DOS, OS/2, ......
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......