µÚÒ»¸öǶÈëʽ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
Ïà¹ØÎĵµ£º
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz ÄÚºË
/boot/initrd ºËÐĽâ壓縮ËùÐè RAM Disk
/dev ϵͳÖܱßÉ豸
/etc ......
Tab Tab Tab
±ÈÈ磺ÓÐÒ»¸öÎļþµÄÃû×Ö½Ð×÷alsa-divers-0.39.tar.gz£¬Õ⻹²»ËãºÜ³¤°É¡£ µ±ÄãÐèҪƵ·±µÄÊäÈëÕâ¸öÎļþµÄÃû×ÖµÄʱºò£¬ÄѵÀÄã²»¾õµÃÕâÊÇÒ»ÖÖÎÞÒÔÃû×´µÄÍ´¿àÂð£¿ÄÇôÎÒÏë¶ÔÄã˵һ¾ä£º²»ÒªÐÄ·³£¬Äã¿ÉÒÔÊÔÒ»ÊÔÔÚÊäÈëalsaºó°´Ò»Ï£ÃapsLock¼üÉÏ·½µÄ£Ôab¼ü¡£ÔõôÑùʹÄãÑÛǰһÁÁ°É£¬linuxÒÑ¾Ææ¼£°ãµÄ×Ô¶¯²¹È«ÁËÎļþÃû¡ ......
1¡¢Èí¼þ°²×°
Ð¶ÔØ£¬·Ö¼¸ÖÖÇé¿ö£º
A£º
RPM°ü£¬ÕâÖÖÈí¼þ°ü¾ÍÏñwindowsµÄEXE°²×°
ÎļþÒ»Ñù£¬¸÷ÖÖÎļþÒѾ±àÒëºÃ£¬²¢´òÁ˰ü£¬ÄĸöÎļþ¸Ã·Åµ½ÄĸöÎļþ¼Ð£¬¶¼Ö¸¶¨ºÃÁË£¬°²×°
·Ç³£·½±ã£¬ÔÚͼÐνçÃæÀïÄãÖ»ÐèҪ˫»÷¾ÍÄÜ×Ô¶¯°²×°
¡£
==ÈçºÎÐ¶ÔØ:
1¡¢´ò¿ªÒ»¸öSHELLÖÕ¶Ë
2¡¢ÒòΪLinux
ϵÄÈí¼þÃû¶¼°üÀ¨°æ±¾ºÅ£¬ËùÒÔÐ¶ÔØÇ°×îºÃ ......
´Ówrite()µ÷Ó÷µ»ØÊ±£¬ÄÚºËÒѾ½«»º³åÇøËùÌṩµÄÊý¾Ýµ½Äں˵Ļº³åÇø£¬µ«ÊÇÎÞ·¨±£Ö¤Êý¾ÝÒѾд³öµ½ÆäÔ¤¶¨µÄÄ¿µÄµØ¡£µÄÈ·£¬Ð´Èëµ÷Ó÷µ»ØµÄËÙ¶ÈʵÔÚÌ«¿ìÁË£¬¿ÉÄÜûÓÐʱ¼äÍê³É¸ÃÏîÄ¿µÄ¹¤×÷¡£´¦ÀíÆ÷ºÍÓ²ÅÌÖ®¼äµÄÐÔÄܲîÒìʹµÃ´ËÀàÁîÈËÍ·Í´µÄÐÐΪÏÔ¶øÒ×¼û¡£
ÊÂʵÉÏ£¬Èç¹ûÓû§¿Õ¼äÓ¦ÓóÌÐò·¢³öwrite()ϵͳµ÷Óã¬LinuxÄں˻áÏȽøÐÐÈ ......
1¡¢Ìí¼Ó´®¿Ú: ÔÚLinuxÆô¶¯Ö®Ç°£¬ÐéÄâ»ú--¡·ÉèÖÃ--¡·Ìí¼Ó--¡·´®¿Ú--¡·±£´æ--¡·Æô¶¯Linux¡£
2¡¢#minicom £¬³öÏÖÆô¶¯½çÃæ£¬CTRL-A Z ½øÈë°ïÖú½çÃæ
3¡¢¼üÈëO £¬ÅäÖô®¿Ú£¬Ñ¡ÔñµÚÈýÏî“Serial port setup”µã»÷»Ø³µ
4¡¢Í¨¹ý·Ö±ð¼üÈëA¡¢E¡¢F£¬ÅäÖ㬵ã»÷»Ø³µ£¨FÑ ......