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£¨£©µÄµØÖ·ºóÖÕÖ¹¡£
Ö
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
±¾ÊÀ¼ÍµÚÒ»¸öÊ®Ä꣬¼´½«¹ýÈ¥¡£»Ø¹ËÒÔÍù£¬²ÅÄÜ¿´ÇåÏÖÔÚ£¬ÎÒÓм¸¾ä»°ÒªËµ¡£
¼ÇµÃ£¬ÔÚÊ®Äê֮ǰ£¬ÈËÃÇÖ»ÄÜÍæÍæÃÀ¹úºìñµÄ Linux ×ÀÃæ£¨ÌرðÊÇ 6.2 °æ±¾£©£¬ÕûÌì sudo £¨¼´ Super User do £©£¬ÈÎÆ¾¼¤Çé·ºÀÄ¡£µ½ÁË 2001 Äê 1 Ô£¬ Linux 2.4 Õýʽ·¢²¼£¬Ê×´ÎÖ§³Ö USB ºÍÀ¶ÑÀ¼¼Êõ£¬ÒÔ¼° ext ......
4.1. Introduction to Linux Routing
The design of IP routing allows for very simple route definitions for small networks, while not hindering the flexibility of routing in complex environments. A key concept in IP routing is the ability to define what addresses are locally reachable as oppose ......
/* Offtimer.c.For auto halt. */
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#define DELAY 60/* Time of sleeping */
int main()
{
time_t now;
struct tm *p;
while(1)
{
now = time(NULL);
&n ......