linuxÄÚºËϵãÁÁled(δʹÓÃÖжϰ汾)
Í·Îļþ£º
#ifndef _LED_CONFIG_H
#define _LED_CONFIG_H
#define LED_CON 0
#define LED_ON 1
#define LED_OFF 2
#endif
ÄÚºËÏÂÃæµÄÇý¶¯Ä£¿é£º
#include <linux/module.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include "../led_config.h"
#include <linux/errno.h>
#define PHYS_BASE 0x56000040
#define SIZE 12
#define setbit(data,pos,len,val) do{\
data &=~((~(~0<<len))<<pos);\
data |=val<<pos;\
}while(0)
struct led_driver{
unsigned long gpecon;
unsigned long gpedat;
unsigned long gpeup;
unsigned long virt_base;
struct cdev led_dev;
unsigned long major;
unsigned long minor;
dev_t devno;
void (*conf)(struct led_driver *);
void (*on)(struct led_driver *);
void (*off)(struct led_driver *);
};
struct led_driver *md;
void con_led(struct led_driver *led)
{
unsigned long tmp;
Ïà¹ØÎĵµ£º
linux Îļþϵͳ½á¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄĿ¼
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ......
ÓÉÓÚÕâЩÎļþ²»ÊÇÆÕͨµÄÎļþ£¬ËùÒÔÎÒÃDz»ÄÜÓÃ
ANSI C
£¨±ê×¼
C
£©µÄ
fopen
¡¢
fclose
µÈÀ´²Ù×÷Îļþ£¬¶øÓ¦¸ÃʹÓÃϵͳÎļþ
I/O
´¦Àíº¯Êý£¨
open
¡¢
read
¡¢
write
¡¢
lseek
ºÍ
close
£©À´´¦ÀíÕâЩÉ豸Îļþ¡£
ioctl
£¨£©»òÐíÊÇ
Linux
ÏÂ×îÅÓÔӵĺ¯Êý£¬Ëü¿ÉÒÔ¿ØÖƸ÷ÖÖÎļþµÄÊôÐÔ£¬ÔÚ
Linux
ÉùÒôÉ豸± ......
ʹÓÃBusyBoxÖÆ×÷linux¸ùÎļþϵͳ£¨CramFS+mdev£©
²Ù×÷ϵͳ£ºUbuntu9.04
Äں˰汾£ºlinux-2.6.24.7
¿ª·¢°å£º²©´´arm2410s
½»²æ±àÒ빤¾ß£ºarm-linux-gcc-4.1.1
BusyBox£ºbusybox-1.11.1
CramFS£ºCramFS-1.1
×¢Ò⣺ÓÉÓÚÒªÖ ......
http://www.enet.com.cn/article/2007/1224/A20071224966521.shtml
Èç¹ûÄã¶ÔSUID¡¢SGIDÈÔÓÐÃÔ»ó¿ÉÒԺúòο¼Ò»Ï£¡
¡¡¡¡Copyright by kevintz.
¡¡¡¡ÓÉÓÚÓû§ÔÚUNIXϾ³£»áÓöµ½SUID¡¢SGIDµÄ¸ÅÄ¶øÇÒSUIDºÍSGIDÉæ¼°µ½ÏµÍ³°²È«£¬ËùÒÔÓû§Ò²±È½Ï¹ØÐÄÕâ¸öÎÊÌâ¡£¹ØÓÚ
SUID¡¢SGIDµÄÎÊÌâÒ²¾³£ÓÐÈËÌáÎÊ£¬µ«»Ø´ðµÄÈËÒ»°ã´ðµÃ² ......