ÉîÈëÃ÷È·SMDK2410ƽ̨µÄÈý´®¿Ú¼Ü¹¹ÓëÓ²¼þ»ù´¡
×÷ΪǶÈëʽϵͳ¿ª·¢Öеij£ÇàÊ÷£¬SMDK2410¿ª·¢°åÒÀ¸½ÆäǿʢµÄÓ²¼þÐÔÄܺ͸»ºñµÄ½Ó¿Ú³ÉΪÐí¶àǶÈëʽ¹¤³ÌʦµÄÊ×ѡƽ̨¡£ÔÚÏÖʵÏîÄ¿ÖУ¬´®¿ÚͨѶÊÎÑÝ×ÅÅþÁ¬Íâ½çµÄÖ÷Òª½ÇÉ«£¬ÓÈÆäÊÇÔÚ¹¤Òµ¿ØÖÆ¡¢Êý¾ÝÊÕÂÞÉõÖÁµ÷ÊÔÐÅÏ¢´«Êä·½Ãæ¡£Ä¬ÈϵĴ®¿ÚÇý¶¯·×Æç¶¨Íêȫ֪×ãÌØ¶¨ÏîÄ¿µÄÐèÇ󣬺ñÈÐèÒª¶à´®¿ÚÍ¬Ê±ÊÆÇ顢ͨѶËÙÂÊÓÅ»¯»òÌØÊâÐÒéÖ§³Ö£¬Õâ¾ÍÐèÒªÎÒÃǶÔÇý¶¯¾ÙÐÐÐ޸ĺÍÓÅ»¯¡£
Ã÷È·SMDK2410ÉϵĴ®¿Ú¼Ü¹¹ÖÁ¹ØÖ÷Òª¡£¸Ãƽ̨ʹÓõÄÈýÐÇS3C2410´¦Öóͷ£Æ÷ÄÚÖø»ºñµÄUART½Ó¿Ú£¬Í¨³£°üÀ¨¶à¸öUART¶Ë¿Ú£¬ºÃ±ÈUART0¡¢UART1¡¢UART2µÈ¡£ÕâЩ¶Ë¿Ú¶ÔÓ¦Ó²¼þÌõÀíµÄ¼Ä´æÆ÷Ⱥ£¬ÅäºÏоƬÊÖ²áÖеļĴæÆ÷Ó³Éäͼ£¬¿ÉÒÔ×ÊÖúÎÒÃǶ¨Î»Ó²¼þ¼¶±ðµÄ²Ù×÷µã¡£
ÿ¸öUART¶Ë¿ÚµÄ½¹µã°üÀ¨Æä´«Êä¿ØÖÆ¼Ä´æÆ÷¡¢×´Ì¬¼Ä´æÆ÷¡¢²¨ÌØÂʱ¬·¢Æ÷µÈÄ£¿é£¬ÕÆÎÕÕâЩϸ½ÚÓÐÖúÓÚÇý¶¯µÄ¸Äд¡£
ÔÚǶÈëʽLinuxÇéÐÎÏ£¬UARTÇý¶¯Í¨³£ÒÔ×Ö·û×°±¸µÄÐÎʽ±£´æ£¬/dev/ttySx´ú±í²î±ðµÄ´®¿Ú¶Ë¿Ú¡£ÕâЩÇý¶¯ÓÉÄÚºËÌṩ£¬µ«Ä¬ÈÏÉèÖÃ·×Æç¶¨ÇкÏËùÓÐÏîÄ¿ÐèÇó¡£ÀýÈ磬¿ÉÄÜÐèÒªÖ§³Ö¶à¸ö´®¿ÚͬʱÔËÐУ¬»òʵÏÖÌØ¶¨µÄͨѶÐÒé¡¢Êý¾Ý¹ýÂËÉõÖÁÖÐÖ¹ÖÎÀí¡£ÖªµÀÁËÓ²¼þ»ù´¡ºó£¬¾Í¿ÉÒÔ×îÏȶ¨ÖÆÇý¶¯¡£
ÐÞ¸ÄSMDK2410Èý´®¿ÚÇý¶¯µÄµÚÒ»²½£¬ÊÇÕÒµ½ÄÚºËÔ´ÂëÖÐÓëUARTÏà¹ØµÄÇý¶¯½¹µãÎļþ¡£Í¨³£ÕâЩÎļþÔÚdrivers/serialĿ¼Ï£¬ÀýÈçs3c2410_serial.c»òÀàËÆÎļþ¡£ÔÚÔ´ÂëÖУ¬Äã»á¿´µ½ÖÖÖÖ³õʼ»¯º¯Êý¡¢ÖÐÖ¹´¦Öóͷ£³ÌÐòÒÔ¼°´®¿Ú²Ù×÷£¨È翪Æô¡¢¹Ø±Õ¡¢¶ÁдµÈ£©ÊµÏÖ¡£
ÀýÈ磬ΪÁËÖ§³ÖÈý´®¿ÚÍ¬Ê±ÊÆÇ飬ÐèҪȷ±£Çý¶¯Äܹ»×¼È·Çø·Ö²î±ð¶Ë¿ÚµÄÖÐÖ¹ÇëÇó£¬Ò²¾ÍÊÇ˵£¬ÐèҪΪÿ¸ö¶Ë¿Ú½ç˵×ÔÁ¦µÄÖÐÖ¹´¦Öóͷ£³ÌÐò¡£µ÷½â²¨ÌØÂÊ»òÊý¾Ýλ²ÎÊý£¬¿ÉÄÜÉæ¼°Ð޸ļĴæÆ÷ÉèÖôúÂ룬ȷ±£ÔÚÓ²¼þ²ãÃæ×¼È·ÉèÖÃͨѶ²ÎÊý¡£
ÁíÒ»¸ö³£ÓõÄÐÞ¸ÄÆ«ÏòÊÇʵÏÖ×Ô½ç˵ͨѶÐÒé¡£ÀýÈ磬ÔÚÔÓеĻù´¡ÉÏÌí¼ÓÈí¼þÁ÷¿Ø¡¢Ö¡Í¬²½»òÊý¾Ý°üÆÊÎö¹¦Ð§¡£ÕâÐèÒªÔÚÇý¶¯²ãÃæ²¶»ñÊý¾Ý£¬È»ºó¾ÙÐд¦Öóͷ££¬ÉõÖÁ¿ÉÒÔ¼ÓÈë¹ýÂ˺ͼÓÃܹ¦Ð§£¬ÒÔÖª×ãÏêϸÏîÄ¿µÄÇå¾²ºÍÐÔÄÜÒªÇó¡£
³ýÁËÓ²¼þÏà¹ØµÄ¿ª·¢¼¼ÇÉÍ⣬µ÷ÊÔÒ²ÊǺÜÒªº¦µÄ»·½Ú¡£½ÓÄɹ¤¾ßÈç´®¿ÚÆÊÎöÒÇ¡¢Âß¼ÆÊÎöÒÇ»òÕß´®¿Úµ÷ÊÔÈí¼þ£¬ÄÜ×ÊÖúÈ·ÈÏÓ²¼þͨѶµÄ׼ȷÐÔ¡£½èÖúLinuxµÄdmesgÏÂÁî¡¢cat/proc/tty/driver/serialµÈ×ÊÔ´£¬Ò²ÄÜ»ñÈ¡Çý¶¯µÄ״̬ÐÅÏ¢¡£
ÕÆÎÕSMDK2410µÄÓ²¼þ¼Ü¹¹»ù´¡£¬Ã÷È·LinuxÏ´®¿ÚÇý¶¯µÄÊÂÇéÔÀí£¬ÔÙÁ¬ÏµÏÖʵÐèÇó£¬ÓÐÌõ²»ÎɵؾÙÐÐÇý¶¯Ð޸ĺ͵÷ÊÔ£¬²Å»ªÈ·±£´®¿ÚͨѶµÄÎȹÌÐԺ͸ßЧÐÔ¡£²¢ÇÒ£¬ÕâÒ»Àú³ÌÒ²ÊÇÿ¸öǶÈëʽ¿ª·¢ÕßÌáÉýÊÖÒÕ¡¢ÉîÈëÃ÷È·Ó²¼þÓëÈí¼þ½»»¥µÄÃû¹óÂÄÀú¡£
ÔÚÏÂÒ»½Ú£¬ÎÒÃǽ«ÏêϸÏÈÈÝÏêϸµÄÇý¶¯Ô´ÂëÐÞ¸ÄÁ÷³Ì£¬°üÀ¨³£Óü¼ÇÉ¡¢µ÷ÊÔÂÄÀúÒÔ¼°ÊµÕ½°¸Àý£¬×ÊÖúÄã¿ìËÙʵÏÖ¶à´®¿ÚÖ§³ÖÒÔ¼°ÐÔÄÜÓÅ»¯£¬²»ÔÙΪͨѶÎÊÌâ°ÃÄÕ¡£
¾ÓɶÔÓ²¼þ¼Ü¹¹ºÍÇý¶¯»ù´¡µÄÏàʶ£¬ÏÖÔÚÊÇÏÖʵÏÂÊÖÐÞ¸ÄÇý¶¯´úÂëµÄ½×¶Î¡£Õâ¸öÀú³ÌÉæ¼°Ô´Â붨λ¡¢²ÎÊýµ÷½â¡¢¹¦Ð§À©Õ¹£¬ÒÔ¼°µ÷ÊÔÑéÖ¤¡£ÒÔϽ«·Ö°ì·¨Õö¿ª£¬°ïÄãÀíÇå˼Ð÷£¬È·±£Ã¿¸ö»·½Ú¶¼ÖÜÈ«ÁýÕÖ¡£
µÚÒ»²½£º×¼±¸ÇéÐκÍÔ´ÂëÈ·±£ÄãÓµÓÐSMDK2410¶ÔÓ¦µÄ׼ȷÄÚºËÔ´Âë°æ±¾£¬½¨ÒéʹÓùٷ½ÌṩµÄÔ´Âë°ü£¬×èÖ¹°æ±¾²»¼æÈݵÄÎÊÌâ¡£´î½¨½»Ö¯±àÒëÇéÐΣ¬ÉèÖúù¤¾ßÁ´£¬Àû±ãºóÐø±àÒëºÍµ÷ÊÔ¡£½«Ô´Âëµ¼ÈëÊìϤµÄIDE»òÎı¾±à¼Æ÷ÖУ¬ÀýÈçVSCode»òVim£¬Îª±ä»»×öºÃ×¼±¸¡£
µÚ¶þ²½£º¶¨Î»Çý¶¯½¹µãÎļþÔÚÇý¶¯Ä¿Â¼ÖУ¬ÕÒµ½ÓëUARTÏà¹ØµÄÎļþ¡£ÒÔARMǶÈëʽLinuxµÄµä·¶Ô´ÂëΪÀý£¬Ö÷Òª¹Ø×¢s3c2410serial.c»òÀàËÆÎļþ¡£ÔÚÔ´ÂëÖУ¬ÓÈÆäÒª¹Ø×¢¡°Ó²¼þ³õʼ»¯º¯Êý¡±¡¢ÖÐÖ¹´¦Öóͷ£º¯Êý£¨ºÃ±Ès3c2410serial_interrupt()£©ºÍ×Ö·û×°±¸²Ù×÷½á¹¹Ì壨ÌᳫÊý¾Ý¶ÁдµÄ²Ù×÷º¯Êý£©¡£
µÚÈý²½£ºÀ©Õ¹¶à´®¿ÚÖ§³ÖÐí¶à»ù´¡Çý¶¯Ö»Ö§³Ö¼òµ¥´®¿Ú£¬ÈôÒªÖ§³ÖÈý´®¿Ú»ò¶à¶Ë¿Ú£¬Í¬Ê±ÆôÓöà¸ö¶Ë¿Ú£¬Ö÷񻃾¼°ÒÔϼ¸¸ö·½Ã棺
ÉèÖöà¸ö×°±¸½Úµã£¬Èç/dev/ttyS0¡¢/dev/ttyS1¡¢/dev/ttyS2¡£ÔÚÇý¶¯³õʼ»¯Öнç˵¶à¸öUART½á¹¹ÌåʵÀý£¬Ã¿¸ö¶ÔÓ¦²î±ð¶Ë¿Ú¡£ÎªÃ¿¸ö¶Ë¿Ú·ÖÅɲî±ðµÄÖÐÖ¹ÇëÇóÏߣ¨IRQ£©£¬ÈôÊÇÓ²¼þÖ§³ÖµÄ»°¡£ÔÚÖÐÖ¹´¦Öóͷ£º¯ÊýÖÐÌí¼ÓÅжÏÂß¼£¬Çø·Ö²î±ð¶Ë¿ÚµÄÖÐÖ¹ÊÂÎñ¡£
ͨ³£ÔÚ×°±¸Ê÷£¨DeviceTree£©»ò°å¼¶³õʼ»¯ÎļþÖнç˵¶Ë¿Ú²ÎÊý£¬È·±£Ã¿¸ö´®¿ÚµÄÓ²¼þÉèÖÃ׼ȷ±»¼ÓÔØµ½Çý¶¯ÖС£
µÚËIJ½£ºÓÅ»¯Í¨Ñ¶²ÎÊý¹æ¸ñƾ֤ÏêϸµÄÓ¦ÓÃÐèÇ󣬵÷½â²¨ÌØÂÊ¡¢Êý¾Ýλ¡¢×èֹλµÈ²ÎÊý¡£ÕâÉæ¼°ÐÞ¸ÄÓ²¼þ¼Ä´æÆ÷µÄдÈë´úÂ룬ºÃ±ÈÉèÖò¨ÌØÂʱ¬·¢Æ÷¼Ä´æÆ÷¡£¶Ô²î±ð¶Ë¿Ú£¬¿ÉÒÔÉ趨²î±ðµÄ²ÎÊý£¬ÒÔʵÏÖ¶àͨѶËÙÂʹ²´æ¡£¹ØÓÚ²¨ÌØÂʵĶ¯Ì¬µ÷½â£¬¿ÉÔÚÇý¶¯ÖÐʵÏÖ¿ØÖƽӿڣ¬Í¨¹ýioctl»òsysfsÎļþϵͳ¾ÙÐж¯Ì¬ÉèÖá£
µÚÎå²½£º¼ÓÈë¸ß¼¶¹¦Ð§ºÍÐÒéÖ§³ÖËæ×ÅÓ²¼þ»ù´¡ÍêÉÆ£¬¿ÉÒÔÔÚÇý¶¯²ãÃæ¼ÓÈëÌØÊâÐÒéÖ§³Ö£¬ºÃ±È£º
Á÷¿Ø»úÖÆ£¨Ó²¼þ»òÈí¼þ£©Êý¾Ý°üʶ±ðÓë¹ýÂËУÑéºÍ¼ì²â¡¢ÖØ´«»úÖÆÅþÁ¬×´Ì¬¼ì²â¡¢Òì³£´¦Öóͷ£
ÕâЩ¹¦Ð§µÄ¼ÓÈëÒªÇó¶ÔÖÐÖ¹²Ù×÷¡¢»º³åÇøÖÎÀí¡¢ÓÐ״̬»úÉè¼Æ¼°ÄÚ´æÖÎÀíÓÐÒ»¶¨ÕÆÎÕ¡£ºÏÀíµÄÉè¼Æ¿É¼«´óÌá¸ßͨѶ¿É¿¿ÐÔÓëЧÂÊ¡£
µÚÁù²½£ºµ÷ÊÔÑéÖ¤ÓëÐÔÄÜÓÅ»¯µ÷ÊÔÀú³ÌÖУ¬³£Óù¤¾ß°üÀ¨Âß¼ÆÊÎöÒÇ¡¢´®¿Úµ÷ÊÔ¹¤¾ß£¨ÈçSecureCRT¡¢Putty£©ÒÔ¼°¿ªÔ´µ÷ÊÔÈí¼þ¡£½¨ÒéÖð²½ÑéÖ¤£º
Çý¶¯¼ÓÔØ£¨dmesg£©ÐÅÏ¢ÊÇ·ñÓйýʧ»òÖÒÑÔ¡£¸÷´®¿ÚÊÇ·ñÕý³£³õʼ»¯£¬²¨ÌØÂÊÊÇ·ñÆ¥Åä¡£·¢ËͺÍÎüÊÕÊý¾ÝÊÇ·ñ׼ȷ£¬ÊÇ·ñ±£´æ¶ª°ü¡¢ÑÓ³ÙµÈÎÊÌâ¡£Ôڸ߸ºÔØÇéÐÎÏ£¬Çý¶¯µÄÏìÓ¦ÊÇ·ñʵʱ¡¢Îȹ̡£
ÈôÊÇ·¢Ã÷ÎÊÌ⣬»Øµ½Ô´ÂëÖмì²éÖÐÖ¹´¦Öóͷ£¡¢»º³åÇøÖÎÀí»ò¼Ä´æÆ÷ÉèÖ᣺ÏÀíµ÷½â»º³åÇø¾Þϸ£¬ÓÅ»¯ÖÐÖ¹ÏìӦʱ¼ä£¬Ò²ÄÜÏÔÖøÌáÉýÐÔÄÜ¡£
ͨ¹ýÏÖʵÏîÄ¿²âÊÔ£¬ÓÅ»¯Í¨Ñ¶ÐæÅºÍÓ²¼þÉèÖã¬Ê¹¶à´®¿ÚÔËÐеÃÔ½·¢Á÷ͨ¡¢Îȹ̡£ÕÆÎÕÕâЩÂÄÀú£¬ÄÜÈÃÄãÔÚδÀ´µÄǶÈëʽ¿ª·¢ÖÐÓ¦¶ÔÖÖÖÖÖØ´ó³¡¾°¡£
×ܽ᣺ÐÞ¸ÄSMDK2410Èý´®¿ÚÇý¶¯£¬´ÓÓ²¼þÃ÷È·µ½Ô´ÂëÆÊÎö£¬ÔÙµ½¶à¶Ë¿ÚÖ§³ÖºÍÐÒéÀ©Õ¹£¬Ã¿Ò»²½¶¼ÊÇÌáÉýǶÈëʽϵͳͨѶÄÜÁ¦µÄÃû¹óʱ»ú¡£µ÷ÊÔ¡¢ÓÅ»¯¡¢Êµ¼ù£¬Ðγɱջ·£¬Ò»Ö±»ýÀÛÂÄÀú£¬×îÖÕÄã»áÓÀ´Ò»¸öÔ½·¢ÎÞа¿É¿¿µÄ´®¿ÚͨѶÇéÐΡ£ÏëÒª¸üÉîÈëµÄ×ÊÁÏ»òÔ´ÂëʾÀý£¬¿ÉÒÔ»á¼û¡°¡SMDK2410Èý´®¿ÚÇý¶¯Ð޻ڸĵÄÎļþ-ǶÈëʽ¿ª·¢Ïà¹Ø×ÊÁÏÏÂÔØ¡¡±×¨Çø£¬»ñÈ¡µÚÒ»ÊÖµÄÊÖÒÕ×ÊÔ´ºÍʵսÂÄÀú¡£