20.1 LinuxÄÚºËÒÆÖ²Òªµã
20.1 LinuxÄÚºËÒÆÖ²Òªµã
LinuxµÄ´úÂëÍêÈ«¿ª·ÅÒÔ¼°ÆäÁ¼ºÃµÄ½á¹¹Éè¼Æ·Ç³£ÊÊÓÚǶÈëʽϵͳ¡£ÒÆÖ²Linuxϵͳ°üÀ¨Äںˡ¢³ÌÐò¿âºÍÓ¦ÓóÌÐò£¬ÆäÖÐ×îÖ÷ÒªµÄ¾ÍÊÇÄÚºËÒÆÖ²¡£ÓÉÓÚLinuxÄں˵Ŀª·ÅÐÔ£¬³öÏÖÁËÐí¶àÕë¶ÔǶÈëʽӲ¼þϵͳµÄÄں˰汾£¬ÆäÖÐÖøÃûµÄ°üÀ¨μcLinux¡¢RT-LinuxµÈ¡£
Linux±¾Éí¶ÔÄÚ´æ¹ÜÀí£¨MMU£©ÓкܺõÄÖ§³Ö¡£Òò´Ë£¬ÔÚÒÆÖ²µÄʱºòÊ×ÏÈÒª¿¼Âǵ½Ä¿±êÓ²¼þƽ̨ÊÇ·ñÖ§³ÖMMU¡£ÒÔARMƽ̨ΪÀý£¬ARM7Äں˵ÄCPU²»Ö§³ÖMMU£¬ÎÞ·¨Ö±½Ó°ÑLinuxÄں˴úÂëÒÆÖ²µ½ARM7ºËµÄÓ²¼þƽ̨ÉÏ¡£μcLinuxÊÇרÃÅÕë¶ÔARM7ÕâÀàûÓÐMMUµÄÓ²¼þƽ̨ÉÏÉè¼ÆµÄ£¬Ëü¾«¼òÁËMMU²¿·Ö´úÂë¡£±¾ÊéµÄÄ¿±êƽ̨ÊÇS3C2440A£¬¸Ã´¦ÀíÆ÷»ùÓÚARM9ºË£¬Ö§³ÖMMU£¬¿ÉÒÔÖ±½ÓÒÆÖ²Linux 2.6°æ±¾µÄÄں˴úÂë¡£
Ò»¸öÓ²¼þƽ̨×îÖ÷ÒªµÄÊÇ´¦ÀíÆ÷£¬Òò´ËÔÚÒÆֲ֮ǰÐèÒªÁ˽âÄ¿±êƽ̨µÄ´¦ÀíÆ÷¡£ARM´¦ÀíÆ÷ÄÚ²¿²ÉÓÃ32λµÄ¾«¼òÖ¸Áî¼Ü¹¹£¨RISC£©£¬ºËÐĽṹÉè¼ÆÏà¶Ô¼òµ¥£¬ÓеͺĵçÁ¿µÄÓÅÊÆ£¬±»¹ã·ºÓ¦Óõ½¸÷ÖÖÁìÓò¡£ÏÂÃæ½éÉÜÒ»ÏÂÒÆÖ²LinuxÄں˶ÔÓ²¼þƽ̨ÐèÒª¿¼Âǵļ¸¸öÎÊÌâ¡£
1£®Ä¿±êƽ̨
Ä¿±êƽ̨°üÀ¨ÁËǶÈëʽ´¦ÀíÆ÷ºÍÖÜΧÆ÷¼þ£¬´¦ÀíÆ÷¿ÉÄÜÕûºÏÁËһЩÖÜΧÆ÷¼þ£¬ÈçÖжϿØÖÆÆ÷¡¢¶¨Ê±Æ÷¡¢×ÜÏß¿ØÖÆÆ÷µÈ¡£ÔÚÒÆֲ֮ǰÐèҪȷ¶¨±»ÒÆֲϵͳ¶ÔÍⲿÉ豸ºÍ×ÜÏßµÄÖ§³ÖÇé¿ö¡£±¾ÊéµÄARM¿ª·¢°å²ÉÓÃmini2440ƽ̨£¬ÔÚS3C2440AÍâΧÁ¬½ÓÁËÐí¶àÍâΧÉ豸£¬°üÀ¨NOR Flash´æ´¢Æ÷¡¢NAND Flash´æ´¢Æ÷¡¢ÍøÂç½Ó¿ÚоƬ¡¢USB¿ØÖÆÆ÷µÈ¡£ÔÚS3C2440A´¦ÀíÆ÷ÄÚ²¿¼¯³ÉÁËÐí¶à³£ÓõĿØÖÆÆ÷ÒÔ¼°Ç¶ÈëʽÁìÓò³£ÓõÄ×ÜÏß¿ØÖÆÆ÷¡£¶ÔÓÚÒÆÖ²LinuxÄÚºËÀ´Ëµ£¬²Ù×÷´¦ÀíÆ÷ÄÚ²¿µÄ¿ØÖÆÆ÷Òª±ÈÍⲿµÄÉ豸ÈÝÒ׵öࡣ
2£®ÄÚ´æ¹ÜÀíµ¥Ôª£¨MMU£©
Ç°ÃæÌáµ½¹ýMMU£¬¶ÔÓÚÏÖ´ú¼ÆËã»úÀ´Ëµ£¬MMU¸ºÔðÄÚ´æµØÖ·±£»¤¡¢ÐéÄâµØÖ·ºÍÎïÀíµØÖ·Ï໥ת»»¹¤×÷¡£ÔÚʹÓÃMMUµÄÓ²¼þƽ̨ÉÏ£¬²Ù×÷ϵͳͨ¹ýMMU¿ÉÒÔÏòÓ¦ÓóÌÐòÌṩ´óÓÚʵ¼ÊÎïÀíÄÚ´æµÄµØÖ·¿Õ¼ä£¬Ê¹Ó¦ÓóÌÐò»ñµÃ¸ü¸ßÐÔÄÜ¡£LinuxµÄÐéÄâÄÚ´æ¹ÜÀí¹¦ÄܾÍÊǽèÖúMMUʵÏֵġ£ÔÚÒÆÖ²µÄʱºòÒª¿¼ÂÇÄ¿±êƽ̨µÄMMU²Ù×÷»úÖÆ£¬Õⲿ·Ö´úÂëÊǽÏÄÑÀí½âµÄ£¬×îºÃÄÜÔÚÏàËÆ´úÂë»ù´¡ÉÏÐ޸ģ¬½µµÍ¿ª·¢ÄѶȡ£
3£®ÄÚ´æÓ³Éä
ǶÈëʽϵͳ´ó¶à¶¼Ã»ÓÐÅ䱸ӲÅÌ£¬Íⲿ´æ´¢Æ÷Ö»ÓÐFlash£¬²¢ÇÒϵͳÄÚ´æÒ²·Ç³£ÓÐÏÞ¡£ÄÚ´æ¿ØÖÆÆ÷£¨Memory Controller£©¸ºÔðÄÚ²¿ºÍÍⲿ´æ´¢Æ÷ÔÚ´¦ÀíÆ÷µØÖ·¿Õ¼äµÄÓ³É䣬ÓÉÓÚÓ²¼þÔ¤ÉèµÄµØÖ·²»Í¬µ¼ÖÂÿÖÖƽ̨ÄÚ´æÓ³ÉäµÄµØÖ·Ò²²»Í¬¡£ÔÚÒÆֲʱÐèÒª²Î¿¼Ó²¼þµÄÓû§ÊֲᣬµÃµ½ÄÚ´æµØÖ·µÄÓ³Éä·½·¨¡£
4£®´æ´¢Æ÷
ÓÉÓÚǶÈëʽϵͳ¶àÓÃFlash´æ´¢Æ÷×÷Ϊ´æ´¢×°Ö᣶
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâƪ·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´ËתÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨Õâƪ²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
Table of Contents, Show Frames, No Frames
µÚÊ®ÎåÕ LinuxºËÐÄÊý¾Ý½á¹¹
±¾ÕÂÁгöÁËLinuxʵÓõÄÖ÷ÒªÊý¾Ý½á¹¹¡£
block_dev_struct
´Ë½á¹¹ÓÃÓÚÏòºËÐĵǼǿéÉ豸£¬Ëü»¹±»buffer cacheʵÓá£ËùÓдËÀà½á¹¹¶¼Î»ÓÚblk_devÊý×éÖС£
struct blk_dev_struct {
void (*request_fn)(void);
struct request * curren ......
Linux²Ù×÷ϵͳ½ü¼¸ÄêÓÐÁËÅµÄ·¢Õ¹£¬ÔÚÕû¸öÊÀ½ç·¶Î§Äڵõ½ÁËÔ½À´Ô½¶à¹«Ë¾ºÍÍÅÌåµÄÖ§³Ö£¬ÓÈÆäÊÇ×î½üIBM¹«Ë¾µÄ¶¦Á¦Ö§³Ö£¬¸üÊÇʹLinux·þÎñÆ÷È绢ÌíÒí£¬¸üÉÏÒ»²ãÂ¥¡£¶øÔÚ¹úÄÚ£¬LinuxµÄÓ¦ÓÃÒ²ÊÇ·½ÐËδ°¬£¬Öڶ๫˾ÒѾͶÈëµ½LinuxϵͳµÄÑз¢ºÍÍƹ㹤×÷ÖС£Ò»Ð©ÓÅÐãµÄLinux²Ù×÷ϵͳÏà¼Ì³öÏÖ£¬±ÈÈçºìÆìLinuxµÈ¡£µ«ÊÇÎÒ¹úµÄLinuxÓ¦ ......
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst &n ......
µÚ20Õ LinuxÄÚºËÒÆÖ²
Èí¼þÒÆÖ²µÄ¸ÅÄî¼òµ¥µØ˵¾ÍÊÇÈÃÒ»Ì×Èí¼þÔÚÖ¸¶¨µÄÓ²¼þƽ̨ÉÏÕý³£ÔËÐС£ÒÆÖ²ÖÁÉÙ°üÀ¨ÁËÁ½¸ö²»Í¬µÄÓ²¼þ»òÕßÈí¼þƽ̨¡£¶ÔÓÚÓ¦ÓÃÈí¼þÀ´Ëµ£¬ÒÆÖ²Ö÷Òª¿¼ÂDzÙ×÷ϵͳµÄ²îÒ죬ÖصãÔÚÐÞ¸Äϵͳµ÷Óᣱ¾ÕµÄÖصãÊÇLinuxÄÚºËÒÆÖ²£¬ÐèÒª¿¼ÂÇÓ²¼þƽ̨µÄ²îÒ죬Éæ¼°½Ï¶à֪ʶ¡£Ö÷ÒªÄÚÈÝÈçÏ£º
q ......