sizeofÃæÊÔÌâÑ¡ Linux C±à³Ìʵս
½á¹¹ÌåºÍ¹²ÓÃÌåµÄÄÚ´æ·ÖÅäÊÇCÓïÑÔµÄÒ»¸öÄѵ㣬ҲÊÇÃæÊÔÌâÖеÄÈȵ㡣
ʾÀý1£º
Union data1
{
double d;
int i;
char c1;
char c2[9];
};
sizeof(union data1)µÄֵΪ16.ÔÚ±àÒëÆ÷ĬÈÏÉèÖõÄÇé¿öÏ£¬¸Ã¹²ÓÃÌå×î´ó»ù±¾ÀàÐÍΪdouble,ËüÕ¼8×Ö½Ú£¬ËùÒԴ˹²ÓÃÌåÒÔ8À´¶ÔÆë¡£×Ö·ûÊý×éc2Õ¼9¸ö×Ö½Ú£¬ÄÇôÕû¸ö¹²ÓÃÌåÓ¦¸ÃÕ¼9¸ö×Ö½Ú£¬µ«°´ÕÕ¶ÔÆëÔÔò£¬Êµ¼Ê·ÖÅ䏸ËüµÄÄÚ´æÎª16×Ö½Ú¡£
Èç¹ûÊÇ£º
struct data1
{
double d;
int i;
char c1;
char c2[9];
};
sizeof(struct data1)µÄֵΪ24£¬Ê×ÏȰ´ÕÕ´æ´¢´óС£¬¸Ã½á¹¹ÌåËùÕ¼´æ´¢¿Õ¼äΪ£º8+4+1+9=22×Ö½Ú£¬Õâ¸ö½á¹¹ÌåÒ²ÊÇÒÔ8¶ÔÆë£¬Òò´Ëʵ¼Ê·ÖÅäµÄÊÇ24×Ö½Ú¡£
ʾÀý2£º
Union data2
{
int i;
char c1;
char c2[9];
};
sizeof(union data2)µÄֵΪ12£¬¸Ã¹²ÓÃÌåÕ¼ÄÚ´æ¿Õ¼ä×î´óµÄ»ù±¾Êý¾ÝÀàÐÍΪint,Æä³¤¶ÈΪ4£¬ËùÒԸù²ÓÃÌåÒÔ4À´¶ÔÆë¡£¸Ã¹²ÓÃÌåµÄ³¤¶ÈÈ¡¾öÓÚ×Ö·ûc2£¬Æä³¤¶ÈΪ9£¬9²»ÊÇ4µÄ±¶Êý£¬Òª½øÐÐ¶ÔÆë£¬Òò´Ëʵ¼Ê·ÖÅäµÄ´æ´¢¿Õ¼äΪ12.
struct data2
{
int i;
char c1;
char c2[9];
};
sizeof(struct data2)µÄֵΪ16£¬ÓëÉÏÃæ¹²ÓÃÌåÒ»Ñù£¬¸Ã½á¹¹ÌåÒÔ4¶ÔÆë¡£°´ÕÕ´æ´¢´óС£¬¸Ã½á¹¹ÌåËùÕ¼´æ´¢¿Õ¼äΪ£º4+1+9=14£¬14²»ÊÇ4µÄ±¶Êý£¬½øÐÐ¶ÔÆë£¬¶ÔÆëºóµÄֵΪ16.
ʾÀý3£º
Union data3
{
char c1;
char c2[3];
};
sizeof(union data3)µÄֵΪ3£¬¸Ã¹
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍ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Öд´½¨×Ó½ø³ÌµÄÒ»¸öºÜºÃµÄ·½·¨ÊǺ¯Êýµ÷ÓÃfork,µ«ÊǺܶà³õѧÕß¶ÔforkµÄÀí½âÉÏ¿ÉÄÜÓеãÀ§ÄÑ¡£ÏÂÃæ¾Ù¸öÀý×ÓÀ´¿´¿´forkµÄÓ÷¨°É¡£
Æäʵ£¬´ó¼ÒÓÃforkµÄʱºò¼ÇסforkÊÇ“·Ö²æ”µÄÒâ˼¾ÍºÜºÃÀí½âÁË¡£
  ......
Äں˱àÒëÍê³Éºó»áÉú³ÉzImageÄں˾µÏñÎļþ¡£¹ØÓÚbootloader¼ÓÔØzImageµ½Äںˣ¬²¢ÇÒÌø×ªµ½zImage¿ªÊ¼µØÖ·ÔËÐÐzImageµÄ¹ý³Ì£¬ÏàÐÅ´ó¼Ò¶¼ºÜÈÝÒ×Àí½â¡£µ«¶ÔÓÚzImageÊÇÈçºÎ½âѹµÄ¹ý³Ì£¬¾Í²»ÊÇÄÇôºÃÀí½âÁË¡£±¾ÎĽ«½áºÏ²¿·Ö¹Ø¼ü´úÂ룬½²½âzImageµÄ½âѹ¹ý³Ì¡£
¡¡¡¡ÏÈ¿´¿´zImageµÄ×é³É°É¡£ÔÚÄں˱àÒëÍê³Éºó»áÔÚarch/arm/boot/ÏÂÉú ......
PCIÊÇÒ»Öֹ㷺²ÉÓõÄ×ÜÏß±ê×¼£¬ËüÌṩÁËÐí¶àÓÅÓÚÆäËü×ÜÏß±ê×¼£¨ÈçEISA£©µÄÐÂÌØÐÔ£¬Ä¿Ç°ÒѾ³ÉΪ¼ÆËã»úϵͳÖÐÓ¦ÓÃ×îΪ¹ã·º£¬²¢ÇÒ×îΪͨÓõÄ×ÜÏß±ê×¼¡£LinuxµÄÄÚºËÄܽϺõØÖ§³ÖPCI×ÜÏߣ¬±¾ÎÄÒÔIntel 386Ìåϵ½á¹¹ÎªÖ÷£¬Ì½ÌÖÁËÔÚLinuxÏ¿ª·¢PCIÉ豸Çý¶¯³ÌÐòµÄ»ù±¾¿ò¼Ü¡£
Ò»¡¢PCI×ÜÏßϵͳÌåϵ½á¹¹
PCIÊÇÍâΧ ......
£¨1£©zImage×Ô½âѹ
±¾ÎÄÒÔÁ÷ÐеÄSamsung¹«Ë¾µÄS3C2410£¬mini2440ƽ̨ºÍlinux-2.6.29ΪÀý£¬½éÉÜÈçºÎÔÚZIXǶÈëʽ¿ª·¢»·¾³ÏÂ̽Ë÷linuxÄÚºËÆô¶¯¹ý³Ì¡£
LinuxÄÚºËÆô¶¯Ò»°ãÓÉÍⲿµÄbootloaderÒýµ¼£¬Ò²¿ÉÒÔÔÚÄÚºËÍ·²¿Ç¶ÈëÒ»¸öloader£¬Êµ¼ÊµÄÓ¦ÓÃÖÐÕâÁ½ÖÖ·½Ê½¶¼»á¾³£Óöµ½¡£ËùÒÔÒªÁ˽âÄÚºËÆô¶¯×ʼµÄ¹ý³Ì£¬±ØÐë¶ÔbootloaderÈçºÎ ......