ǶÈëʽLinuxϵͳÖеĿìËÙÆô¶¯¼¼ÊõÑо¿
ÕªÒª
LinuxÔÚÏû·Ñµç×ÓÀà²úÆ·Öеõ½Á˹㷺ӦÓã¬ÓÉÓÚǶÈëʽÓû§¶ÔÓÚϵͳÆô¶¯ËٶȽÏΪÃô¸Ð£¬Òò´Ë¿ìËÙÆô¶¯¼¼ÊõÖð½¥³ÉΪÑо¿ºÍÓ¦ÓÃÖеÄÒ»¸öÖØµã¡£±¾ÎÄͨ¹ý¶ÔǶ
Èëʽ
LinuxµÄÆô¶¯Ê±ÐòºÍÖ÷ÒªÑÓʱÒòËØµÄ·ÖÎö£¬Õë¶ÔÐÔµØÌ½ÌÖÁËÔÚ¸÷¸öÆô¶¯½×¶Î½µµÍʱºÄµÄ¼¼Êõ£¬Öصã·ÖÎöÁËXIP¼¼ÊõºÍXIPÎļþϵͳ£¬²¢¸ø³öÁËÖ÷ÒªµÄʵÏÖ¹ý
³Ì¡£
¹Ø¼ü´Ê Linux ¿ìËÙÆô¶¯ XIP Prelink CRAMFS AXFS
¡¡¡¡Ç¶ÈëʽLinuxϵͳÖ÷ÒªÌØµãÔÚÓÚʹÓÃBootloaderÌæ´úÁË×ÀÃæÏµÍ³µÄBIOS£¬Í¬Ê±¶Ôϵͳ½øÐÐÁ˹æÄ£ÉϵIJüô£¬µ«Ó²¼þÉϵÄÁÓÊÆÍùÍùµ¼ÖÂϵͳÆô
¶¯ËٶȽÏÂý£¬¶øÇ¶Èëʽ²úƷʹÓÃÕßÓÖ¶ÔϵͳµÄ¿ª»úËٶȱȽÏÃô¸Ð£¬ÕâÑù¾Í²úÉúÁ˶ÔÓÚÌá¸ßǶÈëʽLinuxϵͳÆô¶¯ËٶȵÄÐèÇó¡£±¾ÎĶÔϵͳÆô¶¯Ê±Ö´ÐÐÄÄЩ½×¶ÎµÄ
²Ù×÷£¬ÒÔ¼°Ëõ¶ÌÕâЩ²Ù×÷ʱ¼äµÄ·½·¨½øÐÐÁË̽ÌÖ¡£
1 ǶÈëʽLinuxϵͳÆô¶¯Ê±Ðò
¡¡¡¡Ä¿Ç°£¬Ç¶ÈëʽϵͳµÄÓ²¼þƽ̨ºÍÓ¦Ó÷½ÏòÇø±ðºÜ´ó£¬µ«×ÜÌåÆô¶¯Á÷³ÌÊÇÒ»Öµġ£ÕâÀïµÄϵͳÆô¶¯ÊÇÖ¸´ÓÓû§Ö´ÐÐÉϵç/¸´Î»²Ù×÷£¬µ½ÏµÍ³¿ªÊ¼ÌṩÓû§¿É½ÓÊյķþÎñˮƽËùÐèÒªµÄ¹ý³Ì¡£µäÐ͵ÄÉϵç/¸´Î»Ê±ÐòÈç±í1ËùÁС£
±í1 ǶÈëʽLinuxϵͳÆô¶¯Ê±Ðò
2 Linux¿ìËÙÆô¶¯·½·¨
¡¡¡¡Ä¿Ç°£¬Ò»Ð©LinuxµÄ·¢Ðа汾ÒѾ¶ÔÆô¶¯ËٶȽøÐÐÁËÓÅ»¯¡£Èç¹ûÀûÓñê×¼Linux½øÐпª·¢£¬ÔòÆô¶¯ËٶȵÄÌá¸ßÖ÷ÒªÊÇͨ¹ýÄÚºËÅäÖú͸÷ÖÖ²¹¶¡°üÀ´ÊµÏֵġ£ÏÂÃæ·ÖÎö¿ìËÙÆô¶¯µÄһЩ¹Ø¼ü¼¼Êõ¡£
2.1 FirmwareºÍBootloader½×¶Î
¡¡¡¡Ä¿±ê°åÒ»µ©È·¶¨£¬FirmwareÔËÐеÄʱ¼ä¾ÍÎÞ·¨¸Ä±äÁË£¬FlashºÍRAMµÄ¶ÁдËÙ¶ÈÒ²¾ÍËæÖ®È·¶¨ÁË¡£µ«Èç¹û¸´Î»Ê±Äܹ»ÈƹýFirmwareºÍ
Bootloader£¬¼´ÔÊÐíÔËÐÐÖеÄÄں˼ÓÔØÒÔ¼°ÔËÐÐÁíÒ»¸öÄںˣ¬¿ÉÒÔËõ¶ÌÆô¶¯µÄʱ¼ä¡£µäÐ͵ÄʵÏÖÓÐKexec£¬ËüÓÐ2¸ö×é¼þ£¬¼´Óû§¿Õ¼ä×é¼þ
kexectoolsºÍÄں˲¹¶¡¡£ÁíÍâÒ»ÖÖ°ì·¨ÊÇÔÚÄÚºËÃüÁîÐÐÖмÓÈëreboot=soft²ÎÊý£¬Í¬Ñù¿ÉÒÔÌø¹ýFirmware£¬µ«ÊÇȱµãÔÚÓÚÎÞ·¨´ÓÓû§
¿Õ¼äµ÷Óá£
¡¡¡¡¶ÔÓÚÕý³£Æô¶¯£¬¿ÉÒÔÑ¡ÔñËٶȱȽϿìµÄBootloader£¬²¢¶ÔÄں˽øÐÐСÐÍ»¯´¦Àí£»»¹¿ÉÒÔʹÓøßËÙµÄÓ³Ïñ¸´ÖƼ¼Êõ£¨ÈçDMA2RAM£©£¬´Ó¶øËõ¶Ì¸´
ÖÆµÄʱ¼ä¡£ÎªÁËËõ¶Ì½âѹÏûºÄµÄʱ¼ä£¬¿ÉѰÇó±È½Ï¸ßЧµÄѹËõËã·¨¡£µ«Ò»°ãÇé¿öÏ£¬Ñ¹Ëõ±ÈÔ½¸ß£¬Ëã·¨Ô½¸´ÔÓ£¬½âѹËٶȾÍÔ½Âý£¬´Ó¶øÔì³É¸´ÖÆÊ±¼ä£¨ÓëѹËõ±È³É·´
±È£©ºÍ½âѹʱ¼ä£¨Ò»°ãÓëѹËõ±È³ÉÕý±È£©Ö®¼äµÄì¶Ü¡£
2.2 Äں˽׶Î
¡¡¡¡Äں˳õʼ»¯Ê±Òª¶ÔRealTime Clock (RTC)½øÐÐͬ²½¡£´Ë¹ý³ÌÒªÕ¼ÓÃ1
sµÄʱ¼ä£¬¿ÉÈ¥µôÒÔ½ÚԼʱ¼ä£¬µ«ÕâÑùCPU»áÓëÕýÈ·µÄʱ¼äÓÐ1
sµÄÆ«²î£¬Èç¹û¹Ø»úʱCPUʱÖÓÓ
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
Anatomy of the Linux slab allocator
Learn how Linux manages memory
M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones is an embedded software architect and the author of GNU/Linux Application Programming, AI Application Programming, and BSD Sockets Programming from a Multilanguage Persp ......
ºÜ¼òµ¥µÄÒ»¸ö³ÌÐò,subÄ£¿éÌṩÁ½¸öº¯Êýsub_integer,add_integer£¬²¢½«Æäµ¼³öµ½Äں˷ûºÅ±íÖУ¬sub_testÄ£¿é¶ÔÕâÁ½¸öº¯Êý½øÐе÷Óá£ÕâËãÊÇ×Ô¼ºÐ´µÄµÚÒ»¸öÄÚºËÄ£¿é³ÌÐò°É£¬¼ÍÄîÒ»ÏÂ.
sub.c:
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL") ......