¾È³çÇϼ¼¿ä....avr c ÄÄÆÄÀÏ·¯ÀÇ ¼Ò°³ÀÔ´Ï´Ù...¸¹À̵é ÀÌ¿ëÇÏ¿© º¸¼¼¿ä....ÄÄÆÄÀÏ·¯ÀÇ °ÆÁ¤ÀÌ ¸¹À̵ǽô ºÐµéÀº.....
1) GCCÀÇ ¼Ò°³
GCC(ÀÌÇÏ gcc)´Â FSF(Free Software Foundation : ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î Àç´Ü)¿¡¼ ÃßÁøÁßÀÎ GNU(GNU is Not Unix) ÇÁ·ÎÁ§Æ®ÀÇ ÀÏȯÀ¸·Î °³¹ßµÈ °ø°³ C ¾ð¾î ÄÄÆÄÀÏ·¯ÀÌ´Ù. °ø°³ÀÓ¿¡µµ ºÒ±¸ÇÏ°í gcc´Â ¸Å¿ì ¶Ù¾î³ ¼º´É°ú ¾ÈÁ¤¼ºÀ» °®Ãß°í ÀÖÀ¸¸ç, Àü¼¼°èÀÇ ÇØÄ¿µé¿¡ ÀÇÇؼ º¸¿Ï ¹ßÀüµÇ°í ÀÖ´Ù. ÀÌ·± ÀÌÀ¯·Î gcc´Â ¸Å¿ì ´Ù¾çÇÑ À¯´Ð½º ½Ã½ºÅÛ¿¡ À̽ĵǾî ÀÖÀ¸¸ç, ƯÈ÷ Linux ½Ã½ºÅÛÀÇ °æ¿ì ±âº»ÀûÀ¸·Î gcc¸¦ ½Ã½ºÅÛ¿ë C ÄÄÆÄÀÏ·¯·Î äÅÃÇÏ°í ÀÖ´Ù.
2) GCCÀÇ Æ¯Â¡
gccÀÇ ¿©·¯ Ư¡µé °¡¿îµ¥ Çϳª´Â À̽ļº(portability)ÀÌ´Ù. ÀÌ´Â º»·¡ GNU ÇÁ·ÎÁ§Æ®°¡ ¿©·¯ À¯´Ð½º ½Ã½ºÅÛ Áö¿øÀ» ¸ñÇ¥·Î »ï°í ÀÖÀ¸¸ç gcc ¿ª½Ã ±×·¯ÇÑ Æ¯¼ºÀ» ¹°·Á ¹Þ¾Ò±â ¶§¹®ÀÌ´Ù. ¾Æ¸¶µµ gcc´Â °¡Àå ¸¹Àº Çϵå¿þ¾î Ç÷§ÆûÀ» Áö¿øÇÏ´Â C ÄÄÆÄÀÏ·¯°¡ ¾Æ´Ñ°¡ ½Í´Ù(½ÇÁ¦·Î Áö±Ý±îÁö ³ª¿Â °ÅÀÇ ¸ðµç CPU¸¦ Áö¿øÇÑ´Ù). ÀÌ·¯ÇÑ Æ¯Â¡À¸·Î gcc´Â ¿©·¯ Ç÷§Æû¿¡ ´ëÇÏ¿© °ÅÀÇ µ¿ÀÏÇÑ °³¹ßȯ°æ(development environment)°ú ¼Ò½º ÄÚµå ȣȯ¼º(source code compatibility)À» Á¦°øÇÑ´Ù. °³¹ßÀÚ¿¡°Ô ÀÖ¾î¼ °³¹ßȯ°æÀº ¸Å¿ì Áß¿äÇÏ´Ù. ƯÈ÷ CPU°¡ ¹Ù²ñ¿¡ µû¶ó¼ º¯ÈÇÏ´Â °³¹ßȯ°æÀº °³¹ßÀÚ¿¡°Ô ¸Å¿ì ±ä ÀûÀÀ ½Ã°£À» ¼ÒºñÇÏ°Ô ¸¸µç´Ù. gccÀÇ °æ¿ì´Â Ç÷§Æû¿¡ »ó°ü¾øÀÌ ´ëºÎºÐÀÇ ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ¼Ò½º ÄÚµå ȣȯ¼º ¿ª½Ã Áß¿äÇѵ¥, ¿¹¸¦ µé¸é x86 °è¿ÀÇ ½Ã½ºÅÛ¿¡¼³ª PowerPC ¶Ç´Â SPARC °è¿ÀÇ ½Ã½ºÅÛ¿¡¼ ¾à°£ÀÇ ¼Ò½º ÄÚµå ¼öÁ¤¸¸À¸·Îµµ ȣȯµÇ´Â ÇÁ·Î±×·¥ °³¹ßÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ ¿ª½Ã °³¹ßÀÚ°¡ ´Ù¸¥ Ç÷§ÆûÀ» Áö¿øÇϱâ À§ÇØ ¼Ò½º Äڵ带 ÀçÀÛ¼ºÇÏ´Â ½Ã°£À» ÁÙ¿©Áֱ⠶§¹®¿¡ ¸Å¿ì Áß¿äÇÑ Á¡ÀÌ´Ù. ÀÌ¿Ü¿¡µµ ¸¹Àº ¶Ù¾î³ Ư¡µéÀÌ ÀÖ´Ù. ÀÚ¼¼ÇÑ »çÇ×µéÀº gcc homepage(gcc.gnu.org)¸¦ Âü°íÇϱ⠹ٶõ´Ù.
3) Å©·Î½º ÄÄÆÄÀÏ·¯(Cross Compiler)
Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ ÀÌÇØÇϱâ Àü¿¡ ¸ÕÀú È£½ºÆ® Ç÷§Æû(host platform)°ú Ÿ°Ù Ç÷§Æû(target platform)À̶ó´Â ¿ë¾î¸¦ ¸ÕÀú ÀÌÇØÇØ¾ß ÇÑ´Ù. Ÿ°Ù Ç÷§ÆûÀº Å©·Î½º ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÏ´Â ¿ÀºêÁ§Æ® Äڵ尡 ½ÇÁ¦·Î ¼öÇàµÇ´Â ½Ã½ºÅÛÀ», È£½ºÆ® Ç÷§ÆûÀº Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ ¼öÇàÇÏ´Â ½Ã½ºÅÛÀ» ÀÏÄ´´Ù. ¿¹¸¦ µé¾î ÆæƼ¾ö ÄÄÇ»ÅÍ »ó¿¡¼ 8051 C ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇÏ¿© 8051¿ë ¿ÀºêÁ§Æ® Äڵ带 »ý¼ºÇÏ°í ±× °á°ú Äڵ带 ·Ò¿¡ ´ã¾Æ¼ 8051¿¡¼ ¼öÇàÇÏ¿´À» °æ¿ì¿¡, ÆæƼ¾ö ÄÄÇ»Åʹ ȣ½ºÆ® Ç÷§ÆûÀÌ µÇ´Â °ÍÀÌ°í, 8051Àº Ÿ°Ù Ç÷§ÆûÀÌ µÈ´Ù. ¿©±â¿¡¼ Å©·Î½º(Cross-±³Â÷ÇÏ´Ù. °¡·ÎÁö¸£´Ù. Áï, Ç÷§ÆûÀ» °¡·ÎÁú·¯¼ ÄÄÆÄÀÏÇÏ´Ù.)¶ó´Â ¸»ÀÌ »ý±ä °ÍÀÌ´Ù. µû¶ó¼ È£½ºÆ® Ç÷§Æû°ú Ÿ°Ù Ç÷§ÆûÀÌ °°Àº °æ¿ì´Â Å©·Î½º¶ó´Â ¸»ÀÌ ºÙÁö ¾Ê´Â´Ù. ÀÌ °æ¿ìÀÇ ´ëÇ¥ÀûÀÎ ¿¹´Â x86 ȣȯ ÄÄÇ»ÅÍ¿¡¼ Boland C ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇؼ 386EX(x86°ú ȣȯµÇ´Â ÀÓº£µðµå¿ë ÇÁ·Î¼¼¼)¿ë ¿ÀºêÁ§Æ® Äڵ带 »ý¼ºÇÏ´Â °æ¿ìÀÌ´Ù.
4) AVR-GCC¿Í Å©·Î½º ÄÄÆÄÀÏ·¯
¾Õ¿¡¼ ¸»ÇßµíÀÌ gcc´Â ¶Ù¾î³ À̽ļºÀ» °¡Áö°í ÀÖ´Ù. ÀÌ·¯ÇÑ Æ¯Â¡À» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ gcc´Â Ç÷§Æû¿¡ ÀÇÁ¸ÀûÀÎ ºÎºÐ°ú Ç÷§Æû¿¡ ºñÀÇÁ¸ÀûÀÎ ºÎºÐÀ¸·Î ¸ðµâȵǾî ÀÖÀ¸¸ç, °¢ ¸ðµâÀº ¼·Î ƯÁ¤ÇÑ ±ÔÄ¢À¸·Î ÀÎÅÍÆäÀ̽ºµÇ¾î ÀÖ´Ù. µû¶ó¼ Ç÷§Æû¿¡ ÀÇÁ¸ÀûÀÎ ºÎºÐ¸¸ ¼öÁ¤ÇÏ°í ´Ù¸¥ ¸ðµâ°ú ÀÎÅÍÆäÀ̽º¸¦ ¸ÂÃß¾î ÁÖ¸é »õ·Î¿î Ç÷§ÆûÀ» Áö¿øÇÏ´Â gcc¸¦ Á¦ÀÛÇÒ ¼ö°¡ ÀÖ´Ù. »ç½Ç AVR-GCC(ÀÌÇÏ avr-gcc)µµ ±×·± ¹æ½ÄÀ¸·Î ¸¸µé¾îÁ³´Ù.
gcc°¡ Å©·Î½º ÄÄÆÄÀÏ·¯·Î½á µ¿ÀÛÇϱâ À§Çؼ´Â ¸î °³ÀÇ µµ¿òÀÌ ´õ ÇÊ¿äÇÏ´Ù. »ç½Ç gcc´Â ´ÜÁö C¾ð¾î¸¦ ¾î¼Àºí·¯·Î º¯È¯ÇÏ´Â ±â´ÉÀ» °®´Â´Ù. µû¶ó¼ º¯È¯µÈ ¾î¼Àºí·¯¸¦ ¿ÀºêÁ§Æ® ÄÚµå·Î º¯È¯ ½ÃÄÑÁÖ´Â ¾î¼Àºí·¯(assembler) ±×¸®°í ¿©·¯ °³ÀÇ ¿ÀºêÁ§Æ® Äڵ带 Çϳª·Î ¿ÀºêÁ§Æ® ÄÚµå·Î º´ÇÕÇÏ´Â ¸µÄ¿(linker)°¡ ÇÊ¿äÇÏ´Ù. È£½ºÆ® Ç÷§Æû°ú Ÿ°Ù Ç÷§ÆûÀÌ °°Àº °æ¿ì´Â ¾î¼Àºí·¯¿Í ¸µÄ¿¸¦ µû·Î Á¦ÀÛÇÒ ÇÊ¿ä°¡ ¾øÀÌ È£½ºÆ® Ç÷§ÆûÀÇ °ÍÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù(¿Ö³Ä¸é È£½ºÆ® ¾î¼Àºí·¯¿Í ¸µÄ¿°¡ »ý¼ºÇÏ´Â ¿ÀºêÁ§Æ® Äڵ尡 Ÿ°Ù°ú ȣȯµÇ¹Ç·Î). ÇÏÁö¸¸ Å©·Î½º ÄÄÆÄÀÏ·¯ÀÇ °æ¿ì º¯È¯µÈ ¾î¼Àºí·¯¸¦ Ÿ°Ù¿ë ¿ÀºêÁ§Æ® ÄÚµå·Î ¸¸µé¾îÁÙ ¾î¼Àºí·¯¿Í ¸µÄ¿°¡ ÇÊ¿äÇÏ´Ù(À̸¦ °¢°¢ Å©·Î½º ¾î¼Àºí·¯¿Í Å©·Î½º ¸µÄ¿¶ó°í ºÎ¸¥´Ù).
GNU ÇÁ·ÎÁ§Æ®¿¡µµ ¾î¼Àºí·¯¿Í ¸µÄ¿°¡ Æ÷ÇԵǾî ÀÖ´Ù. ±×·¯³ª ±×°ÍµéÀº Å©·Î½º Ç÷§Æû¿ëÀ¸·Î ÀÌ¿ëµÇÁö ¾Ê¾Ò¾ú´Ù. Àû¾îµµ Cygnus »ç¿¡¼ Å©Æ÷½º Ç÷§Æû Áö¿øÀ» Çϱâ Àü¿¡´Â ¸»ÀÌ´Ù. Cygnus´Â ÃÖ±Ù¿¡(¾à 1~2³âÀü) ÀÓº£µðµå ½Ã½ºÅÛ¿ë ¼Ö·ç¼ÇÀ» °³¹ßÇÏ°í »óÇ°ÈÇÏ´Â °úÁ¤¿¡¼ GNU ÅøÀÎ gas(GNU assembler, as¶ó°íµµ ºÒ¸°´Ù), ld(linker) µîÀ» Å©·Î½º Ç÷§Æû¿ëÀ¸·Î À̽ÄÇÏ¿´´Ù. ±×·¸°Ô Çؼ ³ª¿Â °ÍÀÌ BinutilsÀÌ´Ù.
|