'''''uClinux ½ÃÀÛÇϱâ''''' ÀúÀÚ : David McCullough [[Mailto(davidm@snapgear.com)]][[BR]] ¹ø¿ª : ±è³²Çü [[Mailto(pastime@ece.uos.ac.kr)]] [[TableOfContents]] ----- ¸®´ª½º¿Í ÇÔ²² ÀÓº£µðµå ¿µ¿ªÀÌ ¹ßÀüÇØ °¨¿¡µû¶ó ´õ¿í´õ ¸¹Àº »ç¶÷µéÀÌ ¸®´ª½º¿¡ ´ëÇÑ ½ÇÇè°ú ÀÓº£µðµå ¸®´ª½º°¡ ±×µéÀÇ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¾ó¸¶³ª ÀûÇÕÇÑÁö¸¦ Á¶»çÇÏ°í ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ ÀÌ·¯ÇÑ Á¶»çµéÀº º¸Åë ±×·¯ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡±â À§ÇÑ Å¸°Ù Çϵå¿þ¾î¿Í ºñ½ÁÇÑ Ç÷§Æû¿¡¼­ µ¹¾Æ°¡´Â ¸®´ª½º¸¦ ¾ò±â À§ÇØ ¸¹Àº ½Ã°£ÀûÀÎ ÅõÀÚ°¡ ÇÊ¿äÇÏ´Ù. º¸Åë ÀÌ·¯ÇÑ ½Ã°£ÀûÀÎ ÅõÀÚ´Â »ç¶÷µéÀÌ ´Ù¾çÇÑ ¸®´ª½º ¿É¼ÇµéÀ» »ìÆ캸´Â °ÍÀ» ¾î·Æ°Ô ÇÑ´Ù. ´õ±¸³ª uClinux °¡ »ç¿ëµÉ ¸¸ÇÑ ±íÀº ÀÓº£µðµå ¿µ¿ª¿¡¼­´Â ´õ¿í ±×·¯ÇÒ °ÍÀÌ´Ù. ÀÌ ¹®¼­¿¡¼­´Â uClinux ¿î¿µÃ¼Á¦¸¦ µ¹¸± ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î ÀûÀÎ ¿É¼Ç (¿¡¹Ä·¹ÀÌÅÍ) ¿¡ ´ëÇØ »ìÆ캼 °ÍÀÌ´Ù. uClinux ´Â °¡»ó ¸Þ¸ð¸®³ª MMU (¸Þ¸ð¸® °ü¸® À¯´Ö) ÀÌ ¾ø´Â ȯ°æ¿¡¼­ µ¿ÀÛÇÏ´Â ¸®´ª½º ¹öÀüÀ̸ç ÀϹÝÀûÀ¸·Î ¾ÆÁÖ ÀÛÀº ¾çÀÇ ¸Þ¸ð¸®¿Í ±â¾ï °ø°£À» °¡Áö´Â ±íÀº ÀÓº£µðµå ½Ã½ºÅÛÀ» Ÿ°ÙÀ¸·Î ÇÑ´Ù. === ¿Ö uClinux ¸¦ µ¹¸®±â À§ÇØ ¿¡¹Ä·¹ÀÌÅ͸¦ »ç¿ëÇϴ°¡? === ¿©±â¼­ ³íÀÇÇÏ´Â ¿¡¹Ä·¹ÀÌÅÍ¿¡ ´ëÇÏ¿© Áß¿äÇÑ »çÇ× ÁßÀÇ Çϳª´Â ±×°ÍµéÀÌ ¹«·á¶ó´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ Æ¯¼ºÀº »ç¶÷µéÀÌ ¸î ¹øÀÇ ´Ù¿î·Îµå ¸¸À¸·Î uClinux ¸¦ ½ÃÀÛÇÏ°í Æò°¡ÇÒ ¼ö ÀÖ°Ô Çϸç, ´ÙÀ½ ¹ø ÇÁ·ÎÁ§Æ®¿¡¼­ ¸®´ª½º¸¦ »ç¿ëÇϵµ·Ï ÃßõÇϱâ Àü¿¡ »ç¿ëÀÚ°¡ Åø°ú ȯ°æ¿¡ Ä£¼÷ÇØ Áú ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. There is nothing worse than finding out the development tools are not up to scratch some time after committing to a delivery date. °¡´ÉÇÏ´Ù¸é, ¿øÇϴ Ÿ°Ù CPU ¿Í °¡Àå ºñ½ÁÇÑ ¿¡¹Ä·¹ÀÌÅ͸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº °³¹ß ÅøÀ» Å×½ºÆ® ÇÏ´Â ÀÌÁ¡°ú ¸Þ¸ð¸®¿Í Ç÷¡½Ã ROM ÀÌ ¿ä±¸ÇÏ´Â Çϵå¿þ¾î ÀûÀÎ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â ÀÌÁ¡À» ÁØ´Ù. ƯÁ¤ÇÑ È¯°æ¿¡¼­´Â ½ÇÁ¦ Çϵå¿þ¾î¸¦ ÅëÇØ °³¹ßÇϱâ Àü¿¡ ¿¡¹Ä·¹ÀÌÅ͸¦ ÀÌ¿ëÇÏ¿© °³¹ßÀ» ½ÃÀÛÇÒ ¼öµµ ÀÖ´Ù. TSIM ¿¡¹Ä·¹ÀÌÅ͸¦ »ç¿ëÇÏ¿© ´ëºÎºÐÀÇ uClinux ÀÛ¾÷À» ¼öÇàÇÑ [http://leox.org/ Leox ÇÁ·ÎÁ§Æ®]´Â ±× ÁÁÀº ¿¹ÀÌ´Ù. ¿¡¹Ä·¹ÀÌÅÍÀÇ °¡»ó ȯ°æ¿¡¼­´Â µð¹ö±ëµµ ¿ª½Ã ÈξÀ °£ÆíÇØÁø´Ù. ½ÇÁ¦ Çϵå¿þ¾î¿¡¼­´Â Á¢±Ù ºÒ°¡´ÉÇÑ µð¹ö±ë Á¤º¸¸¦ Á¢±ÙÇϵµ·Ï CPU ¸¦ ¿ÏÀüÈ÷ Á¦¾îÇÏ´Â Àϵµ °¡´ÉÇÏ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â Æí¸®ÇÏ°Ô ¸Þ¸ð¸® Á¢±ÙÀ̳ª ÄÚµå ½ÇÇà °úÁ¤À» ÃßÀûÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¼ÒÇÁÆ®¿þ¾î³ª ¿î¿µÃ¼Á¦ÀÇ ¼û°ÜÁø ¹ö±×¸¦ ¹ß°ßÇϵµ·Ï µµ¿ÍÁØ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â °³¹ßÀÚµéÀÌ ¿©·¯°¡Áö ½ÇÇà ¼º´É¿¡ ´ëÇÑ ¿É¼Ç°ú »ç¿ëÀÚ ÆíÀǼº¿¡ ´ëÇÑ ³ë·ÂÀ» ½ÇÇèÇØ º¼ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ÀÌ·¯ÇÑ Æ¯¼ºÀº Ÿ°Ù Çϵå¿þ¾îÀÇ ¼º´É ¿ä±¸»çÇ×À» °áÁ¤ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ¶ÇÇÑ ¿¡¹Ä·¹ÀÌÅÍ´Â ¸Þ¸ð¸®¿Í Ç÷¡½Ã ¿ä±¸»çÇ×À» °áÁ¤ÇÏ´Â °ÍÀ» µµ¿ÍÁØ´Ù. ÀÌ·¯ÇÑ ¸ðµç »çÇ×µéÀº Ãʱ⠰³¹ß °úÁ¤¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. === ¿¡¹Ä·¹ÀÌÅ͸¦ ¼±ÅÃÇϱâ À§ÇÑ ¿øÄ¢ === ¿¡¹Ä·¹ÀÌÅ͸¦ ¼±ÅÃÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ »çÇ×µéÀÌ ÀÖ´Ù. ¿ì¼±, ÁÁÀº ¿¡¹Ä·¹ÀÌÅÍ´Â »ç¿ëÇÏ°íÀÚ Çϴ Ÿ°Ù CPU ¸¦ ÃÖ´ëÇÑ ºñ½ÁÇÏ°Ô Èä³»³»¾ß Çϸç, °¡´ÉÇÏ´Ù¸é µ¿ÀÏÇÑ °³¹ß ÅøÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¿¡¹Ä·¹ÀÌÅ͸¦ ÀÌ¿ëÇÑ ÀÛ¾÷°ú ½ÇÁ¦ ÀÛ¾÷°úÀÇ ¿¬°ü¼ºÀ» Å©°Ô Áõ´ë½ÃÄÑ ÁÙ °ÍÀÌ´Ù. The closer an emulator is to the target hardware the better. ÀÌ°ÍÀº Ÿ°Ù Çϵå¿þ¾î¿¡¼­ ¹ß°ßµÇ´Â Á÷·Ä Æ÷Æ®, ŸÀÌ¸Ó µî°ú °°Àº ´Ù¸¥ ÀåÄ¡µéÀ» Èä³»³»´Â °ÍÀ» ÀǹÌÇÑ´Ù. µð¹ö±ë ¿É¼Çµµ °í·ÁµÇ¾î¾ß ÇÑ´Ù. ¿ÏÀüÇÑ ¼Ò½º ·¹º§ÀÇ µð¹ö°Å´Â »õ·Î¿î ¿î¿µÃ¼Á¦¸¦ ¹è¿ì´Â µ¿¾È¿¡ ½Ã½ºÅÛ ½ÃÀÛ ¼ø¼­¸¦ ÀÌÇØÇÏ´Â Áß¿äÇÑ ºÎºÐÀÌ µÈ´Ù. ÀÌ °úÁ¤¿¡¼­ ¾òÀº Áö½ÄµéÀº ½ÇÁ¦ Çϵå¿þ¾î¸¦ ÀÌ¿ëÇÏ¿© °³¹ßÇÒ ¶§ µð¹ö±ë ±â¼ú·Î¼­ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¿ÏÀüÇÑ ¼Ò½º ·¹º§ÀÇ µð¹ö±ë ¿É¼ÇÀ» ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â ÀνºÆ®·°¼Ç/ÁÖ¼Ò ÃßÀûÀÌ À¯¿ëÇÏ°Ô »ç¿ëµÇ¸ç ¸¸¾à ´Ù¸¥ ¾î¶² °Íµµ ÀÌ¿ëÇÒ ¼ö ¾ø´Ù¸é ÀϹÝÀûÀ¸·Î ÀÌ ±â´ÉÀÌ ¿¡¹Ä·¹ÀÌÅÍ¿¡ Ãß°¡µÉ ¼ö ÀÖ´Ù. uClinux ¸¦ µ¹¸± ¼ö ÀÖ´Â ¿¡¹Ä·¹ÀÌÅÍÀÇ °¡Àå Å« ´ÜÁ¡ ÁßÀÇ Çϳª´Â ½ÇÁ¦ ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀÌ ºüÁ®ÀÖ´Ù´Â °ÍÀÌ´Ù. ºñ·Ï Èä³»³½ Á÷·Ä Æ÷Æ®¿¡ PPP ³­ SLIP À» ÀÌ¿ëÇÏ¿© ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇÒ ¼ö´Â ÀÖÁö¸¸ ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀ» °¡Áö´Â °ÍÀÌ º¸´Ù ÁÁÀ» °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ÀÓº£µðµå ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀº Èï¹Ì·Î¿î ÁÖÁ¦ÀÌ¸ç ¿ÀÁ÷ À̸¦ ±¸ÇöÇÒ ½Ã°£À» °¡Áø »ç¶÷À» ÇÊ¿ä·Î ÇÑ´Ù. === ¾î¶°ÇÑ °ÍµéÀ» ¼±ÅÃÇÒ ¼ö Àִ°¡ === ÀÎÅͳÝÀ» ÅëÇØ ¿¡¹Ä·¹ÀÌÅ͸¦ °Ë»öÇÑ´Ù¸é ¾öû³­ ¾çÀÇ ¸ñ·ÏÀ» ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿©±â¼­´Â ¼ö¸¹Àº °¡´É¼º Áß¿¡¼­ ¿ÀÁ÷ µÎ°¡Áö¿¡ ´ëÇؼ­¸¸ Á»´õ ÀÚ¼¼È÷ ³íÀÇÇϵµ·Ï ÇÑ´Ù. ÀÌ ¿¡¹Ä·¹ÀÌÅ͵éÀº ÀÌ¹Ì uClinux¿¡¼­ Àß Áö¿øµÇ°í ÀÖÀ¸¸ç Ÿ°Ù CPU ÀÇ ÀÓº£µðµå ¿É¼Ç¿¡ ´ëÇØ ÁÁÀº coverage¸¦ Á¦°øÇÑ´Ù. ù¹ø° ¿¡¹Ä·¹ÀÌÅÍ´Â XcopilotÀ¸·Î, ÃÖÃÊÀÇ uClinux ¹öÀüÀ» ¸¸µé°Ô ÇØ ÁØ ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. XcopilotÀº Unix/X11 »ó¿¡¼­ µ¹¾Æ°¡´Â PalmPilot ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. XcopilotÀº ¸ðÅä·Ñ¶ó 68000 (m68k) ¿¡¹Ä·¹À̼ǰú ±×¿¡ ´ëÇÑ Å¸À̸Ó, Á÷·Ä Æ÷Æ®, ÅÍÄ¡ Æеå, LCD È­¸é¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀ» Á¦°øÇÑ´Ù. µÎ¹ø° ¿¡¹Ä·¹ÀÌÅÍ´Â GNU µð¹ö°Å(gdb)ÀÇ ÀϺκÐÀÎ ARMulatorÀÌ´Ù. ÇöÀç ARMulator´Â ºò¿£µð¾È, ¸®Æ²¿£µð¾È, Thumb (16ºñÆ® ÄÚµå) ¿¡¹Ä·¹À̼ÇÀ» Æ÷ÇÔÇÑ ¸¹Àº ARM ¿¡¹Ä·¹À̼ǰú ½Ã¸®¾ó ÄܼÖÀ» Á¦°øÇÑ´Ù. === Xcopilot ¾ò±â === XcopilotÀº ¿©·¯ °÷¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. uClinux¿¡¼­ »ç¿ëµÇ´Â XcopilotÀÇ °¡Àå ÃֽŠ¼Ò½º´Â [http://cvs.uclinux.org cvs.uclinux.org]¿¡ ÀÖ´Â ¹öÀüÀÌ´Ù. {{{ cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs login}}} Æнº¿öµå ¹¯´Â ºÎºÐ¿¡¼­ ±×³É ¿£Å͸¦ Ä¡°í ´ÙÀ½À» ½ÇÇàÇÑ´Ù. {{{ cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs checkout xcopilot}}} ȤÀº ¾Æ·¡ÀÇ ½ÎÀÌÆ®¿¡¼­µµ ÃֽŠ¹öÀüÀ» ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù: [http://www.uclinux.org/pub/uClinux/utilities/xcopilot-0.6.6-uc0.tar.gz] XcopilotÀ» ÄÄÆÄÀÏÇÏ´Â °ÍÀº °£´ÜÇÏ´Ù: {{{ ./configure make make install}}} ¿Ã¹Ù¸¥ ¶óÀ̺귯¸®°¡ Á¦°øµÇ¾ú´Ù¸é ½ÇÇà ÁغñµÈ XcopilotÀ» ¾òÀ» ¼ö ÀÖ´Ù. XcopilotÀ» À§ÇÑ uClinux Ä¿³Î°ú ½ÇÇà ÆÄÀϵéÀ» ºôµåÇϱâ À§ÇØ m68k-elf-tools °¡ ÇÊ¿äÇÏ´Ù. À̵éÀº ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù: [http://www.uclinux.org/pub/uClinux/m68k-elf-tools/] ¹Ì¸® ÄÄÆÄÀÏµÈ ÀÌÁø ÆÄÀÏÀ» ¼³Ä¡Çϰųª ¼Ò½º·Î ºÎÅÍ ÅøÀ» ºôµåÇÒ »ç¿ëÀÚµéÀº Á¦°øµÈ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. === GDB/ARMulator ¾ò±â === uClinux¿¡¼­ »ç¿ëµÇ´Â GDB/ARMulator´Â ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù: [http://www.uclinux.org/pub/uClinux/utilities/armulator/] ÀÌ ÆäÀÌÁö¿¡´Â uClinux¿Í ARMulator¿¡¼­ »ç¿ëµÇ´Â gdb¸¦ ºôµåÇϱâ À§ÇØ ÇÊ¿äÇÑ ¸ðµç Á¤º¸°¡ Æ÷ÇԵǾî ÀÖ´Ù. ½ÉÁö¾î´Â ARMulator »ó¿¡¼­ ½ÇÇàµÇ´Â ¹Ì¸® ÄÄÆÄÀÏµÈ uClinux ÀÌÁø ÆÄÀϵµ ¾òÀ» ¼ö ÀÖ´Ù. GDB/ARMulator¸¦ À§ÇÑ uClinux Ä¿³Î°ú ½ÇÇà ÆÄÀϵéÀ» ºôµåÇϱâ À§ÇØ arm-elf-tools °¡ ÇÊ¿äÇÏ´Ù. À̵éÀº ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù: [http://www.uclinux.org/pub/uClinux/arm-elf-tools/] ¸¶Âù°¡Áö·Î, ¹Ì¸® ÄÄÆÄÀÏµÈ ÀÌÁø ÆÄÀÏÀ» ¼³Ä¡Çϰųª ¼Ò½º·Î ºÎÅÍ ÅøÀ» ºôµåÇÒ »ç¿ëÀÚµéÀº Á¦°øµÈ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. === uClinux ¼Ò½º ¾ò±â/ºôµåÇϱâ === uClinux ¼Ò½º·Î ºÎÅÍ ½ÃÀÛÇÏ´Â Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº ´ÙÀ½ »çÀÌÆ®¿¡¼­ ¹èÆ÷ÇÏ´Â ¿ÏÀüÇÑ uClinux ¼Ò½º¸¦ ¾ò´Â °ÍÀÌ´Ù: [http://www.uclinux.org/pub/uClinux/dist/] ÀÌ°ÍÀº Ä¿³Î ¹öÀü 2.0.39¿Í 2.4.17À» µÑ´Ù Æ÷ÇÔÇϸç uClinux·Î Æ÷ÆÃµÈ ¼±º°µÈ ÀÀ¿ë ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ´Â ²Ï Å« ÆÄÀÏÀÌ´Ù. ¶ÇÇÑ ¹Ì¸® ¼³Á¤µÈ ¼³Á¤ ÆÄÀÏÀ» Á¦°øÇÔÀ¸·Î ¼³Á¤ ¸Þ´º¿¡¼­ Xcopilot°ú GDB/ARMulator¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. °¢°¢ÀÇ ¿¡¹Ä·¹ÀÌÅÍ¿¡ ´ëÇÑ ºôµå ¸ÞÄ«´ÏÁòÀº ±âº»ÀûÀ¸·Î µ¿ÀÏÇϸç, ´ÜÁö ¼±ÅÃÇÑ Å¸°Ù¸¸ÀÌ ´Ù¸¦ »ÓÀÌ´Ù. ¸ÕÀú uClinux-dist Ÿ¸£º¼ÀÇ ¾ÐÃàÀ» Ǭ´Ù: {{{ gunzip < uClinux-dist-20020701.tar.gz | tar xzf - cd uClinux-dist make xconfig}}} ''Target Platform Selection'' À» ¼±ÅÃÇÏ°í, Ÿ°ÙÀ» ¼±ÅÃÇÑ´Ù. Xcopilot Ÿ°ÙÀ̶ó¸é ''3com/Xcopilot'' À», ARMulator Ÿ°ÙÀ» ¿øÇÑ´Ù¸é ''GDB/ARMulator'' ¸¦ ¼±ÅÃÇÑ´Ù. ¿øÇÏ´Â Ä¿³Î ¹öÀüÀ» ¼±ÅÃÇÏ°í C ¶óÀ̺귯¸®·Î ÀÌ¿ëÇÒ uC-lib ¸¦ ¼±ÅÃÇÑ´Ù. ±×¸®°í´Â ÀúÀåÇÏ°í Á¾·áÇÏ¸é µÈ´Ù. ´ÙÀ½Àº Xcopilot¿¡ ´ëÇÑ Xconfig ¼³Á¤ÀÇ ¿¹ÀÌ´Ù. http://www.cyberguard.com/snapgear/images/xconfig.jpg ¼³Á¤ÀÌ ³¡³ª¸é ¼Ò½º Æ®¸®¸¦ ¼¼ÆÃÇÑ´Ù: {{{ make dep make}}} ÀÌ °úÁ¤ÀÌ ³¡³ª¸é, ¼±ÅÃµÈ ¿¡¹Ä·¹ÀÌÅÍÀÇ »õ·Î ºôµåµÈ ½ÇÇà À̹ÌÁö°¡ »ý¼ºµÈ´Ù. === Xcopilot»ó¿¡¼­ uClinux ½ÇÇàÇϱâ === Xcopilot»ó¿¡¼­ uClinux¸¦ ½ÇÇàÇϱâ À§Çؼ­´Â ¾à°£ÀÇ ¼³Á¤ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. uClinux-dist ¼Ò½º Æ®¸®ÀÇ ·çÆ® µð·ºÅ丮¿¡¼­ ´ÙÀ½À» ½ÇÇàÇ϶ó. {{{ mkdir ~/.xcopilot ln -s `pwd`/images/pilot.rom ~/.xcopilot}}} ÀÌÁ¦ XcopilotÀÌ ½ÇÇàÇÒ Áغñ°¡ µÇ¾ú´Ù. ´Ü¼øÈ÷ `xcopilot` À̶ó°í ÀÔ·ÂÇϸé XcopilotÀÌ ½ÇÇàµÇ¸ç ÀÚµ¿ÀûÀ¸·Î ¿¡¹Ä·¹ÀÌÅÍ»óÀÇ uClinux¸¦ ½ÇÇà½ÃŲ´Ù. ´ÙÀ½Àº ¿¹»óµÇ´Â ½ºÅ©¸° ¼¦À» º¸¿©ÁØ´Ù: http://www.cyberguard.com/snapgear/images/xcopilot.jpg Å͹̳ΠÀ©µµ¿ì ³»ÀÇ ½Ã¸®¾ó ÄÜ¼Ö »ó¿¡¼­ ¸í·ÉÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. `/dev, /bin, /etc` µîÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» »ìÆ캸ÀÚ. ÀÌ°ÍÀº ¸¶Ä¡ ¸Å¿ì Ãà¼ÒµÈ Linux/Unix ¹öÀüó·³ º¸ÀÏ °ÍÀÌ´Ù. XcopilotÀº ¿©·¯°¡Áö µð¹ö±ë ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù. °¡Àå ´Ü¼øÇÑ °ÍÀº ³»ÀåµÈ ±âº» µð¹ö°ÅÀÌ´Ù. ´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© µð¹ö°Å¿¡ ¿¬°áÇÑ´Ù: {{{ telnet localhost 2000}}} ¿©±â¿¡¼­ `help` ¸¦ ÀÔ·ÂÇÏ¿© ÀÌ¿ë°¡´ÉÇÑ µð¹ö°ÅÀÇ ¸í·ÉµéÀ» º¼ ¼ö ÀÖ´Ù. ¿É¼Ç¿¡´Â CPU¸¦ ½ÃÀÛ/Á¾·á ½ÃÅ°°Å³ª ½ÇÇà ÃßÀû°úÁ¤À» ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â ¿É¼ÇµîÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¸í·É¾î ÃßÀûÀº ¿ÀÁ÷ `jump, branch, call` °ú °°ÀÌ ºñÁ¤»óÀûÀ¸·Î program counter °ªÀ» ¹Ù²Ù´Â °æ¿ì¿¡¸¸ ÃßÀûÇϵµ·Ï °£·«È­µÇ¾î ÀÖ´Ù. === GDB/ARMulator »ó¿¡¼­ uClinux ½ÇÇàÇϱâ === uClinux-dist ¼Ò½º Æ®¸®ÀÇ ·çÆ® µð·ºÅ丮¿¡¼­ ´ÙÀ½À» ½ÇÇàÇ϶ó. {{{ ln -s images/romfs.img boot.rom}}} ÀÌÁ¦ ÀûÀýÇÑ Ä¿³Î¿¡ ´ëÇØ arm-elf-gdb¸¦ ½ÇÇàÇÑ´Ù. ´ÙÀ½Àº ±× ¿¹Á¦ÀÌ´Ù: {{{ arm-elf-gdb -n linux-2.*.x/linux GNU gdb 5.0 Copyright 2000 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-elf"... (gdb) target sim Loaded ROM boot.rom Loaded ROM boot.rom Loaded ROM boot.rom Loaded ROM boot.rom Connected to the simulator. (gdb) load Loading section .text, size 0x77b84 vma 0x2000000 Loading section .rodata, size 0x8ddb vma 0x2077b84 Loading section .data, size 0x8fc8 vma 0x2080a60 Start address 0x2000000 Transfer rate: 4507960 bits in <1 sec. (gdb) run}}} uClinux´Â ÀÌÁ¦ ½© ÇÁ·ÒÇÁÆ®±îÁöÀÇ ºÎÆà ÀýÂ÷¸¦ µû¶ó°¥ °ÍÀÌ´Ù. ¾Æ¹« °÷¿¡¼­³ª `^C` ¸¦ ÀÔ·ÂÇÏ¿© µð¹ö°Å¸¦ ÁßÁöÇÏ°í, breakpoint¸¦ ¼³Á¤Çϰųª ¸Þ¸ð¸®¿Í º¯¼ö °ª µîÀ» Á¶»çÇØ º¼ ¼ö ÀÖ´Ù. Ä¿³ÎÀÇ Ãʱ⠺ÎÆ® ÀýÂ÷¸¦ µû¶ó°¡¸ç (step) Á¶»çÇØ º¸°í ½Í´Ù¸é `start_kernel` ÇÔ¼ö¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ¿¹¸¦ µé¸é: {{{ ... (gdb) break start_kernel (gdb) run}}} === ¿ä¾à === ¿¡¹Ä·¹ÀÌÅÍ°¡ ½ÇÁ¦ Çϵå¿þ¾î¸¦ ´ëüÇÒ ¼ö´Â ¾øÁö¸¸, °³¹ß °úÁ¤¿¡¼­ Áß¿äÇÑ ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â ±³À°À̳ª ½ÇÇè °úÁ¤¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÇ¸ç, ¶ÇÇÑ »õ·Î¿î ¿î¿µÃ¼Á¦ÀÇ ±â´ÉÀ» °³¹ßÇÏ°í µð¹ö±ëÇϴµ¥¿¡µµ µµ¿òÀ» ÁØ´Ù. ¿©±â¿¡¼­ ¾ð±ÞÇÑ ¿¡¹Ä·¹ÀÌÅ͵éÀº »ç¿ëÀÚ°¡ uClinux¿Í ±× ÀÀ¿ë ÇÁ·Î±×·¥À» ±íÀÌ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ±×Àú ÇнÀ°úÁ¤¿¡¼­¸¸ »ç¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ½ÇÁ¦ Àåºñ¸¦ ±¸ÃàÇÒ ¶§µµ ½ÇÁ¦ÀûÀÎ ±âÃʸ¦ Á¦°øÇÑ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â °³¹ßÀÚµéÀÌ »ç¿ëÇÏ´Â µµ±¸µéÀÇ Áß¿äÇÑ ºÎºÐÀ¸·Î Áï°¢ÀûÀÎ ÇÊ¿ä¿¡ µû¶ó ¾î´À ¶§³ª È£ÃâµÉ ¼ö ÀÖ´Ù. === ´Ù¸¥ ¿¡¹Ä·¹ÀÌÅ͵é === ´Ù¾çÇÑ ¼öÁØÀ¸·Î uClinux¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¸¹Àº ´Ù¸¥ ¿¡¹Ä·¹ÀÌÅ͵éÀÌ Á¸ÀçÇÑ´Ù. [http://www.leox.org/ LEON Sparc Emulator (TSIM)] uClinux-dist ¼Ò½º »ó¿¡¼­ ¸¹Àº Áö¿øÀÌ Æ÷ÇԵǾî ÀÖ´Ù. [http://www.ic.nec.co.jp/micro/uclinux/eng/ NEC v850e] ²Ï Áö¿øÀÌ Àß µÇ´Â ¿¡¹Ä·¹ÀÌÅÍ ÁßÀÇ ÇϳªÀÌ´Ù. gdb ±â¹ÝÀÇ ½Ã¹Ä·¹ÀÌÅÍ´Â »ç¿ëÇϱ⠽±°í uClinux-dist ¼Ò½º¿¡¼­ Áö¿øµÈ´Ù. [http://www.lightbox.org/coldfire/ ColdFire Emulator] uClinux-dist »ó¿¡¼­ Arnewsh/5206 À̹ÌÁö¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. [http://www.dcs.gla.ac.uk/~michael/phd/swarm.html SWARM (Software ARM)] ÀÌ ¿¡¹Ä·¹ÀÌÅÍ¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö¿øÀº uClinux-dist¿¡ Æ÷ÇԵǾî ÀÖ´Ù. ---- CategoryDevelopment