µÚÒ»¸öǶÈëʽLinuxµÄÇý¶¯³ÌÐò
´ÓÕâ¸ö×ܽáÕýʽ¿ªÊ¼ÁËÎÒµÄÇý¶¯Ö®Âã¬ÐÄÇé²»ÃâÓе㼤¶¯£¬¾¡¹ÜÏÖÔÚ¶ÔÇý¶¯µÄ±àд»¹ºÜÄ£ºý£¬µ«»¹ÊÇÓмÍÄîÒâÒåµÄ……
¿ª·¢Æ½Ì¨£º
ÐéÄâ»úÏÂRedHat9£¬ÄÚºË2.4.20.8
½»²æ±àÒë±àÒëÆ÷£ºÌìǶ¹«Ë¾ÌṩµÄarm-linux-gcc 4.3.3
ÄÚºËÊ÷£º/home/linux-2.6.30.4
Ä¿±êƽ̨£º
TQ2440£¬ÄÚºËÊÇARM9
OSÄںˣºÌìǶ¹«Ë¾ÌṩµÄlinux-2.6.30.4
¹ØÓÚÌìǶµÄÈí¼þ¿ÉÒÔµ½http://bbs.embedsky.net/ÏÂÔØ
·Ï»°ÉÙ˵£¬ÎÒµÄÇý¶¯Ô´ÂëÊÇ£º
demo.h:
#ifndef _DEMO_H_
#define _DEMO_H_
#include <linux/ioctl.h>
#undef PDEBUG
#ifdef DEMO_DEBUG
#ifdef __KERNEL__
# define PDEBUG(fmt, args...) printk( KERN_DEBUG "DEMO: " fmt, ## args)
#else//usr space
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
#endif
#else
# define PDEBUG(fmt, args...)
#endif
#undef PDEBUGG
#define PDEBUGG(fmt, args...)
//É豸ºÅ
#define DEMO_MAJOR 224
#define DEMO_MINOR 0
#define COMMAND1 1
#define COMMAND2 2
//É豸½á¹¹
struct DEMO_dev
{
struct cdev cdev;
};
//º¯ÊýÉêÃ÷
ssize_t DEMO_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos);
ssize_t DEMO_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos);
loff_t DEMO_llseek(struct file *filp, loff_t off, int whence);
int DEMO_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);
#endif
demo.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/cdev.h>
#include <linux/version.h>
#include <linux/vmalloc.h>
#include <linux/ctype.h>
#include <linux/p
Ïà¹ØÎĵµ£º
4ÔÂ29ÈÕÏûÏ¢£¬ÔÚ¸Õ¸Õ½áÊøµÄ°ÍÈûÂÞÄÇ2010ÊÀ½çÒÆ¶¯´ó»áÉÏ£¬LinuxÖÇÄܲÙ×÷ϵͳ¼Ò×åÁ½¹ÉÊÆÁ¦ºÏ²¢£¬¼´Ó¢ÌضûµÄMoblinÓëŵ»ùÑǵÄMaemo£¬ºÏ²¢ºóÆôÓÃÐÂÃûMeeGo£¬²¢½»ÓÉLinux»ù½ð»á¹ÜÀí¡£
MeeGoÎÊÊÀÐÂÎÅÒ»³ö¾ÍÈçÃÍ»¢ÏÂɽ£¬Òý·¢Òµ½ç¹ã·º¹Ø×¢ºÍÈÈÒé¡£Ë˵ӢÐÛ²»Îʳö´¦£¿ÏȲ»ÂÛδÀ´ÊÇ·ñÈý·ÖÌì϶øµÃÆäÒ»£¬ÕýÊÇÒòΪÆä³öÉíÏÔ¹ó£¬MeeGo²ÅÎ ......
manÊÇmanual£¨ÊֲᣩµÄËõд
man¿ÉÒÔÔÚ²»Í¬µÄ°æ±¾ÖÐʹÓã¬Ö÷Òª·ÖΪÁ½Àà¡£Red HatºÍÐí¶àÆäËû»ùÓÚRPMµÄ°æ±¾Ê¹Óô«Í³µÄman³ÌÐò£¬¶ø»ùÓÚDebianµÄ°æ±¾Ê¹ÓÃÒ»¸öÃûΪman-dbµÄÈí¼þ°ü¡£
man£¨1£©
ÔÚÎı¾´°¿ÚÖÐä¯ÀÀÎļþµÄ·½Ê½ÔÚÆÕ±éʹÓÃHTMLºÍPDFµÄʱ´úÖÐËÆºõÓÐЩ¹ýʱÁË£¬µ«ÔÚÖÕ¶Ë´°¿ÚÖÐÔĶÁÎļþÈÔÓÐÆäÓÅÊÆ¡£¶ÔÓÚÄÇЩLinux¿ª·¢ÕßÀ´ ......
1.ʱ¼ä±íʾ
ÔÚ³ÌÐòµ±ÖÐ,ÎÒÃǾ³£ÒªÊä³öϵͳµ±Ç°µÄʱ¼ä,±ÈÈçÎÒÃÇʹÓÃdateÃüÁîµÄÊä³ö½á¹û¡£Õâ¸öʱºòÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæÁ½¸öº¯Êý
time_t time(time_t *tloc); //ʱ¼ä¾«¶ÈΪÃë
char *ctime(const time_ ......
Author-------Dansen-----xzd2734@163.com
wait_queue_head_t wait_q;
Ê×ÏÈ¿´¿´
wait_queue_head_tÕâ¸öµÈ´ý¶ÓÁеĽṹ
ÔÚwait.hÖж¨ÒåÁËÕâ¸ö½á¹¹
typedef struct
__wait_queue_head wait_queue_head_t;
struct __wait_queue_head {
wq_lock_t
lock;
struct list_head task_list;
};
# define wq_ ......
¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
2010Äê3ÔÂ3ÈÕ 10:51 ά¿â¿ª·¢Íø ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬ ......