µ±Ç°Î»ÖãºLinux½Ì³Ì - Linux×ÊѶ - Ó²¼þ·ÂÕæʵÏÖÖ®---SkyEyeµÄÉè¼ÆʵÏÖ

Ó²¼þ·ÂÕæʵÏÖÖ®---SkyEyeµÄÉè¼ÆʵÏÖ

¡¡¡¡Ò»£® SkyEyeµÄ×ÜÌå½á¹¹¡¡¡¡SkyEye»ùÓÚGDB/ARMulator(Ä¿Ç°ÓÉDavid McCullough ά»¤)£¬²¢½øÐÐÁËÈ«ÃæµÄ¸Ä±äºÍÀ©Õ¹¡£SkyEye½¨Á¢ÔÚGNU GDBµÄµ×²ã£¬¿ÉÒÔÄ£·Â¶àÖÖÍêÕûµÄǶÈëʽ¼ÆËã»úϵͳ£¬Ä¿Ç°Ä£ÄâµÄÓ²¼þ°üÀ¨CPU¡¢ÄÚ´æ¡¢I/O¼Ä´æÆ÷¡¢Ê±ÖÓ¡¢UART¡¢ÍøÂçоƬ¡¢MMU¡¢CACHE£¬½«À´»¹»áÄ£Äâ LCD¡¢USBµÈ¸÷ÖÖÓ²¼þ¡£ÔÚSkyEyeÉÏÔËÐеIJÙ×÷ϵͳºÍ¸÷ÖÖϵͳÈí¼þ"Òâʶ"²»µ½ËüÃÇÊÇÔÚÒ»¸öÐéÄâµÄ¼ÆËã»úϵͳÉÏÔËÐС£ ¡¡¡¡¡¡¡¡SkyEye´Ó×ÜÌåÉÏ·ÖΪËĸö²ã´Î£º¡¡¡¡¡¡¡¡Óû§½Ó¿ÚÄ£¿é£º°üÀ¨ÃüÁîÐÐÓû§½çÃæºÍͼÐÎÓû§½çÃ棬Íê³É´¦ÀíÓû§µÄÊäÈëÃüÁ²¢°ÑÏà¹Øµ÷ÊÔÊý¾ÝÊä³ö¸øÓû§µÄÈÎÎñ¡£ÕâÒ»²¿·Ö»ù±¾ÉÏÖ±½ÓÀûÓÃÁËGDBµÄÓû§½Ó¿ÚÄ£¿é£¬²¢ÔÚ´Ë»ù´¡ÉÏÓÐÒ»¶¨µÄÀ©³ä¡£ ¡¡¡¡·ûºÅ´¦ÀíÄ£¿é£ºÖ÷Òª´¦ÀíÖ´ÐÐÎļþµÄÍ·ÐÅÏ¢£¬½âÊÍÖ´ÐÐÎļþÖÐÄÚǶµÄdebugerµ÷ÊÔÐÅÏ¢£¬¶Ô·ûºÅ±íµÄ¹ÜÀí£¬¶ÔÔ´´úÂë±í´ïʽµÄ½âÎö£¬¶¨Î»Ô´´úÂëÖеÄÓï¾äλÖúͻúÆ÷ÂëµÄλÖùØϵµÈ¡£ÕâÒ»²¿·ÖÒ²ÊÇÖ±½ÓÀûÓÃÁËGDBµÄ·ûºÅ´¦ÀíÄ£¿é£¬Ò²ÕýÊÇÓÐÁËÕâ¸öÄ£¿éµÄÖ§³Ö£¬SkyEye¿ÉÒÔÖ§³ÖÔ´Â뼶µ÷ÊÔ¡£ ¡¡¡¡Ä¿±ê¿ØÖÆÄ£¿é£ºÖ÷ÒªÍê³ÉÖ´ÐпØÖÆ£¨ÈçÖжϳÌÐòµÄÖ´ÐУ¬ÉèÖÃÖжÏÌõ¼þµÈ£©£¬³ÌÐòÕ»½á¹¹·ÖÎö£¬¶Ô¾ßÌåÄ¿±êÓ²¼þµÄ¿ØÖÆ£¨Èç±¾µØµ÷ÊÔ¡¢Ô¶³Ìµ÷ÊÔºÍÄ£Äâµ÷ÊԵĿØÖÆ£©¡£ÕâÒ»²¿·ÖÍê³É¶ÔSkyEyeÉÏÔËÐеÄÈí¼þµÄ¿ØÖÆ£¬ÌṩÁ˶àÖÖµ÷ÊÔÊֶΡ£ ¡¡¡¡Ä¿±êÄ£ÄâÄ£¿é£ºÕâÒ»²¿·ÖÊÇSkyEyeµÄºËÐÄ¡£ËüµÄ¹¦ÄÜÊÇÄ£·Â¼ÆËã»úϵͳÖеÄÖ÷ÒªÓ²¼þ£¨°üÀ¨CPU¡¢ÄÚ´æºÍ¸÷ÖÖÓ²¼þÍâÉèµÈ£©µÄÖ´ÐУ¬¶ÔÖ´ÐÐÎļþµÄ»úÆ÷Ö¸Áî½øÐнâÊÍ£¬²¢Ä£ÄâÖ´ÐÐÿһÌõ»úÆ÷Ö¸Á²úÉúÏàÓ¦µÄÓ²¼þÏìÓ¦µÈ¡£ ¡¡¡¡¡¡¡¡¶þ£® SkyEyeÄ¿±êÄ£ÄâÄ£¿é¹¦ÄÜ»®·Ö¡¡¡¡¡¡¡¡SkyEyeÄ¿±êÄ£ÄâÄ£¿éÄ£ÄâµÄÓ²¼þÂß¼­½á¹¹Í¼Èçͼ 0 1Ëùʾ¡£SkyEyeÄ¿±êÄ£ÄâÄ£¿é´Ó¹¦ÄÜÉÏ¿É·ÖΪÈçϼ¸´óÄ£¿é£º¡¡¡¡¡¡¡¡ÅäÖÃÑ¡Ïî½âÎöºÍ³õʼ»¯Ä£¿é£ºÔÚÄ£ÄâÓ²¼þ¿ªÊ¼ÔËÐÐÇ°£¬¸ù¾ÝÅäÖÃÎļþµÄÑ¡Ï¿ØÖƶÔÄ£ÄâÓ²¼þµÄÅäÖúͳõʼ»¯¡£Ïà¹ØÎļþ°üÀ¨£º ¡¡¡¡arminit.c£º¿ØÖƸ÷ÖÖÄ£ÄâÓ²¼þµÄ³õʼ»¯ ¡¡¡¡skyeye_config.[ch]£º½âÎöÅäÖÃÎļþµÄÑ¡ÏîÐÐ ¡¡¡¡skyeye_options.c£º¸ù¾Ý¸÷ÖÖÓ²¼þµÄÑ¡ÏÍê³É¸÷ÖÖÅäÖà ¡¡¡¡¡¡¡¡´¦ÀíÆ÷Ä£ÄâºêÄ£¿é£ºÖ÷ÒªÍê³ÉÓë´¦ÀíÆ÷Ìåϵ½á¹¹Ïà¹ØµÄÄ£Ä⣬Ëü¿Éϸ·ÖΪ£ºCPUÖ¸ÁîÄ£ÄâÖ´ÐÐÄ£¿é¡¢MMU/CACHEÄ£ÄâÄ£¿é¡¢CoProcessor(ÓÖ³ÆЭ´¦ÀíÆ÷)Ä£ÄâÄ£¿é¡£ ¡¡¡¡CPUÖ¸ÁîÄ£ÄâÖ´ÐÐÄ£¿é£ºÆäÖ÷ÒªÈÎÎñÊÇ£ºµ±Ä£ÄâÓ²¼þ¿ªÊ¼ÔËÐУ¬Íê³ÉÖ¸Áî¶ÁÈ¡£¬Ö¸ÁîÒëÂ룬ָÁîÖ´ÐеŤ×÷£»Èç¹ûCPU״̬·¢ÉúÁ˸ı䣬µ÷ÕûÖ¸ÁîºÍ¸÷ÖּĴæÆ÷Öµ£»ÔÚÖ¸ÁîÖ´ÐÐÇ°£¬µ÷Óÿª·¢°åIOÄ£ÄâÄ£¿éµÄio_do_cycleÇý¶¯Ä£Äâ¸÷ÖÖÍâÉèµÄÐÐΪ¡£Ö÷ÒªµÄÎļþ°üÀ¨£º ¡¡¡¡armemu.[ch]£ºÄ£ÄâCPUµÄ3¼¶Á÷Ë®Ïߣ¬²¢¾ßÌåÖ´Ðи÷ÖÖÖ¸Áî ¡¡¡¡MMU/CACHEÄ£ÄâÄ£¿é£º±¾Ä£¿é·ÖΪÁ½²¿·Ö£ºÓë¾ßÌåCPUÀàÐÍÎ޹صÄMMU/CACHEÄ£Äâ×ÓÄ£¿éºÍÓë¾ßÌåCPUÀàÐÍÏà¹ØµÄÄ£Äâ×ÓÄ£¿é¡£Ö÷ÒªµÄÈÎÎñÊÇ£º¸ù¾ÝÅäÖÃÎļþ½øÐгõʼ»¯£»½øÐÐMMU/CACHEÄ£Ä⣻ִÐÐÓëMMU/CACHEÏà¹ØµÄÖ¸Áî¡£Èç¹ûCPUÖ¸ÁîÄ£ÄâÄ£¿éÖ´ÐжÁд´æ´¢Æ÷µÄ²Ù×÷Ö¸ÁÔòתµ½MMU/CACHEÄ£ÄâÄ£¿é¡£Èç¹ûÄ£ÄâµÄCPUÀàÐͲ»Ö§³ÖMMU(ÈçARM7TDMI)£¬ÔòSkyEye»á¸ù¾Ý½«·ÃÎʵĵØÖ·£¬Ö±½Óתµ½MEMORYÄ£ÄâÄ£¿é»ò¿ª·¢°åIOÄ£ÄâÄ£¿é£»·ñÔòתµ½¾ßÌåCPUÀàÐÍÏà¹ØµÄÄ£Äâ×ÓÄ£¿é½øÐÐMMU/CACHEÄ£Äâ¡£Ö÷ÒªµÄÎļþ°üÀ¨Á½²¿·Ö£º ¡¡¡¡Óë¾ßÌåCPUÀàÐÍÎ޹صÄMMU/CACHEÄ£Äâ×ÓÄ£¿é£º ¡¡¡¡armvirt.c¡¢armmmu.c¡¢mmu/*.[ch] ¡¡¡¡Óë¾ßÌåCPUÀàÐÍÏà¹ØµÄMMU/CACHEÄ£Äâ×ÓÄ£¿é£º¡¡¡¡sa_mmu.[ch]£ºÄ£ÄâstrongarmµÄMMU/CACHE ¡¡¡¡arm7100_mmu.[ch]£ºÄ£Äâarm7[12]0TµÄMMU/CACHE ¡¡¡¡xscale_copro.c£ºÄ£ÄâxscaleµÄMMU/CACHE ¡¡¡¡arm920t_mmu.[ch]£ºÄ£Äâarm920tµÄMMU/CACHE ¡¡¡¡CoProcessor(ÓÖ³ÆЭ´¦ÀíÆ÷)Ä£ÄâÄ£¿é£ºÆäÖ÷ÒªÈÎÎñÊÇ£ºÍê³É¸÷ÖÖЭ´¦ÀíÆ÷µÄ³õʼ»¯£»Ö´Ðи÷ÖÖЭ´¦ÀíÆ÷µÄÖ¸Áʵ¼ÊÉÏMMU/CACHEÄ£ÄâÄ£¿éµÄÒ»²¿·Ö¹¤×÷ÊÇÄ£ÄâARMµÄµÚ15ºÅЭ´¦ÀíÆ÷£¬ËüµÄÖ÷Òª¹¦ÄÜÊÇÅäÖÃMMU/CACHEµÈ¡£Ö÷ÒªµÄÎļþ°üÀ¨£º ¡¡¡¡armcopro.c£º¸ù¾ÝÅäÖÃÐÅÏ¢£¬Íê³É¶ÔARMЭ´¦ÀíÆ÷µÄ³õʼ»¯ÅäÖà ¡¡¡¡xscale_copro.c£ºÄ£ÄâxscaleµÄЭ´¦ÀíÆ÷cp13¡¢cp14¡¢cp15 ¡¡¡¡sa_mmu.[ch]¡¢arm7100_mmu.[ch]£ºÄ£Äâstrongarm¡¢ep7312µÄЭ´¦ÀíÆ÷cp15 ¡¡¡¡arm920t_mmu.[ch]£ºÄ£Äâarm920tµÄЭ´¦ÀíÆ÷cp13¡¢cp14¡¢cp15 ¡¡¡¡IOÄ£ÄâºêÄ£¿é£º±¾Ä£¿é°üº¬¸÷ÖÖÂß¼­ÐÐΪ¸÷ÒìµÄÍâÉèÄ£Ä⣬Ö÷Òª°üÀ¨ÏµÍ³IOÄ£ÄâÄ£¿é¡¢ÍøÂçоƬģÄâÄ£¿é¡¢LCDÄ£ÄâÄ£¿éµÈ¡£ ¡¡¡¡ÏµÍ³IOÄ£ÄâÄ£¿é£º±¾Ä£¿éµÄÖ÷ÒªÈÎÎñ°üÀ¨£º¸ù¾ÝÅäÖÃÎļþ½øÐÐIOºÍÍâÉè³õʼ»¯£»Íê³É¸÷ÖÖÍⲿIOÉ豸µÄÄ£Äâ(ÈçʱÖÓ¼ÆÊýÆ÷ÀÛ¼Ó¡¢²úÉúÖжϡ¢LCDÏÔʾµÈ)£»½øÐи÷ÖÖÌض¨CPUºÍÍâÉèµÄIO¼Ä´æÆ÷¶ÁдµÄÄ£Äâ¡£±¾Ä£¿éÓë¸÷ÖÖ¾ßÌåµÄ¿ª·¢°åºÍCPUÓкܽôÃܵÄÁªÏµ£¬Ö÷ÒªµÄÎļþ°üÀ¨£º ¡¡¡¡armio.[ch]£º½¨Á¢ÔÚ¸÷¸öÌض¨Ä£Äâ×ÓÄ£¿éÉϵijéÏó²ãÄ£¿é ¡¡¡¡skyeye_mach_at91.c£ºÄ£ÄâAtmel AT91X40¿ª·¢°å ¡¡¡¡skyeye_mach_ep7312.c£ºÄ£Äâcirrus ep7312¿ª·¢°å ¡¡¡¡skyeye_mach_pxa.c£ºÄ£Äâintel xscale lubbock¿ª·¢°å ¡¡¡¡skyeye_mach_s3c4510b.c£ºÄ£Äâ»ùÓÚsamsung s3c4510bµÄ¿ª·¢°å ¡¡¡¡skyeye_mach_s3c44b0.c£ºÄ£Äâ»ùÓÚsamsung s3c44b0µÄ¿ª·¢°å ¡¡¡¡skyeye_mach_sa.c£ºÄ£Äâ»ùÓÚintel strongamµÄadsbitsy¿ª·¢°å ¡¡¡¡skyeye_mach_lpc.c£ºÄ£Äâ»ùÓÚphilip lpc2249µÄ¿ª·¢°å ¡¡¡¡skyeye_mach_sharp.c£ºÄ£Äâ»ùÓÚsharp lh7a400µÄ¿ª·¢°å ¡¡¡¡skyeye_mach_at91rm92.c£ºÄ£Äâ»ùÓÚatmel at91rm9200µÄ¿ª·¢°å ¡¡¡¡skyeye_mach_cs89712.c£ºÄ£Äâ»ùÓÚcs89712µÄ¿ª·¢°å ¡¡¡¡ÍøÂçоƬģÄâÄ£¿é£º±¾Ä£¿éÖ÷ÒªÍê³ÉÁ˶Ô8019ASÍøÂçоƬµÄÄ£Ä⹤×÷£¬Ö÷ÒªÈÎÎñ°üÀ¨£ºÄ£Äâ8019ASµÄ¿ØÖÆÂß¼­¡¢8019ASÓë¾ßÌ忪·¢°åIOÄ£ÄâÄ£¿éµÄ½Ó¿Ú¡¢ÐéÄâÍøÂçÊäÈëÊä³ö½Ó¿Ú´¦Àí¡£Ö÷ÒªµÄÎļþ°üÀ¨£º ¡¡¡¡skyeye-ne2k.[ch]£º8019ASµÄÓ²¼þÂß¼­Ä£Äâ ¡¡¡¡skyeye_mach_at91.c£º²¿·ÖÄÚÈÝÍê³É½ÓÊÕÐéÄâÍøÂçÊäÈë´¦ÀíÄ£Äâ ¡¡¡¡skyeye_net_tuntap.c£ºÅäÖÃtuntapÐéÄâÍøÂçµÄ½Ó¿Ú ¡¡¡¡skyeye_net_vnet.c£ºÅäÖÃvnetÐéÄâÍøÂçµÄ½Ó¿Ú ¡¡¡¡vnet.c¡¢if_vnet.h£º¶ÀÁ¢´æÔÚµÄÈí¼þ°ü£¬vnetÐéÄâÍøÂçµÄ¾ßÌåʵÏÖ ¡¡¡¡LCD/ToUChScreenÄ£ÄâÄ£¿é£º±¾Ä£¿éÖ÷ÒªÍê³ÉLCD/TouchScreen¿ØÖÆÂß¼­µÄÄ£Ä⣬ÊÇĿǰΨһÐèÒªGUIÖ§³ÖµÄÄ£¿é£¬ËüµÄÖ÷ÒªÈÎÎñÊÇ£ºÅäÖÃLCD/TouchScreenÓ²¼þÄ£Ä⡢ģÄâLCD/TouchScreen¿ØÖÆÂß¼­¡£ÓйØLCD/TouchScreenÄ£ÄâÏà¹ØµÄÎļþ°üÀ¨£º ¡¡¡¡skyeye_lcd.[ch]£º LCD/TouchScreenÅäÖúÍLCD/TouchScreenÄ£ÄâµÄͨÓÿØÖÆÂß¼­ ¡¡¡¡skyeye_mach_*.c£ºÓ뿪·¢°åÏà¹ØLCD/TouchScreenµÄ¿ØÖÆÂß¼­ºÍÖжϴ¦Àí£¬Ä¿Ç°Ö§³Öep7312ºÍpxa255µÄskyeyeÄ£Äâ¡£ ¡¡¡¡MEMORYÄ£ÄâÄ£¿é£º±¾Ä£¿éÓë¾ßÌåµÄCPUºÍ¿ª·¢°åÎ޹أ¬ËüµÄÖ÷ÒªÈÎÎñ°üÀ¨£º¸ù¾ÝÅäÖÃÎļþ½øÐÐÄÚ´æ³õʼ»¯£¬²¢¼ÓÔØbinary imageÎļþ£»½øÐÐRAM/ROM¶ÁдµÄÄ£Äâ¡£Ö÷ÒªµÄÎļþ°üÀ¨£º ¡¡¡¡armmem.[ch]£ºÖ÷ÒªÍê³ÉRAM/ROM¶ÁдģÄâ ¡¡¡¡¡¡¡¡Èý£® SkyEye¹Ø¼üÊý¾Ý½á¹¹¡¡¡¡SkyEyeÄ¿±êÄ£ÄâÄ£¿éÖУ¬¸÷ÖÖÊý¾Ý½á¹¹ºÜ¶à£¬ÓÃÓÚÄ£ÄâÓ²¼þ×ÜÌå»ú¹¹¶¨ÒåµÄÖ÷ÒªÊý¾Ý½á¹¹ÓÐskyeye_config_tºÍARMul_State¡£°ÑÎÕÕâÁ½¸öÊý¾Ý½á¹¹£¬ÊÇÀí½âÕû¸öskyeyeÄ£ÄâµÄÓ²¼þÌåϵ½á¹¹µÄ¹Ø¼ü£¬ÔÚÕâÁ½¸öÊý¾Ý½á¹¹ÉϽøÐнøÒ»²½Ï¸»¯·ÖÎö£¬Ôò¿É³ä·ÖÁ˽âskyeyeµÄÓ²¼þÌåϵ½á¹¹Ï¸½Ú¡£¡¡¡¡¡¡¡¡1. skyeye_configÊý¾Ý½á¹¹¡¡¡¡skyeye_config_t½á¹¹ÃèÊöÁËSkyEyeÄ£ÄâµÄÕû¸öÓ²¼þµÄ¾²Ì¬ÅäÖã¬ËüµÄ¾ßÌåÄÚÈÝÈçÏ£º¡¡¡¡¡¡¡¡typedef struct {¡¡¡¡¡¡¡¡cpu_config_t *cpu;¡¡¡¡¡¡¡¡machine_config_t *mach;¡¡¡¡¡¡¡¡mem_config_t mem;¡¡¡¡¡¡¡¡net_config_t net[NET_MAXNICNUM_PER_HOST];¡¡¡¡¡¡¡¡uart_config_t uart;¡¡¡¡¡¡¡¡log_config_t log;¡¡¡¡¡¡¡¡ARMWord start_address;¡¡¡¡ ¡¡¡¡ARMword no_lcd;¡¡¡¡¡¡¡¡char config_file[MAX_FILE_NAME];¡¡¡¡} skyeye_config_t;¡¡¡¡¡¡¡¡skyeye_config_t½á¹¹°üº¬ÁËCPUºËÐÄÅäÖÃÐÅÏ¢£­cpu¡¢¿ª·¢°åÅäÖÃÐÅÏ¢£­mach¡¢memory map ÅäÖÃÐÅÏ¢-mem¡¢ÍøÂçоƬºÍÍøÂç»·¾³ÅäÖÃÐÅÏ¢£­net¡¢ÃæÏòÖ÷»úµÄÊäÈëÊä³öÅäÖÃÐÅÏ¢£­uart¡¢²âÊԼǼÊä³öÅäÖÃÐÅÏ¢£­log¡¢Ä£ÄâÖ´ÐÐÆðʼµØÖ·ÅäÖÃÐÅÏ¢£­start_address¡¢ÊÇ·ñÓÐLCD£­no_lcdºÍ¼Ç¼ÎļþÃûÐÅÏ¢£­config_file¡£ÕâÀïÃæÓëÄ£ÄâÓ²¼þ½ôÃÜÏà¹ØµÄÊÇCPUºËÐÄÅäÖÃÐÅÏ¢¡¢¿ª·¢°åÅäÖÃÐÅÏ¢¡¢memory map ÅäÖÃÐÅÏ¢¡¢ÍøÂçоƬºÍÍøÂç»·¾³¡¢LCDÅäÖÃÐÅÏ¢¡£¡¡¡¡¡¡¡¡2. cpu_config_tÊý¾Ý½á¹¹ ¡¡¡¡ÃèÊöCPUºËÐĵĽṹ¶¨ÒåÔÚcpu_config_tÊý¾Ý½á¹¹ÖУ¬¾ßÌåÄÚÈÝÈçÏ£º¡¡¡¡typedef struct {¡¡¡¡¡¡¡¡const char *cpu_arch_name; ¡¡¡¡¡¡¡¡const char *cpu_name; ¡¡¡¡¡¡¡¡ARMword cpu_val;¡¡¡¡¡¡¡¡ARMword cpu_mask; ¡¡¡¡¡¡¡¡ARMword cachetype;¡¡¡¡} cpu_config_t;¡¡¡¡¡¡¡¡Æä¾ßÌåÃèÊö½âÊÍÈçÏ£º¡¡¡¡¡¡¡¡cpu_arch_name£ºÃèÊöÁËarm cpuÌåϵ½á¹¹µÄÃû³Æ£¬¸ù¾ÝARM CPUÄں˵ķ¢Õ¹£¬ÆäÌåϵ½á¹¹ÒѾ­´ÓVersion1·¢Õ¹µ½ÁËVersion5£¬Æä×îа汾ΪVersion5TE¡£¶øIntelÔÚÆä»ù´¡ÉÏÓÖ½øÐÐÁË×Ô¼ºµÄÀ©Õ¹Ìåϵ½á¹¹StrongARM(»ùÓÚARM version4)ºÍXScale(»ùÓÚARM version5)¡£Ä¿Ç°SkyEyeÖ§³Ö"armv3"¡¢"armv4"¡¢"arm5"¡¢"arm5TE"¡¢"xscale"µÄÌåϵ½á¹¹¡£ ¡¡¡¡cpu_name£ºÃèÊöÁ˾ßÌåµÄarm cpuÃû³Æ£¬Èçarm7TDMI¡¢ARM720T¡¢StrongARM1100/1110¡¢XScale PXA2xxµÈ¡£Ä¿Ç°SkyEyeÖ§³Ö"arm710"¡¢"arm7TDMI"¡¢"arm720t"¡¢"sa1100"¡¢"xscale"µÈ¡£ ¡¡¡¡cpu_val£ºÕâÊÇÓÃÀ´±íʾprocess id£¬Ò»°ã¶øÑÔÿÖÖ¾ßÌåµÄARM CPU ¶¼ÓÐÒ»¸öID£¬¸üÏêϸµÄÃèÊö¿É²Î¿¼¡¶ARM Architecture Reference Manual¡·µÄB2-6¡£²Ù×÷ϵͳ¸ù¾ÝÕâ¸öIDÀ´Ê¶±ðcpuµÄÀàÐͲ¢Ö´ÐÐÏà¹ØÅäÖᣠ¡¡¡¡cpu_mask£ºÕâÊÇÓÃÀ´È·¶¨process idµÄÆÁ±ÎλÊý¡£ÓÉÓÚprocess idÖеÄ
[1] [2] ÏÂÒ»Ò³ 

£¨³ö´¦£ºhttp://www.sheup.com£©


ÉÏÒ»Ò³ [1] [2]