ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux2.6Äں˵ÄǶÈëʽϵͳ²Ã¼õ

·¢²¼Ê±¼ä:2006-05-18 09:25:19À´Ô´:ºìÁª×÷Õß:ºÎ¸ç
תÌù£º

Õª¡¡Òª£ºÔÚ·ÖÎöLinux2.6ÄÚºËÐÂÌØÐԵĻù´¡ÉÏ,ÔÚS3C2410¿ª·¢°åÉÏÒÆÖ²ÁË2.6Äں˺ÍеÄÎļþϵͳ,²¢³É¹¦µØ¶ÔH.264±à½âÂë¶àýÌåϵͳÌṩÁËÖ§³Ö¡£ ¡¡

¡¡¹Ø¼ü´Ê£ºLinux ÄÚºË Ç¶Èëʽϵͳ S3C2410


¡¡¡¡Ëæ×ŶàýÌå¼¼ÊõÓëͨѶ¼¼ÊõÏà½áºÏµÄÐÅÏ¢¼¼ÊõµÄ¿ìËÙ·¢Õ¹ºÍ»¥ÁªÍøµÄ¹ã·ºÓ¦ÓÃ,PC ʱ´úÒ²¹ý¶Éµ½Á˺óPCʱ´ú¡£ÔÚÊý×ÖÐÅÏ¢¼¼ÊõºÍÍøÂç¼¼Êõ¸ßËÙ·¢Õ¹µÄºóPCʱ´ú,ǶÈëʽ¼¼ÊõÔ½À´Ô½ÓëÈËÃǵÄÉú»î½ôÃܽáºÏ¡£
¡¡¡¡²Ù×÷ϵͳΪÓû§Ê¹ÓüÆËã»ú¼°ÆäÍⲿÉ豸Ìṩ×î»ù±¾µÄ½Ó¿Ú³ÌÐò,¹ÜÀí¼ÆËã»úÉϵÄ×ÊÔ´¡£Ëæ×ÅÓ¦ÓÃÁìÓòµÄÀ©´ó,ΪÁËÊÊÓ¦²»Í¬µÄÓ¦Óó¡ºÏ,¿¼Âǵ½ÏµÍ³µÄÁé»îÐÔ¡¢¿ÉÉìËõÐÔÒÔ¼°¿É²Ã¼ôÐÔ,Ò»ÖÖÒÔÓ¦ÓÃΪÖÐÐÄ¡¢ÒÔ¼ÆËã»ú¼¼ÊõΪ»ù´¡¡¢ÈíÓ²¼þ¿É²Ã¼ô¡¢ÊÊÓ¦Ó¦ÓÃϵͳ¶Ô¹¦ÄÜ¡¢¿É¿¿ÐÔ¡¢³É±¾¡¢Ìå»ý¡¢¹¦ºÄÒªÇóÑϸñµÄרÓüÆËã»úϵͳ----ǶÈëʽ²Ù×÷ϵͳËæÖ®ÑÓÉú¡£
¡¡¡¡Linux ²Ù×÷ϵͳÊÇÒ»ÖÖÐÔÄÜÓÅÁ¼¡¢Ô´Â빫¿ªÇÒ±»¹ã·ºÓ¦ÓõÄÃâ·Ñ²Ù×÷ϵͳ,ÓÉÓÚÆäÌå»ýС¡¢¿É²Ã¼õ¡¢ÔËÐÐËٶȸߡ¢Á¼ºÃµÄÍøÂçÐÔÄܵÈÓŵã,¿ÉÒÔ×÷ΪǶÈëʽ²Ù×÷ϵͳ¡£Ëæ×Å2.6Äں˵ķ¢²¼,LinuxÏòÏÖÓÐÖ÷Á÷µÄRTOSÌṩÉÌÔÚǶÈëʽϵͳÊг¡Ìá³öÁ˾޴óÌôÕ½,ÀýÈçVxWorksºÍWinCE,¾ßÓÐÐí¶àÐÂÌØÐÔ,½«³ÉΪ¸üÓÅÐãµÄǶÈëʽ²Ù×÷ϵͳ¡£
¡¡¡¡LinuxµÄµÍ³É±¾ºÍ¿ª·ÅÐÔ,ΪÆäÔÚǶÈëʽϵͳÁìÓòµÄÓ¦ÓÃÓªÔìÁË·ÊÎÖµÄÍÁÈÀ¡£±¾ÎÄ×ÅÖؽéÉÜLinux 2.6Äں˵ÄÐÂÌØÐÔ¼°ÆäǶÈëʽӦÓÃÖеÄÓÅÊÆ,²¢½«ÆäÒÆÖ²µ½Ç¶Èëʽƽ̨ÖÐ,³É¹¦Ö§³ÖH.264±à½âÂë¶àýÌåϵͳ¡£
1 Linux 2.6ÄÚºËÕë¶ÔǶÈëʽ¿ª·¢ÏÔÖøÌصã
¡¡¡¡ÊµÊ±¿É¿¿ÐÔÊÇǶÈëʽӦÓýÏΪÆÕ±éµÄÒªÇó,¾¡¹ÜLinux 2.6 ²¢²»ÊÇÒ»¸öÕæÕýµÄʵʱ²Ù×÷ϵͳ,µ«Æä¸Ä½øµÄÌØÐÔÄܹ»Âú×ãÏìÓ¦ÐèÇó¡£Linux 2.6 ÒѾ­ÔÚÄÚºËÖ÷ÌåÖмÓÈëÁËÌá¸ßÖжÏÐÔÄܺ͵÷¶ÈÏìӦʱ¼äµÄ¸Ä½ø,ÆäÖÐÓÐÈý¸ö×îÏÔÖøµÄ¸Ä½ø:²ÉÓÿÉÇÀÕ¼Äںˡ¢¸ü¼ÓÓÐЧµÄµ÷¶ÈËã·¨ÒÔ¼°Í¬²½ÐÔµÄÌá¸ß[4]¡£ÔÚÆóÒµ·þÎñÆ÷ÒÔ¼°Ç¶ÈëʽϵͳӦÓÃÁìÓò,Linux 2.6 ¶¼ÊÇÒ»¸ö¾Þ´óµÄ½ø²½¡£ÔÚǶÈëʽÁìÓò,Linux 2.6 ³ýÁËÌá¸ßÆäʵʱÐÔÄÜ,ϵͳµÄÒÆÖ²¸ü¼Ó·½±ã,ͬʱÌí¼ÓÁËеÄÌåϵ½á¹¹ºÍ´¦ÀíÆ÷ÀàÐÍ----°üÀ¨¶ÔûÓÐÓ²¼þ¿ØÖÆÄÚ´æ¹ÜÀí·½°¸µÄ MMU-lessϵͳµÄÖ§³Ö,¿ÉÒÔÖ§³Ö´óÈÝÁ¿ÄÚ´æÄ£ÐÍ¡¢Î¢¿ØÖÆÆ÷,ͬʱ»¹¸ÄÉÆÁËI/O×Óϵͳ,ÔöÌí¸ü¶àµÄ¶àýÌåÓ¦Óù¦ÄÜ[4]¡£
1.1 ¿ÉÇÀÕ¼ÄÚºË
¡¡¡¡ÔÚÏÈÇ°µÄÄں˰汾ÖÐ(°üÀ¨2.4ÄÚºË)²»ÔÊÐíÇÀÕ¼ÒÔºËÐÄ̬ÔËÐеÄÈÎÎñ(°üÀ¨Í¨¹ýϵͳµ÷ÓýøÈëÄÚºËģʽµÄÓû§ÈÎÎñ),Ö»ÄܵȴýËüÃÇ×Ô¼ºÖ÷¶¯ÊÍ·ÅCPU¡£ÕâÑù±ØÈ»µ¼ÖÂһЩÖØÒªÈÎÎñÑÓʱÒԵȴýϵͳµ÷ÓýáÊø¡£
¡¡¡¡Ò»¸öÄÚºËÈÎÎñ¿ÉÒÔ±»ÇÀÕ¼,ΪµÄÊÇÈÃÖØÒªµÄÓû§Ó¦ÓóÌÐò¿ÉÒÔ¼ÌÐøÔËÐС£ÕâÑù×ö×îÖ÷ÒªµÄÓÅÊÆÊǼ«´óµØÔöǿϵͳµÄÓû§½»»¥ÐÔ¡£
¡¡¡¡2.6Äں˲¢²»ÊÇÕæÕýµÄRTOS(Real Time Operation System),ÆäÔÚÄں˴úÂëÖвåÈëÁËÇÀÕ¼µã,ÔÊÐíµ÷¶È³ÌÐòÖÐÖ¹µ±Ç°½ø³Ì¶øµ÷Óøü¸ßÓÅÏȼ¶µÄ½ø³Ì,ͨ¹ý¶ÔÇÀÕ¼µãµÄ²âÊÔ±ÜÃâ²»ºÏÀíµÄϵͳµ÷ÓÃÑÓʱ¡£2.6ÄÚºËÔÚÒ»¶¨³Ì¶ÈÉÏÊÇ¿ÉÇÀÕ¼µÄ,±È2.4Äں˾߱¸¸üºÃµÄÏìÓ¦ÐÔ¡£µ«Ò²²»ÊÇËùÓеÄÄں˴úÂë¶Î¶¼¿ÉÒÔ±»ÇÀÕ¼,¿ÉÒÔËø¶¨Äں˴úÂëµÄ¹Ø¼ü²¿·Ö,È·±£CPUµÄÊý¾Ý½á¹¹ºÍ״̬ʼÖÕÊܵ½±£»¤¶ø²»±»ÇÀÕ¼¡£
¡¡¡¡Èí¼þÐèÒªÂú×ã×îÖÕʱ¼äÏÞÖÆÓëÐéÄâÄÚ´æÇëÇóÒ³Ãæµ÷¶ÈÖ®¼äÊÇÏ໥ì¶ÜµÄ¡£ÂýËÙµÄÒ³´íÎó´¦Àí½«»áÆÆ»µÏµÍ³µÄʵʱÏìÓ¦ÐÔ,¶ø2.6Äں˿ÉÒÔ±àÒëÎÞÐéÄâÄÚ´æϵͳ±ÜÃâÕâ¸öÎÊÌâ,ÕâÊǽâ¾öÎÊÌâµÄ¹Ø¼ü,µ«ÒªÇóÈí¼þÉè¼ÆÕßÓÐ×ã¹»µÄÄÚ´æÀ´±£Ö¤ÈÎÎñµÄÖ´ÐС£
1.2 ÓÐЧµÄµ÷¶È³ÌÐò
¡¡¡¡2.6°æ±¾µÄ LinuxÄÚºËʹÓÃÁËÓÉ Ingo Molnar¿ª·¢µÄеĵ÷¶ÈÆ÷Ëã·¨,³ÆΪO(1)Ëã·¨,Èçͼ1Ëùʾ¡£ËüÔڸ߸ºÔØÇé¿öÏÂÖ´Ðеü«Æä³öÉ«,²¢ÇÒµ±ÓкܶദÀíÆ÷²¢ÐÐʱҲ¿ÉÒԺܺõØÀ©Õ¹[2]¡£¹ýÈ¥µÄµ÷¶È³ÌÐòÐèÒª²éÕÒÕû¸öready task¶ÓÁÐ,²¢ÇÒ¼ÆËãËüÃǵÄÖØÒªÐÔÒÔ¾ö¶¨ÏÂÒ»²½µ÷ÓõÄtask,ÐèÒªµÄʱ¼äËætaskÊýÁ¿¶ø¸Ä±ä¡£O(1)Ëã·¨Ôò²»ÔÙÿ´ÎɨÃèËùÓеÄÈÎÎñ,µ±task¾ÍÐ÷ʱ±»·ÅÈëÒ»¸ö»î¶¯¶ÓÁÐÖÐ,µ÷¶È³ÌÐòÿ´Î´ÓÖе÷¶ÈÊʺϵÄtask,Òò¶øÿ´Îµ÷¶È¶¼ÊÇÒ»¸ö¹Ì¶¨µÄʱ¼ä¡£ÈÎÎñÔËÐÐʱ·ÖÅäÒ»¸öʱ¼äƬ,µ±Ê±¼äƬ½áÊø,¸ÃÈÎÎñ½«·ÅÆú´¦ÀíÆ÷²¢¸ù¾ÝÆäÓÅÏȼ¶×ªµ½¹ýÆÚ¶ÓÁÐÖС£»î¶¯¶ÓÁÐÖÐÈÎÎñÈ«²¿µ÷¶È½áÊøºó,Á½¸ö¶ÓÁÐÖ¸Õ뻥»»,¹ýÆÚ¶ÓÁгÉΪµ±Ç°¶ÓÁÐ,µ÷¶È³ÌÐò¼ÌÐøÒÔ¼òµ¥µÄËã·¨µ÷¶Èµ±Ç°¶ÓÁÐÖеÄÈÎÎñ¡£ÕâÔڶദÀíÆ÷µÄÇé¿ö¸üÄÜÌá¸ßSMPµÄЧÂÊ,ƽºâ´¦ÀíÆ÷µÄ¸ºÔØ,±ÜÃâ½ø³ÌÔÚ´¦ÀíÆ÷¼äµÄÌøÔ¾¡£

ͼ1 O(1)µ÷¶ÈËã·¨

1.3 ͬ²½Ô­ÐÍÓë¹²ÏíÄÚ´æ
¡¡¡¡¶à½ø³ÌÓ¦ÓóÌÐòÐèÒª¹²ÏíÄÚ´æºÍÍâÉè×ÊÔ´,Ϊ±ÜÃ⾺Õù²ÉÓÃÁË»¥³âµÄ·½·¨±£Ö¤×ÊÔ´ÔÚͬһʱ¿ÌÖ»±»Ò»¸öÈÎÎñ·ÃÎÊ¡£LinuxÄÚºËÓÃÒ»¸öϵͳµ÷ÓÃÀ´¾ö¶¨Ò»¸öÏß³Ì×èÈû»òÊǼÌÐøÖ´ÐÐÀ´ÊµÏÖ»¥³â,ÔÚÏ̼߳ÌÐøÖ´ÐÐʱ,Õâ¸ö·ÑʱµÄϵͳµ÷ÓþÍûÓбØÒªÁË¡£Linux2.6ËùÖ§³ÖµÄFast User-Space Mutexes ¿ÉÒÔ´ÓÓû§¿Õ¼ä¼ì²âÊDz»ÊÇÐèÒª×èÈûÏß³Ì,Ö»ÔÚÐèҪʱִÐÐϵͳµ÷ÓÃÖÕÖ¹Ï̡߳£ËüͬÑù²ÉÓõ÷¶ÈÓÅÏȼ¶À´È·¶¨½«ÒªÖ´ÐеĽø³Ì[4]¡£ ¶à´¦ÀíÆ÷ǶÈëʽϵͳ¸÷´¦ÀíÆ÷Ö®¼äÐèÒª¹²ÏíÄÚ´æ,¶Ô³Æ¶à´¦Àí¼¼Êõ¶ÔÄÚ´æ·ÃÎʲÉÓÃͬµÈÓÅÏȼ¶,Ôںܴó³Ì¶ÈÉÏÏÞÖÆÁËϵͳµÄ¿ÉÁ¿²âÐԺʹ¦ÀíЧÂÊ¡£Linux2.6ÔòÌṩÁËеĹÜÀí·½·¨----NUMA(Non Uniform Memory Access)¡£NUMA¸ù¾Ý´¦ÀíÆ÷ºÍÄÚ´æµÄÍØÆ˲¼¾Ö,ÔÚ·¢ÉúÄڴ澺Õùʱ,¸øÓ費ͬ´¦ÀíÆ÷²»Í¬¼¶±ðȨÏÞÒÔ½â¾öÄÚ´æÇÀռƿ¾±,Ìá¸ßÍÌÍÂÁ¿¡£
1.4 POSIXÏ̼߳°NPTL
¡¡¡¡ÐµÄÏß³ÌÄ£ÐÍ»ùÓÚÒ»¸ö1:1µÄÏß³ÌÄ£ÐÍ(Ò»¸öÄÚºËÏ̶߳ÔÓ¦Ò»¸öÓû§Ïß³Ì),°üÀ¨Äں˶ÔÐ嵀 NPTL(Native POSIX Threading Library)µÄÖ§³Ö,ÕâÊǶÔÒÔÇ°ÄÚºËÏ̷߳½·¨µÄÃ÷ÏԸĽø¡£2.6ÄÚºËͬʱ»¹ÌṩPOSIX signalsºÍPOSIX high-resolution timers¡£POSIX signals²»»á¶ªÊ§,²¢ÇÒ¿ÉÒÔЯ´øÏ̼߳ä»ò´¦ÀíÆ÷¼äµÄͨÐÅÐÅÏ¢¡£Ç¶ÈëʽϵͳҪÇóϵͳ°´Ê±¼ä±íÖ´ÐÐÈÎÎñ,POSIX timer¿ÉÒÔÌṩ1kHzµÄ´¥·¢Æ÷ʹÕâÒ»ÇбäµÃ¼òµ¥,´Ó¶ø¿ÉÒÔÓÐЧµØ¿ØÖƽø¶È¡£
1.5 ΢¿ØÖÆÆ÷µÄÖ§³Ö
¡¡¡¡Linux2.6Äں˼ÓÈëÁ˶àÖÖ΢¿ØÖÆÆ÷µÄÖ§³Ö¡£ÎÞMMUµÄ´¦ÀíÆ÷ÒÔÇ°Ö»ÄÜÀûÓÃһЩ¸Ä½øµÄ·ÖÖ§°æ±¾,ÈçuClinux,¶ø2.6ÄÚºËÒѾ­½«ÆäÕûºÏ½øÁËеÄÄÚºËÖÐ,¿ªÊ¼Ö§³Ö¶àÖÖÁ÷ÐеÄÎÞMMU΢¿ØÖÆÆ÷,ÈçDragonball¡¢ColdFire¡¢Hitachi H8/300¡£LinuxÔÚÎÞMMU¿ØÖÆÆ÷ÉÏÈÔ¾ÉÖ§³Ö¶àÈÎÎñ´¦Àí,µ«Ã»ÓÐÄÚ´æ±£»¤¹¦ÄÜ¡£Í¬Ê±Ò²¼ÓÈëÁËÐí¶àÁ÷ÐеĿØÖÆÆ÷µÄÖ§³Ö,ÈçS3C2410µÈ¡£
1.6 ÃæÏòÓ¦ÓÃ
¡¡¡¡Ç¶ÈëʽӦÓÃÓÐÓû§¶¨ÖƵÄÌصã,Ó²¼þÉè¼Æ¶¼Õë¶ÔÌض¨Ó¦Óÿª·¢,Õâ¸øϵͳ´øÀ´¶Ô·Ç±ê×¼»¯Éè¼ÆÖ§³ÖµÄÎÊÌâ(ÈçIRQµÄ¹ÜÀí)¡£ÎªÁ˸üºÃµØʵÏÖ,¿ÉÒÔ²ÉÓò¿¼þ»¯µÄ²Ù×÷ϵͳ¡£Linux2.6²ÉÓõÄ×Óϵͳ¼Ü¹¹½«¹¦ÄÜÄ£¿é»¯,¿ÉÒÔ¶¨Öƶø¶ÔÆäËû²¿·ÖÓ°Ïì×îС¡£Í¬Ê±Linux2.6ÌṩÁ˶àÖÖм¼ÊõµÄÖ§³ÖÒÔʵÏÖ¸÷ÖÖÓ¦Óÿª·¢,ÈçAdvanced Linux Sound Architecture(ALSA)ºÍVideo4LinuxµÈ,¶Ô¶àýÌåÐÅÏ¢´¦Àí¸ü¼Ó·½±ã;¶ÔUSB2.0µÄÖ§³Ö,Ìṩ¸ü¸ßËٵĴ«Êä,Ôö¼ÓÀ¶ÑÀÎÞÏß½Ó¿Ú¡¢ÒôƵÊý¾ÝÁ´½ÓºÍÃæÏòÁ´½ÓµÄÊý¾Ý´«ÊäL2CAP,Âú×ã¶Ì¾àÀëµÄÎÞÏßÁ¬½ÓµÄÐèÒª;¶øÇÒÔÚ2.6ÄÚºËÖл¹¿ÉÒÔÅäÖóÉÎÞÊäÈëºÍÏÔʾµÄ´¿´âÎÞÓû§½Ó¿Úϵͳ¡£

2 Ó¦ÓÃÑо¿

¡¡¡¡ÔÚS3C2410¿ª·¢°åÉÏÒÆֲǶÈëʽLinux 2.6.11.7ÄÚºËϵͳ,Ó¦ÓÃÓÚ¹¹½¨H.264¶àýÌåϵͳ¡£
2.1 ½¨Á¢½»²æ±àÒë»·¾³
¡¡¡¡ÔÚRedHat9µÄÖ÷»úÉϽøÐÐÄÚºËÒÆÖ²¿ª·¢,Ê×ÏÈÐèÒª½¨Á¢½»²æ±àÒë»·¾³¡£ÓÉÓÚ2.6ÄÚºËÖвÉÓÃÁËһЩеÄÌØÐÔºÍÖ¸Áî,ÐèÒª²ÉÓýÏÐµĹ¤¾ß¼¯,²ÉÓÃbinutils-2.15¡¢gcc-3.4.2¡¢glibc-2.2.5¡¢linux-2.6.8¡¢glibc-linuxthreads-2.2.5À´½¨Á¢½»²æ±àÒ빤¾ßÁ´,½¨Á¢Ö®ºó½«¹¤¾ßÁ´Â·¾¶¼ÓÈëϵͳ·¾¶$PATHÖС£
2.2 ÄÚºËÐÞ¸Ä
¡¡¡¡Linux 2.6.11.7Äں˼ÓÈëÁ˶ÔS3C2410оƬµÄÖ§³Ö,²»ÔÙÐèÒªÈκβ¹¶¡Îļþ¡£ÐÞ¸ÄÄÚºËÔ´ÂëÖÐMakefileµÄ½»²æ±àÒëÑ¡ÏîARCH=arm,CROSS_COMPILE=arm-linux-¡£Õë¶ÔÓ²¼þÅäÖÃ,ÐèÒªÔÚarch/arm/mach-s3c2410/devs.c»òÕßsmdk2410.cÖÐÌí¼ÓFLASHµÄ·ÖÇøÐÅÏ¢s3c_nand_info,Èç±í1¡£
±í1 NAND FLASH·ÖÇø±í

·ÖÇøÃû ¡¡¡¡¡¡¡¡ÆðʼµØÖ· ¡¡¡¡¡¡¡¡¡¡´ó С
Vivi ¡¡¡¡¡¡¡¡¡¡¡¡0x00000000 ¡¡¡¡0x00020000
Param ¡¡¡¡¡¡¡¡¡¡0x00020000 ¡¡¡¡0x00010000
Kernel ¡¡¡¡¡¡¡¡¡¡0x00030000 ¡¡¡¡0x001c0000
Root ¡¡¡¡¡¡¡¡¡¡0x00200000 ¡¡¡¡¡¡0x00200000
Usr ¡¡¡¡¡¡¡¡¡¡¡¡0x00400000 ¡¡¡¡¡¡0x03c00000

¡¡È»ºóÔÚs3c_device_nandÖÐÔö¼Ó.dev={.platform_data= &s3c_nand_info},ÔÚarch/arm/mach-s3c2410/mach-smdk2410.cÖеÄ__initdata²¿·ÖÔö¼Ó&s3c_device_nand,ʹÄÚºËÔÚÆô¶¯Ê±³õʼ»¯NAND FLASHÐÅÏ¢¡£
2.3 Äں˱àÒë¼ÓÔØ
¡¡¡¡¶ÔÄں˽øÐÐÊʵ±µÄÅäÖÃÊÇÒ»¸öÁ¿Ìå²ÃÒµĹý³Ì¡£ÓÉÓÚ2.6Äں˻á¸ù¾Ý±¾µØϵͳÅäÖýøÐгõʼÉèÖÃ,¿ÉÒÔµ¼ÈëÄÚºËÔ´ÂëĬÈÏs3c2410µÄÅäÖÃÎļþ,·½±ã¼ÓÔØÄں˻ù±¾ÅäÖÃ,È»ºóÔÙÑ¡ÔñËùÐèÑ¡Ïî¡£¶ÔMTDÅäÖÃÑ¡ÔñÖ§³ÖMTDÉ豸Çý¶¯ÒÔ¼°NAND FLASHÇý¶¯;Ñ¡ÔñÖ§³ÖÒªÓõ½µÄ¸÷ÀàÎļþϵͳ(DEVFS¡¢TMPFS¡¢CRAMFS¡¢YAFFS¡¢EXT2¡¢NFS)ÒÔ¼°ÍøÂçÉ豸ºÍЭÒé,±¾ÏµÍ³¼ÓÔØÁËÍøÂçоƬCS8900ÒÔ¼°USBÖ§³Ö;ÔÚH.264¶àýÌåϵͳÖл¹ÐèÒª¼ÓÔØFrame bufferÒÔÖ§³ÖLCDÏÔʾ¹¦ÄÜ¡£Ê¹Óý»²æ±àÒ빤¾ß±àÒëÄÚºËÔ´Âëºó, »áÔÚarch/arm/boot/ÏÂÉú³ÉÃûΪzImageµÄÄÚºËÓ³Ïñ,ÔÚBoot loaderµÄÃüÁîÌáʾģʽÏÂʹÓÃÏÂÔØÃüÁîÍê³ÉÄں˼ÓÔص½¿ª·¢°åµÄ´æ´¢É豸FLASHÖС£±àÒë¹ý³Ì(Ïà¶ÔÒÔÇ°°æ±¾µÄ±àÒë¹ý³Ì,2.6Äں˱àÒëÓÐËù¼ò»¯):
¡¡¡¡make mrproper
¡¡¡¡make menuconfig(×Ö·û½çÃæ,»òÕßÓÃmake xconfigͼÐνçÃæ,µ«ÐèÒªQt¿âµÄÖ§³Ö,¶ømake gconfigÔòÐèÒªGTK¿âµÄÖ§³Ö)
¡¡¡¡make
¡¡¡¡make bzImage
2.4 Îļþϵͳ
¡¡¡¡Linux²ÉÓÃÎļþϵͳ×é֯ϵͳÖеÄÎļþºÍÉ豸,ΪÉ豸ºÍÓû§³ÌÐòÌṩͳһ½Ó¿Ú¡£Linux Ö§³Ö¶àÖÖÎļþϵͳ,±¾ÏµÍ³Ê¹ÓÃCRAMFS¸ñʽµÄÖ»¶Á¸ùÎļþϵͳ,¶ø½«FLASHÖеÄUSERÇøʹÓÃÖ§³Ö¿É¶ÁдµÄYA FFSÎļþϵͳ¸ñʽ,·½±ãÌí¼Ó×Ô¼ºµÄÓ¦ÓóÌÐò¡£
¡¡¡¡ÔÚ¸ùÎļþϵͳÖÐ,Ϊ±£»¤ÏµÍ³µÄ»ù±¾ÉèÖò»±»¸ü¸Ä,²ÉÓÃCRAMFS¸ñʽ¡£²ÉÓÃDEVFSÀ´ÊµÏÖ»ù±¾É豸µÄ½¨Á¢¹ÒÔØ,ͬʱʹÓÃBusyBoxÒ²ÊÇÒ»¸öËõС¸ùÎļþϵͳµÄ°ì·¨,ÌṩÁËϵͳµÄ»ù±¾Ö¸Áî;»¹ÐèÒª½¨Á¢Ò»Ð©±Ø±¸µÄĿ¼,Ìí¼ÓËùÐèÅäÖÃÎļþ,Èçfstab¡¢inittabµÈ;»¹ÓÐÒ»¸öÖØÒªµÄ¹¤×÷¾ÍÊÇÌí¼ÓϵͳӦÓñر¸µÄ¶¯Ì¬º¯Êý¿â¡£Ê¹ÓÃÉú³É¹¤¾ßmkcramfs ½«Õû¸ö¸ùÎļþĿ¼ÀïµÄÄÚÈÝÖÆ×÷³ÉÓ³ÏñÎļþ¡£
¡¡¡¡mkcramfs rootfs rootfs.ramfs
¡¡¡¡YAFFSÎļþϵͳ¸ñʽµÄÖ§³ÖÐèÒª½«Çý¶¯¼ÓÈëµ½Äں˴úÂëÊ÷ÏÂfs/yaffs/,ÐÞ¸ÄÄÚºËÅäÖÃÎļþ,¾Í¿ÉÒÔÔÚÄں˱àÒëÖмÓÔضԸÃÎļþϵͳµÄÖ§³Ö¡£Ê¹ÓÃmkyaffs¹¤¾ß½«NAND FLASH·ÖÇø¸ñʽ»¯ÎªYAFFS·ÖÇø,½«mkyaffsimageÉú³ÉµÄÓ¦ÓóÌÐò¾µÏñÉÕд½øYAFFS·ÖÇø,ÔÚÆô¶¯Ê±Í¨¹ýдÈëfstab×Ô¶¯¼ÓÔØYAFFS·ÖÇø¼´¿É¡£
2.5 ÍøÂçÉ豸Çý¶¯
¡¡¡¡ÏµÍ³ÖвÉÓÃCS8900AµÄ10MÍøÂçоƬ,ËüʹÓÃS3C2410µÄnGCS3ºÍIRQ_EINT9,ÏàÓ¦ÐÞ¸Älinux/arch/arm/mach-s3c2410/irq.c,²¢ÔÚmach-smdk2410.cµÄsmdk2410_iodesc[]ÖÐÔö¼Ó{SMDK2410_ETH_IO,S3C2410_CS2, SZ_1M, MT_DEVICE},ÄÚºËÔ´ÂëÖмÓÈëоƬµÄÇý¶¯³ÌÐòdrivers/net/arm/cs8900.hºÍcs8900.c,²¢ÇÒÅäÖÃÍøÂçÉ豸Çý¶¯µÄMakefileºÍKconfigÎļþ,¼ÓÈëCS8900AµÄÅäÖÃÑ¡Ïî,ÕâÑù¿ÉÒÔÔÚÄں˱àÒëʱ¼ÓÔØÍøÂçÉ豸µÄÇý¶¯¡£
¡¡¡¡ÔÚLinux2.6Ó¦ÓõÄͬʱ,Ò²Òª¿´µ½ÆäÓëÒÔÇ°°æ±¾Äں˱ȽϴæÔÚµÄһЩÎÊÌâ¡£ÔÚÄں˵ıàÒëʱ¼ä¡¢Äں˾µÏñ´óС¡¢ÄÚºËÕ¼ÓÃRAM¿Õ¼ä´óС¡¢ÏµÍ³Æô¶¯Ê±¼äÏà¶ÔLinux2.4¶øÑÔ¶¼´æÔÚ²»Í¬³Ì¶ÈµÄ²»×ã,µ«ÔÚÓ²¼þÌõ¼þÈÕÒæ½ø²½µÄÏÖ½ñ¿ÉÒÔ½ÓÊÜ,¶øÇÒÒ»²¿·ÖÒ²ÊÇÓÉÓÚ¹¦ÄܼÓÇ¿±ØÈ»´øÀ´µÄ¡£ËäÈ»Linux²¢·ÇÒ»¸öÕæÕýµÄʵʱ²Ù×÷ϵͳ,µ«2.6Äں˵ĸĽøÄܹ»Âú×ã´ó²¿·ÖµÄÓ¦ÓÃÐèÇó,ËùÒÔLinux2.6Äں˽«»áÔÚǶÈëʽϵͳÁìÓò´óÕ¹ÉíÊÖ¡£
²Î¿¼ÎÄÏ×
1 Alessandro Rubini,Jonathan CorbetÖø,κÓÀÃ÷,Âæ¸Õ,½ª ¾ýÒë.LinuxÉ豸Çý¶¯[M].
±±¾©:ÖйúµçÁ¦³ö°æÉç,2004
2 Anand K Santhanam. ×ßÏòLinux2.6[EB/OL]. Dec. 2003.
http://www-128.ibm.com/deve loperworks/cn/linux/ l-inside/index.html
3 S3C2410X 32-Bit RISC Microprocessor User´s Manual[Z]. SAMSUNG Electronics. Revision 1.2
4 Brandon White. Linux 2.6: A Breakthrough for Embedded
Systems[EB/OL].http://linuxdevices.com/articles/AT7751365763.html Sep.9,2003
5 Karim Yaghmour. Building Embedded Linux Systems[M]. O¡¯Reilly. April, 2003
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 25 ÌõÆÀÂÛ

  1. lxxwyy ÓÚ 2011-06-11 22:35:06·¢±í:

    haoyahao

  2. luo878511 ÓÚ 2010-05-29 17:27:01·¢±í:

    ²»¶¥¶Ô²»Æð×Ô¼º

  3. beijunan ÓÚ 2010-05-28 14:49:47·¢±í:

    ѧϰÁË

  4. wangkuai1986 ÓÚ 2010-05-27 10:26:18·¢±í:

    :0)1

  5. 47568203 ÓÚ 2010-04-06 12:23:53·¢±í:

    лл·ÖÏí

  6. 47568203 ÓÚ 2010-04-06 12:23:48·¢±í:

    лл·ÖÏí

  7. pooi8749 ÓÚ 2010-03-13 09:57:26·¢±í:

    ²»´í£¬°Ý¶ÁÁË

  8. kylezhou ÓÚ 2010-02-28 14:51:08·¢±í:

    ²»´í

  9. sxjyx2009 ÓÚ 2010-01-17 11:13:20·¢±í:

    ²»´í£¬²»´í£¡

  10. ryangecko ÓÚ 2010-01-16 14:51:54·¢±í:

    Ì«ºÃÁË£¬ÎÒÕýÔÚ×öÕâ¸öÄØ

  11. cuoerr ÓÚ 2010-01-16 08:28:07·¢±í:

    uuuuuuuup

  12. MEYEGG ÓÚ 2010-01-08 22:01:00·¢±í:

    zhichi ..

  13. yangsilence ÓÚ 2010-01-04 10:16:20·¢±í:

    ÏÈѧϰÁË

  14. 194.88.214.* ÓÚ 2007-07-19 06:02:03·¢±í:

    funny ringtones

  15. 194.88.214.* ÓÚ 2007-07-19 06:01:08·¢±í:

    funny ringtones

  16. 194.88.214.* ÓÚ 2007-07-19 06:00:47·¢±í:

    funny ringtones

  17. 194.88.214.* ÓÚ 2007-07-19 06:00:37·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones site, Free nokia ringtones here, Download ringtones FREE. From website .

  18. 194.88.214.* ÓÚ 2007-07-19 06:00:24·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones site, Free nokia ringtones here, Download ringtones FREE. From website .

  19. 194.88.214.* ÓÚ 2007-07-19 05:59:51·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones site, Free nokia ringtones here, Download ringtones FREE. From website .

  20. 194.88.214.* ÓÚ 2007-07-19 05:59:36·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones site, Free nokia ringtones here, Download ringtones FREE. From website .

  21. 194.88.214.* ÓÚ 2007-07-19 05:59:26·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones site, Free nokia ringtones here, Download ringtones FREE. From website .

  22. 194.88.214.* ÓÚ 2007-07-19 05:59:19·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones download: ringtones site, Free nokia ringtones here, Download ringtones FREE. samsung ringtones From website .

  23. 194.88.214.* ÓÚ 2007-07-19 05:59:12·¢±í:

    http://www.ringtones-dir.net/get/ ringtones site free. ringtones download: ringtones site, Free nokia ringtones here, Download ringtones FREE. samsung ringtones From website .

  24. 71.203.172.* ÓÚ 2007-07-19 05:58:51·¢±í:

    http://www.ringtones-dir.net/download/ download ringtones. nokia ringtones: ringtones site, Free nokia ringtones here, Download ringtones FREE. http://www.ringtones-dir.net/free/ [link=http://www.ringtones-dir.net]ring tones[/link] From site .

  25. suo2800 ÓÚ 2006-07-13 21:16:38·¢±í:

    ²»´í£¬°Ý¶ÁÁË