linuxÇý¶¯Ö® ledÇý¶¯
Á·ÊÖ, µÚÒ»¸ö×Ö·ûÇý¶¯.
ÓÃÄ£¿é¼ÓÔØ·½·¨
»ªÇåÔ¶¼û<ǶÈëʽlinuxÉ豸Çý¶¯¿ª·¢Ïê½â>µÄ´úÂëÄÃÀ´¸ÄµÄ.
±àÒë¹ý³Ì·¢Ïֺܶà´íÎó.
×îºó·¢ÏÖ Õâ±¾Êé´øµÄÇý¶¯´úÂë¶¼ÊÇ»ùÓÚlinux2.4µÄ...ĿǰÎÒÓõÄlinux2.6, ´úÂ벿·ÖÐèÒª×öÐÞ¸Ä.
Îҵİå×ÓÊÇ ÓÑÉÆÖ®±ÛµÄ 2410. vmware+ubuntu nfs½»²æ±àÒë
Ê×ÏÈ
linux2.6Äں˱àÒëÀïÃæÒª´ò¿ªloadable modules, ÒÔ¼° unload µÄÑ¡ÏîҲҪѡÉÏ ·ñÔòÓò»µ½rmmodÃüÁî ºÇºÇ.
µÚ¶þ (ºÍÉÏÃæµÚÒ»ÌõÒ»Ñù,½ñºóдÇý¶¯¶¼»áÒªÓõ½Õâ¸ö)
ÒªÖÆ×÷linux ÄÚºËÊ÷(linux2.6±ØÐë)
ÔÚlinux2.6.14.1µÄ´úÂëĿ¼
make bzImage
»áÉú³ÉÒ»¸öÐÂÎļþ vmlinux
È»ºó make modules //±àÒëÄ£¿é
make modules install //°²×°Ä£¿é
½áÊøÖ®ºó»áÔÚ/lib/modulesÏÂÉú³É2.6.14.1Îļþ¼Ð, Õâ¸ö¾ÍÊÇÄÚºËÊ÷ÁË. Ö÷ÒªÓõ½µÄ¾ÍÊÇÀïÃæµÄÍ·Îļþ.
µÚÈý
ÐÞ¸ÄÊéÉÏ´øµÄ´úÂë, Ö÷ÒªÊǸĶ˿ںÅ, ÒÔ¼°²¿·Ö´úÂë»ùÓÚlinux2.6»á²»Í¬, , Çë¼ûÎÒÌṩµÄÏÂÔØ, ÀïÃæ°üÀ¨ÁË makefile, Çý¶¯Ô´´úÂë, ²âÊÔ³ÌÐòÔ´´úÂë.
×¢Òâ»áÓõ½ioremap()º¯Êý, ¾ø¶ÔµØÖ·µ½ÐéÄâµØÖ·µÄת»», È»ºóÓÃÖ¸ÕëÀ´¶ÔportBµÄ¼Ä´æÆ÷¸³Öµ
µÚËÄ
²âÊÔ..
½»²æ±àÒë, ÔÚ¿ª·¢°å´®¿ÚÖÕ¶ËÉÏ insmod ./led.ko ³öÏÖÌáʾ·û, rmmod led Ò²³öÏÖÍ˳öÏûÏ¢.
Õâ¸öʱºò×¢ÒâÁË, ÒªÌí¼ÓÉ豸½Úµã, ·ñÔò test³ÌÐòÊÇ´ò²»¿ªÉ豸µÄ.
mknod /dev/leds c 231 0 //´´½¨É豸½Úµã
È»ºóÖ´ÐÐ./test , ¿ÉÒÔ¿´µ½¿ª·¢°åÉÏ4¸öledÈ«ÁÁ, È«ºÚ, ÂÖÁ÷....˵Ã÷Õâ¸öÇý¶¯Åª³É¹¦ÁË.
ÌṩԴÂëÏÂÔØ.ºÜÐË·Ü.
¸ÐлÀϺÎ.
Ïà¹ØÎĵµ£º
Ò»Ö±ÒÔÀ´£¬¿ÉÄܺܶàÈëÃÅLinuxµÄÅóÓÑÀ´Ëµ£¬¶¼Òª¿¼ÂǵÄÎÊÌ⣬¾ÍÊǾ¿¾¹Ñ¡Ôñʲô·¢Ðа汾£¬ÔÚÕâÀ½áºÏ¸öÈ˵ÄһЩ¾Ñ飬¸ø´ó¼ÒһЩ½¨Ò飬Ê×ÏÈ£¬ËµÃ÷Ò»
Ï£¬Linux¶¼ÊÇÒ»ÑùµÄÔÀí£¬ÓúÃÒ»¸ö°æ±¾£¬Ò»Àïͨ°ÙÀïÃ÷£¬Ã»ÓÐ˵Äĸö×îºÃ£¬Äĸö²»ºÃµÄ£¬¸ù¾Ý×Ô¼ºµÄ¾ßÌåÐèÇóȥѡÔñ²ÅÊÇÖØÒªµÄ¡£
¡¡¡¡1¡¢¼ÒÓÃ×ÀÃæÏµÍ³£¬Ê×ÍÆubuntuϵÁУ¬¶ÔÓ²¼ ......
×î½üÔÚ¿´Ò»¸ö¿ªÔ´µÄ´úÂ룬һ¶Î´úÂë¿´Á˺ܾö¼Ã»Óп´¶®£¬GoogleÁËһϣ¬¾¡È»ÊÇlinuxÖÐÁ´±íµÄ±éÀú¡£
±éÀúÁ´±í£º
±éÀúÁ´±ílist_for_eachÊÇÒ»¸öºê£¬Õ¹¿ªÁ˾ÍÊÇÒ»¸öforÑ»·
#define list_for_each(pos, head) \
for (pos = (head)->next; prefetch(pos->next), pos != ( ......
ºÜ¶àLINUX³õѧÕß·Ö²»Çå³þlinuxºÍXÖ®¼ä,XºÍXfree86Ö®¼ä,XºÍKDE,GNOMEµÈÖ®¼äÊÇʲô¹ØÏµ.³£³£»ìÏý¸ÅÄî,ÎÒÏëÒԱȽÏÒ×ÓÚÀí ½âµÄ·½Ê½ËµÃ÷Ò»ÏÂX,X11,XFREE,WM,KDE,GNOMEµÈÖ®¼äµÄ¹ØÏµ.ÓÉÓÚ±¾ÈËˮƽÓÐÏÞ¿ÉÄÜ´æÔÚ´íÎó,Çë¸ßÊÖÖ¸Õý.
Ò»,linux±¾ÉíûÓÐͼÐνçÃæ,linuxÏÖÔÚµÄͼÐνçÃæµÄʵÏÖÖ»ÊÇlinuxϵÄÓ¦ÓóÌÐòʵÏÖµÄ.
ͼ ÐνçÃæ²¢²»ÊÇ ......
LinuxÐźÅÁ¿ ¹²ÏíÄÚ´æºÍÏûÏ¢¶ÓÁÐ
1. ÐźÅÁ¿
ʹÓÃÐźÅÁ¿¿ÉÒÔʵÏÖ½ø³Ì¼äͬ²½¡£Ö÷Òªº¯Êý¶¨Ò壺
#include <sys/sem.h>
int semctl(int sem_id, int sem_num, int command, …);
int semget(key_t key, int num_sems, int sem_flags);
int semop(int sem_id, struct sembuf *sem_ops, size_t num_sem_ops);
& ......