· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
u Clinux

uClinux ½ÃÀÛÇϱâ

ÀúÀÚ : David McCullough Mdavidm@snapgear.com
¹ø¿ª : ±è³²Çü Mpastime@ece.uos.ac.kr


¸®´ª½º¿Í ÇÔ²² ÀÓº£µðµå ¿µ¿ªÀÌ ¹ßÀüÇØ °¨¿¡µû¶ó ´õ¿í´õ ¸¹Àº »ç¶÷µéÀÌ ¸®´ª½º¿¡ ´ëÇÑ ½ÇÇè°ú ÀÓº£µðµå ¸®´ª½º°¡ ±×µéÀÇ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¾ó¸¶³ª ÀûÇÕÇÑÁö¸¦ Á¶»çÇÏ°í ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ ÀÌ·¯ÇÑ Á¶»çµéÀº º¸Åë ±×·¯ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡±â À§ÇÑ Å¸°Ù Çϵå¿þ¾î¿Í ºñ½ÁÇÑ Ç÷§Æû¿¡¼­ µ¹¾Æ°¡´Â ¸®´ª½º¸¦ ¾ò±â À§ÇØ ¸¹Àº ½Ã°£ÀûÀÎ ÅõÀÚ°¡ ÇÊ¿äÇÏ´Ù. º¸Åë ÀÌ·¯ÇÑ ½Ã°£ÀûÀÎ ÅõÀÚ´Â »ç¶÷µéÀÌ ´Ù¾çÇÑ ¸®´ª½º ¿É¼ÇµéÀ» »ìÆ캸´Â °ÍÀ» ¾î·Æ°Ô ÇÑ´Ù. ´õ±¸³ª uClinux °¡ »ç¿ëµÉ ¸¸ÇÑ ±íÀº ÀÓº£µðµå ¿µ¿ª¿¡¼­´Â ´õ¿í ±×·¯ÇÒ °ÍÀÌ´Ù. ÀÌ ¹®¼­¿¡¼­´Â uClinux ¿î¿µÃ¼Á¦¸¦ µ¹¸± ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î ÀûÀÎ ¿É¼Ç (¿¡¹Ä·¹ÀÌÅÍ) ¿¡ ´ëÇØ »ìÆ캼 °ÍÀÌ´Ù. uClinux ´Â °¡»ó ¸Þ¸ð¸®³ª MMU (¸Þ¸ð¸® °ü¸® À¯´Ö) ÀÌ ¾ø´Â ȯ°æ¿¡¼­ µ¿ÀÛÇÏ´Â ¸®´ª½º ¹öÀüÀ̸ç ÀϹÝÀûÀ¸·Î ¾ÆÁÖ ÀÛÀº ¾çÀÇ ¸Þ¸ð¸®¿Í ±â¾ï °ø°£À» °¡Áö´Â ±íÀº ÀÓº£µðµå ½Ã½ºÅÛÀ» Ÿ°ÙÀ¸·Î ÇÑ´Ù.

1. ¿Ö 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 ÇÁ·ÎÁ§Æ®´Â ±× ÁÁÀº ¿¹ÀÌ´Ù.

¿¡¹Ä·¹ÀÌÅÍÀÇ °¡»ó ȯ°æ¿¡¼­´Â µð¹ö±ëµµ ¿ª½Ã ÈξÀ °£ÆíÇØÁø´Ù. ½ÇÁ¦ Çϵå¿þ¾î¿¡¼­´Â Á¢±Ù ºÒ°¡´ÉÇÑ µð¹ö±ë Á¤º¸¸¦ Á¢±ÙÇϵµ·Ï CPU ¸¦ ¿ÏÀüÈ÷ Á¦¾îÇÏ´Â Àϵµ °¡´ÉÇÏ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â Æí¸®ÇÏ°Ô ¸Þ¸ð¸® Á¢±ÙÀ̳ª ÄÚµå ½ÇÇà °úÁ¤À» ÃßÀûÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¼ÒÇÁÆ®¿þ¾î³ª ¿î¿µÃ¼Á¦ÀÇ ¼û°ÜÁø ¹ö±×¸¦ ¹ß°ßÇϵµ·Ï µµ¿ÍÁØ´Ù.

¿¡¹Ä·¹ÀÌÅÍ´Â °³¹ßÀÚµéÀÌ ¿©·¯°¡Áö ½ÇÇà ¼º´É¿¡ ´ëÇÑ ¿É¼Ç°ú »ç¿ëÀÚ ÆíÀǼº¿¡ ´ëÇÑ ³ë·ÂÀ» ½ÇÇèÇØ º¼ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ÀÌ·¯ÇÑ Æ¯¼ºÀº Ÿ°Ù Çϵå¿þ¾îÀÇ ¼º´É ¿ä±¸»çÇ×À» °áÁ¤ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ¶ÇÇÑ ¿¡¹Ä·¹ÀÌÅÍ´Â ¸Þ¸ð¸®¿Í Ç÷¡½Ã ¿ä±¸»çÇ×À» °áÁ¤ÇÏ´Â °ÍÀ» µµ¿ÍÁØ´Ù. ÀÌ·¯ÇÑ ¸ðµç »çÇ×µéÀº Ãʱ⠰³¹ß °úÁ¤¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù.

2. ¿¡¹Ä·¹ÀÌÅ͸¦ ¼±ÅÃÇϱâ À§ÇÑ ¿øÄ¢

¿¡¹Ä·¹ÀÌÅ͸¦ ¼±ÅÃÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ »çÇ×µéÀÌ ÀÖ´Ù. ¿ì¼±, ÁÁÀº ¿¡¹Ä·¹ÀÌÅÍ´Â »ç¿ëÇÏ°íÀÚ Çϴ Ÿ°Ù CPU ¸¦ ÃÖ´ëÇÑ ºñ½ÁÇÏ°Ô Èä³»³»¾ß Çϸç, °¡´ÉÇÏ´Ù¸é µ¿ÀÏÇÑ °³¹ß ÅøÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¿¡¹Ä·¹ÀÌÅ͸¦ ÀÌ¿ëÇÑ ÀÛ¾÷°ú ½ÇÁ¦ ÀÛ¾÷°úÀÇ ¿¬°ü¼ºÀ» Å©°Ô Áõ´ë½ÃÄÑ ÁÙ °ÍÀÌ´Ù.

The closer an emulator is to the target hardware the better. ÀÌ°ÍÀº Ÿ°Ù Çϵå¿þ¾î¿¡¼­ ¹ß°ßµÇ´Â Á÷·Ä Æ÷Æ®, ŸÀÌ¸Ó µî°ú °°Àº ´Ù¸¥ ÀåÄ¡µéÀ» Èä³»³»´Â °ÍÀ» ÀǹÌÇÑ´Ù.

µð¹ö±ë ¿É¼Çµµ °í·ÁµÇ¾î¾ß ÇÑ´Ù. ¿ÏÀüÇÑ ¼Ò½º ·¹º§ÀÇ µð¹ö°Å´Â »õ·Î¿î ¿î¿µÃ¼Á¦¸¦ ¹è¿ì´Â µ¿¾È¿¡ ½Ã½ºÅÛ ½ÃÀÛ ¼ø¼­¸¦ ÀÌÇØÇÏ´Â Áß¿äÇÑ ºÎºÐÀÌ µÈ´Ù. ÀÌ °úÁ¤¿¡¼­ ¾òÀº Áö½ÄµéÀº ½ÇÁ¦ Çϵå¿þ¾î¸¦ ÀÌ¿ëÇÏ¿© °³¹ßÇÒ ¶§ µð¹ö±ë ±â¼ú·Î¼­ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¿ÏÀüÇÑ ¼Ò½º ·¹º§ÀÇ µð¹ö±ë ¿É¼ÇÀ» ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â ÀνºÆ®·°¼Ç/ÁÖ¼Ò ÃßÀûÀÌ À¯¿ëÇÏ°Ô »ç¿ëµÇ¸ç ¸¸¾à ´Ù¸¥ ¾î¶² °Íµµ ÀÌ¿ëÇÒ ¼ö ¾ø´Ù¸é ÀϹÝÀûÀ¸·Î ÀÌ ±â´ÉÀÌ ¿¡¹Ä·¹ÀÌÅÍ¿¡ Ãß°¡µÉ ¼ö ÀÖ´Ù.

uClinux ¸¦ µ¹¸± ¼ö ÀÖ´Â ¿¡¹Ä·¹ÀÌÅÍÀÇ °¡Àå Å« ´ÜÁ¡ ÁßÀÇ Çϳª´Â ½ÇÁ¦ ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀÌ ºüÁ®ÀÖ´Ù´Â °ÍÀÌ´Ù. ºñ·Ï Èä³»³½ Á÷·Ä Æ÷Æ®¿¡ PPP ³­ SLIP À» ÀÌ¿ëÇÏ¿© ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇÒ ¼ö´Â ÀÖÁö¸¸ ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀ» °¡Áö´Â °ÍÀÌ º¸´Ù ÁÁÀ» °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ÀÓº£µðµå ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀº Èï¹Ì·Î¿î ÁÖÁ¦ÀÌ¸ç ¿ÀÁ÷ À̸¦ ±¸ÇöÇÒ ½Ã°£À» °¡Áø »ç¶÷À» ÇÊ¿ä·Î ÇÑ´Ù.

3. ¾î¶°ÇÑ °ÍµéÀ» ¼±ÅÃÇÒ ¼ö Àִ°¡

ÀÎÅͳÝÀ» ÅëÇØ ¿¡¹Ä·¹ÀÌÅ͸¦ °Ë»öÇÑ´Ù¸é ¾öû³­ ¾çÀÇ ¸ñ·ÏÀ» ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿©±â¼­´Â ¼ö¸¹Àº °¡´É¼º Áß¿¡¼­ ¿ÀÁ÷ µÎ°¡Áö¿¡ ´ëÇؼ­¸¸ Á»´õ ÀÚ¼¼È÷ ³íÀÇÇϵµ·Ï ÇÑ´Ù. ÀÌ ¿¡¹Ä·¹ÀÌÅ͵éÀº ÀÌ¹Ì uClinux¿¡¼­ Àß Áö¿øµÇ°í ÀÖÀ¸¸ç Ÿ°Ù CPU ÀÇ ÀÓº£µðµå ¿É¼Ç¿¡ ´ëÇØ ÁÁÀº coverage¸¦ Á¦°øÇÑ´Ù.

ù¹ø° ¿¡¹Ä·¹ÀÌÅÍ´Â XcopilotÀ¸·Î, ÃÖÃÊÀÇ uClinux ¹öÀüÀ» ¸¸µé°Ô ÇØ ÁØ ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. XcopilotÀº Unix/X11 »ó¿¡¼­ µ¹¾Æ°¡´Â PalmPilot ¿¡¹Ä·¹ÀÌÅÍÀÌ´Ù. XcopilotÀº ¸ðÅä·Ñ¶ó 68000 (m68k) ¿¡¹Ä·¹À̼ǰú ±×¿¡ ´ëÇÑ Å¸À̸Ó, Á÷·Ä Æ÷Æ®, ÅÍÄ¡ Æеå, LCD È­¸é¿¡ ´ëÇÑ ¿¡¹Ä·¹À̼ÇÀ» Á¦°øÇÑ´Ù.

µÎ¹ø° ¿¡¹Ä·¹ÀÌÅÍ´Â GNU µð¹ö°Å(gdb)ÀÇ ÀϺκÐÀÎ ARMulatorÀÌ´Ù. ÇöÀç ARMulator´Â ºò¿£µð¾È, ¸®Æ²¿£µð¾È, Thumb (16ºñÆ® ÄÚµå) ¿¡¹Ä·¹À̼ÇÀ» Æ÷ÇÔÇÑ ¸¹Àº ARM ¿¡¹Ä·¹À̼ǰú ½Ã¸®¾ó ÄܼÖÀ» Á¦°øÇÑ´Ù.

4. Xcopilot ¾ò±â

XcopilotÀº ¿©·¯ °÷¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. uClinux¿¡¼­ »ç¿ëµÇ´Â XcopilotÀÇ °¡Àå ÃֽŠ¼Ò½º´Â [http]cvs.uclinux.org¿¡ ÀÖ´Â ¹öÀüÀÌ´Ù.

cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs login


Æнº¿öµå ¹¯´Â ºÎºÐ¿¡¼­ ±×³É ¿£Å͸¦ Ä¡°í ´ÙÀ½À» ½ÇÇàÇÑ´Ù.

cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs checkout xcopilot


ȤÀº ¾Æ·¡ÀÇ ½ÎÀÌÆ®¿¡¼­µµ ÃֽŠ¹öÀüÀ» ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù:

XcopilotÀ» ÄÄÆÄÀÏÇÏ´Â °ÍÀº °£´ÜÇÏ´Ù:

./configure
make
make install


¿Ã¹Ù¸¥ ¶óÀ̺귯¸®°¡ Á¦°øµÇ¾ú´Ù¸é ½ÇÇà ÁغñµÈ XcopilotÀ» ¾òÀ» ¼ö ÀÖ´Ù.

XcopilotÀ» À§ÇÑ uClinux Ä¿³Î°ú ½ÇÇà ÆÄÀϵéÀ» ºôµåÇϱâ À§ÇØ m68k-elf-tools °¡ ÇÊ¿äÇÏ´Ù. À̵éÀº ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù:

¹Ì¸® ÄÄÆÄÀÏµÈ ÀÌÁø ÆÄÀÏÀ» ¼³Ä¡Çϰųª ¼Ò½º·Î ºÎÅÍ ÅøÀ» ºôµåÇÒ »ç¿ëÀÚµéÀº Á¦°øµÈ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

5. GDB/ARMulator ¾ò±â

uClinux¿¡¼­ »ç¿ëµÇ´Â GDB/ARMulator´Â ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù:

ÀÌ ÆäÀÌÁö¿¡´Â uClinux¿Í ARMulator¿¡¼­ »ç¿ëµÇ´Â gdb¸¦ ºôµåÇϱâ À§ÇØ ÇÊ¿äÇÑ ¸ðµç Á¤º¸°¡ Æ÷ÇԵǾî ÀÖ´Ù. ½ÉÁö¾î´Â ARMulator »ó¿¡¼­ ½ÇÇàµÇ´Â ¹Ì¸® ÄÄÆÄÀÏµÈ uClinux ÀÌÁø ÆÄÀϵµ ¾òÀ» ¼ö ÀÖ´Ù.

GDB/ARMulator¸¦ À§ÇÑ uClinux Ä¿³Î°ú ½ÇÇà ÆÄÀϵéÀ» ºôµåÇϱâ À§ÇØ arm-elf-tools °¡ ÇÊ¿äÇÏ´Ù. À̵éÀº ´ÙÀ½ ½ÎÀÌÆ®¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù:

¸¶Âù°¡Áö·Î, ¹Ì¸® ÄÄÆÄÀÏµÈ ÀÌÁø ÆÄÀÏÀ» ¼³Ä¡Çϰųª ¼Ò½º·Î ºÎÅÍ ÅøÀ» ºôµåÇÒ »ç¿ëÀÚµéÀº Á¦°øµÈ ¹®¼­¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

6. uClinux ¼Ò½º ¾ò±â/ºôµåÇϱâ

uClinux ¼Ò½º·Î ºÎÅÍ ½ÃÀÛÇÏ´Â Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº ´ÙÀ½ »çÀÌÆ®¿¡¼­ ¹èÆ÷ÇÏ´Â ¿ÏÀüÇÑ uClinux ¼Ò½º¸¦ ¾ò´Â °ÍÀÌ´Ù:

ÀÌ°ÍÀº Ä¿³Î ¹öÀü 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 ¼³Á¤ÀÇ ¿¹ÀÌ´Ù.

¼³Á¤ÀÌ ³¡³ª¸é ¼Ò½º Æ®¸®¸¦ ¼¼ÆÃÇÑ´Ù:

make dep
make


ÀÌ °úÁ¤ÀÌ ³¡³ª¸é, ¼±ÅÃµÈ ¿¡¹Ä·¹ÀÌÅÍÀÇ »õ·Î ºôµåµÈ ½ÇÇà À̹ÌÁö°¡ »ý¼ºµÈ´Ù.

7. Xcopilot»ó¿¡¼­ uClinux ½ÇÇàÇϱâ

Xcopilot»ó¿¡¼­ uClinux¸¦ ½ÇÇàÇϱâ À§Çؼ­´Â ¾à°£ÀÇ ¼³Á¤ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. uClinux-dist ¼Ò½º Æ®¸®ÀÇ ·çÆ® µð·ºÅ丮¿¡¼­ ´ÙÀ½À» ½ÇÇàÇ϶ó.

mkdir ~/.xcopilot
ln -s `pwd`/images/pilot.rom ~/.xcopilot


ÀÌÁ¦ XcopilotÀÌ ½ÇÇàÇÒ Áغñ°¡ µÇ¾ú´Ù. ´Ü¼øÈ÷ xcopilot À̶ó°í ÀÔ·ÂÇϸé XcopilotÀÌ ½ÇÇàµÇ¸ç ÀÚµ¿ÀûÀ¸·Î ¿¡¹Ä·¹ÀÌÅÍ»óÀÇ uClinux¸¦ ½ÇÇà½ÃŲ´Ù. ´ÙÀ½Àº ¿¹»óµÇ´Â ½ºÅ©¸° ¼¦À» º¸¿©ÁØ´Ù:

Å͹̳ΠÀ©µµ¿ì ³»ÀÇ ½Ã¸®¾ó ÄÜ¼Ö »ó¿¡¼­ ¸í·ÉÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. /dev, /bin, /etc µîÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» »ìÆ캸ÀÚ. ÀÌ°ÍÀº ¸¶Ä¡ ¸Å¿ì Ãà¼ÒµÈ Linux/Unix ¹öÀüó·³ º¸ÀÏ °ÍÀÌ´Ù.

XcopilotÀº ¿©·¯°¡Áö µð¹ö±ë ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù. °¡Àå ´Ü¼øÇÑ °ÍÀº ³»ÀåµÈ ±âº» µð¹ö°ÅÀÌ´Ù. ´ÙÀ½ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© µð¹ö°Å¿¡ ¿¬°áÇÑ´Ù:

telnet localhost 2000


¿©±â¿¡¼­ help ¸¦ ÀÔ·ÂÇÏ¿© ÀÌ¿ë°¡´ÉÇÑ µð¹ö°ÅÀÇ ¸í·ÉµéÀ» º¼ ¼ö ÀÖ´Ù. ¿É¼Ç¿¡´Â CPU¸¦ ½ÃÀÛ/Á¾·á ½ÃÅ°°Å³ª ½ÇÇà ÃßÀû°úÁ¤À» ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â ¿É¼ÇµîÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¸í·É¾î ÃßÀûÀº ¿ÀÁ÷ jump, branch, call °ú °°ÀÌ ºñÁ¤»óÀûÀ¸·Î program counter °ªÀ» ¹Ù²Ù´Â °æ¿ì¿¡¸¸ ÃßÀûÇϵµ·Ï °£·«È­µÇ¾î ÀÖ´Ù.

8. 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

9. ¿ä¾à

¿¡¹Ä·¹ÀÌÅÍ°¡ ½ÇÁ¦ Çϵå¿þ¾î¸¦ ´ëüÇÒ ¼ö´Â ¾øÁö¸¸, °³¹ß °úÁ¤¿¡¼­ Áß¿äÇÑ ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ´Ù. ¿¡¹Ä·¹ÀÌÅÍ´Â ±³À°À̳ª ½ÇÇè °úÁ¤¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÇ¸ç, ¶ÇÇÑ »õ·Î¿î ¿î¿µÃ¼Á¦ÀÇ ±â´ÉÀ» °³¹ßÇÏ°í µð¹ö±ëÇϴµ¥¿¡µµ µµ¿òÀ» ÁØ´Ù.

¿©±â¿¡¼­ ¾ð±ÞÇÑ ¿¡¹Ä·¹ÀÌÅ͵éÀº »ç¿ëÀÚ°¡ uClinux¿Í ±× ÀÀ¿ë ÇÁ·Î±×·¥À» ±íÀÌ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ±×Àú ÇнÀ°úÁ¤¿¡¼­¸¸ »ç¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ½ÇÁ¦ Àåºñ¸¦ ±¸ÃàÇÒ ¶§µµ ½ÇÁ¦ÀûÀÎ ±âÃʸ¦ Á¦°øÇÑ´Ù.

¿¡¹Ä·¹ÀÌÅÍ´Â °³¹ßÀÚµéÀÌ »ç¿ëÇÏ´Â µµ±¸µéÀÇ Áß¿äÇÑ ºÎºÐÀ¸·Î Áï°¢ÀûÀÎ ÇÊ¿ä¿¡ µû¶ó ¾î´À ¶§³ª È£ÃâµÉ ¼ö ÀÖ´Ù.

10. ´Ù¸¥ ¿¡¹Ä·¹ÀÌÅ͵é

´Ù¾çÇÑ ¼öÁØÀ¸·Î uClinux¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¸¹Àº ´Ù¸¥ ¿¡¹Ä·¹ÀÌÅ͵éÀÌ Á¸ÀçÇÑ´Ù.

[http]LEON Sparc Emulator (TSIM)
uClinux-dist ¼Ò½º »ó¿¡¼­ ¸¹Àº Áö¿øÀÌ Æ÷ÇԵǾî ÀÖ´Ù.
[http]NEC v850e
²Ï Áö¿øÀÌ Àß µÇ´Â ¿¡¹Ä·¹ÀÌÅÍ ÁßÀÇ ÇϳªÀÌ´Ù. gdb ±â¹ÝÀÇ ½Ã¹Ä·¹ÀÌÅÍ´Â »ç¿ëÇϱ⠽±°í uClinux-dist ¼Ò½º¿¡¼­ Áö¿øµÈ´Ù.
[http]ColdFire Emulator
uClinux-dist »ó¿¡¼­ Arnewsh/5206 À̹ÌÁö¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
[http]SWARM (Software ARM)
ÀÌ ¿¡¹Ä·¹ÀÌÅÍ¿¡ ´ëÇÑ ±âº»ÀûÀÎ Áö¿øÀº uClinux-dist¿¡ Æ÷ÇԵǾî ÀÖ´Ù.





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-09-27 13:27:32
Processing time 0.0018 sec