linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÖжÏÓëÒì³£5
Öжϴ¦ÀíÒÀÀµÓÚÖжÏÀàÐÍ£¬ÓÐÈýÖÖÖ÷ÒªµÄÖжÏÀàÐÍ£º
i/oÖжϣºÄ³Ð©i/É豸ÐèÒª¹Ø×¢£»ÏàÓ¦µÄÖжϴ¦Àí³ÌÐò±ØÐë²éѯÉ豸ÒÔÈ·¶¨Êʵ±µÄ²Ù×÷¹ý³Ì¡£
ʱÖÓÖжϣºÄ³ÖÖʱÖÓ£¨»òÕßÊÇÒ»¸ö±¾µØapicʱÖÓ£¬»òÕßÊÇÒ»¸öÍⲿʱÖÓ£©²úÉúÒ»¸öÖжϣ»ÕâÖÖÖжϸæËßÄÚºËÒ»¸ö¹Ì¶¨µÄʱ¼ä¼ä¸ôÒѾ¹ýÈ¥¡£ÕâЩÖжϴ󲿷ÖÊÇ×÷Ϊi/oÖжÏÀ´´¦ÀíµÄ¡£
´¦ÀíÆ÷¼äÖжϣº¶à´¦ÀíÆ÷ϵͳÖÐÒ»¸öcpu¶ÔÁíÒ»¸öcpu·¢³öµÄÒ»¸öÖжϡ£
I/OÖжϴ¦Àí
i/oÖжϴ¦Àí³ÌÐò±ØÐë×ã¹»Áé»îÒÔ¸ø¶à¸öÉ豸ͬʱÌṩ·þÎñ¡£ÈçÔÚpci×ÜÏßµÄÌåϵ½á¹¹ÖУ¬¼¸¸öÉ豸¿ÉÒÔ¹²Ïíͬһ¸öirqÏß¡£Õâ¾ÍÒâζ׎ö½öÖжÏÏòÁ¿²»ÄÜ˵Ã÷ËùÓÐÎÊÌâ¡£
Öжϴ¦Àí³ÌÐòµÄÁé»îÐÔÒÔÁ½ÖÖ²»Í¬µÄ·½Ê½ÊµÏÖ¡£
irq¹²Ïí£ºÖжϴ¦Àí³ÌÐòÖ´Ðжà¸öÖжϷþÎñÀý³Ì£¨interrupt service routine,ISR£©.ÿ¸öISRÊÇÒ»¸öÓëµ¥¶ÀÉ豸£¨¹²ÏíirqÏߣ©Ïà¹ØµÄº¯Êý¡£ÒòΪ²»¿ÉÔ¤ÏÈÖªµÀÄĸöÌØ¶¨µÄÉ豸²úÉúirq£¬Òò´Ë£¬Ã¿¸öisr¶¼±»Ö´ÐУ¬ÒÔÑéÖ¤ËüµÄÉ豸ÊÇ·ñÐèÒª¹Ø×¢£¬Èç¹ûÊÇ£¬µ±É豸²úÉúÖжÏʱ£¬¾ÍÖ´ÐÐÐèÒªÖ´ÐеÄËùÓвÙ×÷¡£
irq¶¯Ì¬·ÖÅ䣺һÌõirqÏßÔÚ¿ÉÄܵÄ×îºóʱ¿Ì²ÅÓëÒ»¸öÉ豸Çý¶¯³ÌÐòÏà¹ØÁª£»¼´Ê±¼¸¸öÓ²¼þÉ豸²¢²»¹²ÏíirqÏߣ¬Í¬Ò»¸öirqÏòÁ¿Ò²¿ÉÒÔÓÉÕ⼸¸öÉ豸ÔÚ²»Í¬Ê±¿ÌʹÓá£
linux°Ñ½ôËæÖжÏÒªÖ´ÐеIJÙ×÷·ÖΪÈýÀࣺ
½ô¼±µÄ£¨critical£©£ºÕâÑùµÄ²Ù×÷ÖîÈçpicÓ¦´ðÖжϣ¬¶Ôpic»òÉ豸¿ØÖÆÆ÷ÖØ±à³Ì£¬»òÕßÐÞ¸ÄÓÉÉ豸ºÍ´¦ÀíÆ÷ͬʱ·ÃÎʵÄÊý¾Ý½á¹¹¡£ÕâЩ¶¼Äܱ»ºÜ¿ìµØÖ´ÐУ¬¶øÖ®ËùÒÔ˵ËüÃÇÊǽô¼±µÄÊÇÒòΪËûÃDZØÐë±»¾¡¿ìµØÖ´ÐС£½ô¼±²Ù×÷ÒªÔÚÒ»¸öÖжϴ¦Àí³ÌÐòÄÚÁ¢¼´Ö´ÐУ¬¶øÇÒÊÇÔÚ½ûÖ¹¿ÉÆÁ±ÎÖжϵÄÇé¿öÏ¡£
·Ç½ô¼±µÄ£¨noncritical£©:ÕâÑùµÄ²Ù×÷È磺ÐÞ¸ÄÄÇЩֻÓд¦ÀíÆ÷²Å»á·ÃÎʵÄÊý¾Ý½á¹¹£¨Èç°´ÏÂÒ»¸ö¼üºó¶ÁɨÃèÂ룩¡£ÕâЩ²Ù×÷Ò²ÒªºÜ¿ìµØÍê³É£¬ËüÃÇÓÉÖжϴ¦Àí³ÌÐòÁ¢¼´Ö´ÐУ¬µ«±ØÐëÊÇÔÚ¿ªÖжϵÄÇé¿öÏ¡£
·Ç½ô¼±¿ÉÑӳٵģ¨noncritical deferrable£©ÕâÑùµÄ²Ù×÷ÖîÈ磺°Ñ»º³åÇøµÄÄÚÈÝ¿½±´µ½Ä³¸ö½ø³ÌµÄµØÖ·¿Õ¼ä£¨Èç°Ñ¼üÅÌÐлº³åÇøµÄÄÚÈÝ·¢Ë͵½ÖÕ¶Ë´¦Àí³ÌÐò½ø³Ì£©¡£ÕâЩ²Ù×÷¶¼¿ÉÄܱ»Ñӳٽϳ¤µÄʱ¼ä¼ä¸ô¶ø²»Ó°ÏìÄں˲Ù×÷£¬ÓÐÐËȤµÄ½ø³Ì½«»áµÈ´ýÊý¾Ý¡£·Ç½ô¼±¿ÉÑӳٵIJÙ×÷ÓɶÀÁ¢µÄº¯ÊýÀ´Ö´ÐС£
²»¹ÜÒýÆðÖжϵĵç·ÖÖÀàÈçºÎ£¬ËùÓеÄi/oÖжϴ¦Àí³ÌÐò¶¼Ö´ÐÐËĸöÏàͬµÄ»ù±¾²Ù×÷£º
1.ÔÚÄÚºË̬¶ÑÕ»Öб£´æirqµÄÊýÖµºÍ¼Ä´æÆ÷µÄÄÚÈÝ¡£
2.ΪÕýÔÚ¸øirqÏß·þÎñµÄpic·¢ËÍÒ»¸öÓ¦´ð£¬Õ⽫ÔÊÐípic½øÒ»²½·¢³öÖжϡ£
3.Ö´Ðй²ÏíÕâ¸öirqµÄËùÓÐÉ豸µÄÖжϷþÎñÀý³Ì£¨isr£©.
4.Ìøµ½ret_from_intr£¨£©µÄµØÖ·ºóÖÕÖ¹¡£
Ö
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
±¾ÊÀ¼ÍµÚÒ»¸öÊ®Ä꣬¼´½«¹ýÈ¥¡£»Ø¹ËÒÔÍù£¬²ÅÄÜ¿´ÇåÏÖÔÚ£¬ÎÒÓм¸¾ä»°ÒªËµ¡£
¼ÇµÃ£¬ÔÚÊ®Äê֮ǰ£¬ÈËÃÇÖ»ÄÜÍæÍæÃÀ¹úºìñµÄ Linux ×ÀÃæ£¨ÌرðÊÇ 6.2 °æ±¾£©£¬ÕûÌì sudo £¨¼´ Super User do £©£¬ÈÎÆ¾¼¤Çé·ºÀÄ¡£µ½ÁË 2001 Äê 1 Ô£¬ Linux 2.4 Õýʽ·¢²¼£¬Ê×´ÎÖ§³Ö USB ºÍÀ¶ÑÀ¼¼Êõ£¬ÒÔ¼° ext ......
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define err(msg) perror(msg)
static void mkdirs(const char *dir)
{
char tmp[1024];
char *p;
&nbs ......