Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux Çý¶¯¿ª·¢âÒ¶¡½âÅ£Ö®¶þ —— Ä£¿é±à³Ì


±¾ÎÄÊǽ¨Á¢ÔÚÇ°ÃæµÄ¿ª·¢»·¾³ÒѾ­³É¹¦½¨Á¢µÄ»ù´¡Ö®Éϵġ£Èç¹ûûÓн¨Á¢ºÃ£¬Çë²ÎÕÕ¡¶ Linux Çý¶¯¿ª·¢âÒ¶¡½âÅ£Ö®Ò» —— ¿ª·¢»·¾³µÄ½¨Á¢¡·¡£
ÒѾ­ÓкܶàÎĵµ½²ÊöÄ£¿é±à³Ì£¬¸öÈ˾õµÃ¡¶ The Linux kernel module programming guide ¡·ÊÇ×îÏ꾡µÄ¡£±¾ÎIJ»ÔÙÁ¢×ãÓÚ´ÓÀíÂÛÉÏÈ¥²ûÊöÄ£¿é±à³ÌµÄÏà¹ØÖªÊ¶£¬¶ø×ÅÖØ´Óʵ¼ùµÄ»ù´¡ÉÏÈ¥ÕÆÎÕÄ£¿é±à³Ì£¬ÁìÎòÄ£¿é±à³ÌµÄʵÖÊ¡£µ±È»£¬¾ß±¸×ã¹»µÄÀíÂÛ֪ʶ²ÅÄÜ´Óʵ¼ù³ö·¢£¬ËùÒÔ£¬±¾Îĵµ¾¡Á¿ÅäºÏ¡¶ Linux Device Driver ¡·µÚÈý°æµÄµÚ¶þÕ£¬ÒÔ¼°½²ÊöÄ£¿é±à³Ì×îÍêÉÆµÄÎĵµ¡¶ The Linux kernel module programming guide ¡·¡£ÏÂÃæ£¬ÎÒÃÇ´Óʵ¼ù¿ªÊ¼³ö·¢°É¡£
1. ÈËÖ®³õ£¨ hello world £©
/*
* hello.c - The first kernel module programming
*/
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_ALERT */
#include <linux/init.h>
MODULE_LICENCE( “ Dual BSD/GPL ” );
static int hello_init(void)
{
printk(KERN_INFO "Hello world\n");
/*
* A non 0 return means init_module failed; module can't be loaded.
*/
return 0;
}
static void hello_exit(void)
{
printk(KERN_INFO "Goodbye world\n");
}
module_init(hello_init);
 
module_exit(hello_exit);
MODULE_AUTHOR(“dreamice, jyjiang2005@gmail.com ”);
MODULE_DESCRIPTION(“The first module program”);
MODULE_VERSION(“V1.0”);
MODULE_ALIAS(“Chinese: ren zhi chu”);
Makefile:
obj-m := hello.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
$(RM) *.o *.ko *.mod.c Module.symvers
ÏÖÔÚ£¬ÎÒÃÇÒ»²½Ò»²½À´½âÎöÕâ¸ö×î¼òµ¥µÄhello world Ä£¿é³ÌÐò¡£
1£® /linux/module.h Õâ¸öÊDZØÐëµÄ¡£Õâ¸öÍ·Îļþ°üº¬Á˶ÔÄ£¿é½á¹¹µÄ¶¨ÒåÒÔ¼°Ïà¹ØÐÅÏ¢¡£
2£® module_init ºÍ module_exit ÕâÁ½¸öº¯ÊýÊDZØÐëµÄ¡£ module_init ¾ÍºÃ±ÈÓ¦ÓóÌÐòµÄ main º¯Êý£¬Ã»ÓÐ main º¯Êý£¬Ó¦ÓóÌÐò½«²»ÖªµÀ´ÓÄÄÀ↑ʼִÐС£
3£®¹ØÓÚ printk £¬ÔÚ ldd3 µÄµÚËÄÕÂÓÐÏêϸµÄ˵Ã÷£¬Õâ¸ö¿ÉÒÔ˵ÊÇÄں˵÷ÊÔµÄÒ»¸ö»ù±¾ÊֶΡ£
4£® MODULE_LICENCE £¬ MODULE_AUTHOR £¬ MODULE_DESCR


Ïà¹ØÎĵµ£º

linuxÉèÖû·¾³±äÁ¿

1¡¢ÒýÑÔ
    ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓ ......

LinuxÖжϴ¦ÀíÖ®Ò»(¹²ÏíÖжϴ¦Àí³õ̽)

      ÔÚ¿´LKD(µÚ¶þ°æ)µÚÁùÕÂ(ÖжϺÍÖжϴ¦Àí³ÌÐò)µÄʱºò£¬¸Õ¿ªÊ¼½Ó´¥µ½ÖжÏÏߺź͹²ÏíÖжÏÏßµÄʱºò°ëÌìã¶ÊÇûÓÐÏëÃ÷°×£¬Ô­À´Àí½âµÄÖжϺÍÖжϺÍÖжϴ¦Àí³ÌÐò¾ÍÊÇͨ¹ýÖжÏÏߺÅÀ´½øÐйØÁª£¬Ó²¼þ·¢ÉúÖжϣ¬È»ºóͨ¹ýÖжÏÏߺŲéÕÒ¶ÔÓ¦µÄÖжϴ¦Àí³ÌÐò£¬×îºóÖжϴ¦Àí³ÌÐò·µ»Ø£¬´Ë´ÎÖжÏÔò´¦ÀíÍê±Ï£¬Ã»Ïë ......

Linux @ VMWare ÏÂÐÞ¸ÄMACµØÖ·µÄ·½·¨£¨Ç××Ôʵ¼ù£©

½ñÌ쿽±´ÁËÐéÄâ»úÔÚÁíÍâһ̨µçÄÔÉÏʹÓ㬷¢ÏÖMACµØÖ·³åÍ»£¬ÓÚÊÇÈ¥ÍøÉÏÕÒÐ޸ķ½·¨¡£¿É°´ÕÕËù˵µÄ£¬ÎÒ²¢Ã»ÓкÜ˳ÀûÐ޸ijɹ¦¡£
ÏÂÃæÎÒ½«¹ý³Ìд³öÀ´£¬ÀïÃæÓÐЩµØ·½ÐèҪעÒâһϡ£
ÏÂÃæÊÇÎÒ´ÓÍøÉÏËÑË÷µ½´ó²¿·ÖµÄ×ö·¨ÈçÏ£¬ºìÉ«²¿·ÖÊÇÎÒ×¢Ê͵ģ¬ÐèҪעÒâµÄµØ·½£º
VMwareÐéÄâ»úÖÐÐÞ¸ÄLinux MACµØÖ·µÄ·½·¨£º
1¡¢ÐÞ¸ÄÐéÄâ»úµÄ*.v ......

LinuxÉ豸Çý¶¯Ö®I2C¼Ü¹¹·ÖÎö

Ò»:ǰÑÔ
I2cÊÇphilipsÌá³öµÄÍâÉè×ÜÏß.I2CÖ»ÓÐÁ½ÌõÏß,Ò»Ìõ´®ÐÐÊý¾ÝÏß:SDA,Ò»ÌõÊÇʱÖÓÏßSCL.ÕýÒòΪÕâÑù,Ëü·½±ãÁ˹¤³ÌÈËÔ±
µÄ²¼Ïß.ÁíÍâ,I2CÊÇÒ»ÖÖ¶àÖ÷»ú¿ØÖÆ×ÜÏß.ËüºÍUSB×ÜÏß²»Í¬,USBÊÇ»ùÓÚmaster-slave»úÖÆ,ÈκÎÉ豸µÄͨÐűØÐëÓÉÖ÷»ú·¢Æð²Å¿ÉÒÔ.¶ø
I2C ÊÇ»ùÓÚmulti master»úÖÆ.һͬ×ÜÏßÉÏ¿ÉÔÊÐí¶à¸ömaster.¹ØÓÚI2CЭÒéµÄÖª ......

matlab for Linux °²×°

×÷Õߣºlch
 
matlab
for
  

Linux
°²×°
(
°²×°·½·¨ÎĵµÊÇ´ÓÍøÉϲé×ÊÁÏ+
ʵ¼ùµÃµ½µÄ )
Ò».
°²×°
1.
Ê×ÏÈÐèÒª½¨Á¢°²×°Ä¿Â¼
[wzh@localhost ~]$ su
[root@localhost ~]$ mkdir /usr/matlab
 
2.
È»ºó¼ÓÔØ¹âÅÌÓ³Ïñ
[root@localhost wzh]# mount -o loop -t iso9660
/mnt/hda7 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ