8051
AVR
EZLab
PIC
80C196KC
DSP
ARM
VHDL
¸¶ÀÌÅ©·Î¸¶¿ì½º
·Îº¿Ã౸
Battle ·Îº¿
·Îº¿´ëȸ
È޸շκ¿
Embeded Linux
HW/SW °­ÁÂ
RTOS
 
 

1. GCC(GNU C Compiler)ÀÇ ÀϹÝÀûÀÎ ¼Ò°³

2. À©µµ¿ì(Win9x, WinNT)¿ë AVR-GCC

3. Linux¿ë AVR-GCC

 

AVR-GCC - GNU C Compiler for AVR

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¸¦ Âü°íÇϱ⠹ٶõ´Ù.

 

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ÀÌ´Ù.

 

5) AVR-GCC¸¦ À§Çؼ­ ÇÊ¿äÇÑ °Íµé

   ÃÑ ¼¼°¡Áö ÆÐÅ°Áö°¡ ÇÊ¿äÇÏ´Ù. Áï Binutils, GCC(avr¿ë ÆÐÄ¡ ÇÊ¿ä), libc(avr¿ë)ÀÌ´Ù. ¿ä¾àÇÏ¸é ´ÙÀ½°ú °°´Ù.

  • Binutils : cross assembler + cross linker + ¿©·¯ ¹ÙÀ̳ʸ® ÆÄÀÏ À¯Æ¿¸®Æ¼(¿¹:ÆÄÀÏ Æ÷¸Ë º¯È¯±â)
  • gcc : ±âÁ¸ÀÇ gccÀÌ avrÀ» Áö¿øÇϵµ·Ï ÆÐÄ¡ÇÏ¿©¾ß ÇÔ
  • libc : gcc´Â C ¾ð¾î¸¦ ¾î¼Àºí·¯·Î º¯È¯ÇÏ´Â ±â´É¸¸À» °¡Áö¹Ç·Î C¿¡¼­ Áö¿øÇØ¾ß ÇÒ ±âº»ÀûÀÎ ÇÔ¼ö°¡ µû·Î ÇÊ¿äÇϸç À̸¦ libc¶ó°í ºÎ¸¥´Ù. ½ÉÁö¾î µ¡¼À(+)À̳ª °ö¼À ¿¬»êÀÚ(*)¿¡ ´ëÇÑ ½ÇÁ¦ ¿ÀºêÁ§Æ® Äڵ带 gcc´Â °¡Áö°í ÀÖÁö ¾ÊÀ¸¸ç ¸ðµÎ libc°¡ Á¦°øÇÑ´Ù.

   Çʼö »çÇ×Àº ¾Æ´ÏÁö¸¸ µð¹ö±ë ÅøÀÎ gdb(GNU Debugger)µµ AVR¿ëµµ Æ÷ÆõǾî ÀÖ´Ù.

 

6) AVR-GCCÀÇ ÀÌÁ¡(ÇнÀ»óÀÇ ÀÌÁ¡)

   gcc´Â Àü¼¼°èÀÇ ÇØÄ¿µé¿¡ ÀÇÇؼ­ ¸¸µé¾îÁ³±â ¶§¹®¿¡ ¸Å¿ì Æí¸®ÇÏ¸ç °­·ÂÇÑ ¿É¼ÇµéÀ» Á¦°øÇÑ´Ù(ÀÌ´Â ÇØÄ¿µéÀÌ ÇÊ¿ä¿¡ ÀÇÇؼ­ ¸¸µé¾ú±â ¶§¹®ÀÌ¶ó ¿©°ÜÁø´Ù). gcc »Ó¸¸¾Æ´Ï¶ó gas, ld µîÀÇ Åøµéµµ ¸Å¿ì ÈǸ¢ÇÑ °³¹ß ȯ°æÀ» Á¦°øÇÑ´Ù. GNU ÅøÀ» ¹è¿üÀ» ¶§ÀÇ ÀåÁ¡Àº ÀÏ´Ü ÀÍÇôµÎ¸é ´Ù¸¥ ȯ°æ¿¡¼­µµ ÀûÀÀÀÌ ½±´Ù´Â °ÍÀÌ´Ù. Áï GNU ÅøÀÌ Á¦°øÇÏ´Â °³¹ß ¹æ½ÄµéÀÌ »ó´çÈ÷ ¼öÁØÀÖ´Â °ÍÀ̾ ¹è¿ì±â´Â ÈûµéÁö¸¸ ÀÏ´Ü ¹è¿öµÎ¸é ´Ù¸¥ ȯ°æ¿¡ ÀûÀÀÇÏ´Â ¹Ø°Å¸§ÀÌ µÈ´Ù. ¶Ç ÇØÄ¿µéÀÇ ¾ÆÀ̵ð¾î°¡ µé¾îÀ־ ±×·±Áö ¹è¿ï ¸¸ÇÑ ±â¹ýµéµµ ¸¹°í ÀÍÇôµÎ¸é Æí¸®ÇÑ ±â´ÉµéÀÌ ¸¹´Ù. ÀÌ´Â C ÄÄÆÄÀÏ·¯ÀÇ ¿É¼Ç °³¼ö¸¸ ºÁµµ ¾Ë ¼ö ÀÖ´Ù. ¶Ç gasÀÇ °æ¿ì °­·ÂÇÑ ¸ÅÅ©·Î Áö¿øÀ¸·Î ´Ù¸¥ »ó¿ë ¾î¼Àºí·¯º¸´Ù ÈξÀ ´õ À¯¿¬¼ºÀ» °®Ãß°í ÀÖ´Ù. ÀÌ ¿Ü¿¡µµ ¸¹Àº ÀÌÁ¡ÀÌ ÀÖÀ¸¸ç Â÷Â÷ ÀÌ¿ëÇϸ鼭 ´À³¢±â ¹Ù¶õ´Ù.

 Goto the Top

 

 

AVR-GCC on Windows - good development environment

 

1) ¼³Ä¡ ¹æ¹ý (for Win9x)

   avr-gccÀÇ windows ¹öÀüÀº  Volker Oth°¡ binutils + avr-gcc + libc¸¦ ¸ðµÎ µµ½º¿ëÀ¸·Î ÄÄÆÄÀÏÇÏ¿© ÆÐÅ°Áö ÇüÅ·Π¹èÆ÷ÇÏ°í ÀÖÀ¸¸ç, Á÷Á¢ ¸¸µç ¿¹Á¦ ÆÄÀϵµ ÇÔ²² ¹èÆ÷ÇÏ°í ÀÖ´Ù. ¸ÕÀú ´ÙÀ½ ¼¼ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÑ´Ù.

  • avr-gcc for windows (À©µµ¿ìÁî¿ë avr-gcc ÄÄÆÄÀÏ·¯ : binutils, avr-gcc, libc Æ÷ÇÔ)
  • install fix (avr-gcc for windows ¼³Ä¡ÆÄÀÏÀÇ ¹ö±× ¼öÁ¤ ÆÄÀÏ)
  • gcctest (¿¹Á¦ ÆÄÀϵé)

 

[1] avrgcc.zip¸¦ Àû´çÇÑ µð·ºÅ丮¿¡ Ǭ´Ù. ¿¹¸¦ µé¾î c:\avrgcc¶ó°í °¡Á¤ÇÑ´Ù.

[2] instfix.zip ÆÄÀϾȿ¡ Æ÷ÇԵǾî ÀÖ´Â install.exe¿Í install.ini¸¦ c:\avrgcc¿¡ µ¤¿¡ ¾º¿î´Ù. (ÀÌ´Â avrgcc.zip¿¡ Æ÷ÇԵǾî ÀÖ´Â install.exe¿Í install.ini°¡ ¹ö±×°¡ Àֱ⠶§¹®ÀÌ´Ù)

[3] c:\avrgcc\install.exe¸¦ ¼öÇàÇÑ´Ù. µµ½ºÃ¢À¸·Î ½ÇÇàÇÏ´ø°¡ ¾Æ´Ï¸é Ž»ö±â¿¡¼­ ´õºí Ŭ¸¯À¸·Î ¼öÇàÇصµ µÈ´Ù. ±×·¯¸é ¹ÙÅÁ È­¸é¿¡ AVR-GCC.lnk°¡ »ý±ä´Ù. (µµ½º ¸ð¾çÀÇ ¾ÆÀÌÄÜ)

[4] gcctest.zipÀ» Àû´çÇÑ µð·ºÅ丮¿¡ Ǭ´Ù. ¿¹¸¦ µé¾î c:\avrgcc\gcctest

[5] ¹ÙÅÁ È­¸é¿¡ ÀÖ´Â AVR-GCC ¾ÆÀÌÄÜÀ» ´õºí Ŭ¸¯ÇÑ´Ù. ±×¸®°í ´ÙÀ½ ¸í·ÉÀ¸·Î ¿¹Á¦ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ Çغ»´Ù.

  • cd c:\avrgcc\gcctest\gcctest1
  • make

±×·¯¸é, ÄÄÆÄÀϵǴ °úÁ¤À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¼³Ä¡ ³¡.

*ÁÖ1) ¿ø·¡´Â install.ini°¡ ¿µ¹®À©µµ¿ì¿¡ ¸ÂÃß¾îÁ® À־ install.ini¸¦ ¼ÕºÁÁÖ¾î¾ß ÇßÁö¸¸, ÃÖ±Ù¿¡ install.ini°¡ ¾÷±×·¹ÀÌµå µÈ °ü°è·Î À§ÀÇ °úÁ¤¸¸ °ÅÃĵµ µË´Ï´Ù.

*ÁÖ2) ¾ÐÃà ÆÄÀÏÀ» Ç® °æ¿ì¿¡´Â À©µµ¿ì¿ëÀ» ÀÌ¿ëÇϼ¼¿ä. ¸î¸î ¾ÐÃà ÇÁ·Î±×·¥Àº ÆÄÀϸíÀÌ 8ÀÚ¸¦ ³Ñ¾î°¥ °æ¿ì Á¦´ë·Î ÀνÄÀÌ ¾ÈµÇ¾î¼­ ¼³Ä¡°¡ ¾ÈµÇ´õ±º¿ä. WinzipÀº Àß µË´Ï´Ù.

 

2) ¼³Ä¡ ¹æ¹ý (for WinNT)

   WinNT¿ë avr-gccÀÇ ¼³Ä¡¸¦ À§Çؼ­´Â ¸ÕÀú Win9x¿ë avr-gccÀÇ ¼³Ä¡ ´Ü°è [5]±îÁö ¶È°°ÀÌ ÁøÇàÇÑ´Ù. ¼³Ä¡ °úÁ¤À» ÀÚ¼¼È÷ °üÂûÇÏ¿© º¸¸é ¾Ë°ÚÁö¸¸ install.exe°¡ ÇÏ´Â ¿ªÇÒÀº c:\avr-gcc\run.bat¶ó´Â ÆÄÀÏÀ» ½Ã½ºÅÛ¿¡ ¸Â°Ô ¼³Á¤ÇØÁÖ°í ÀÌ run.bat¸¦ ÀÌ¿ëÇؼ­ avr-gcc¿¡¼­ ÇÊ¿ä·ÎÇÏ´Â º¯¼ö¸¦ ¼³Á¤ÇØÁØ´Ù(AVR=c:/avrgcc, CC=avr-gcc, ±×¸®°í PATH¿¡ c:\avrgcc\binÀ» Ãß°¡). ±×¸®°í ³­ ´ÙÀ½¿¡ c:\avrgcc\lib\src¿¡ ÀÖ´Â libc(Ç¥ÁØ C ÇÔ¼ö), libm(¼öÇÐÇÔ¼ö), fplib(ºÎµ¿¼Ò¼öÁ¡ ó¸® ÇÔ¼ö)µîÀ» ÄÄÆÄÀÏÇÏ¿© ¶óÀ̺귯¸®¸¦ ±¸ÃàÇÑ´Ù. µû¶ó¼­ WinNT¿¡¼­ avrgcc¸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â path¿¡ c:\avrgcc\binÀ» Ãß°¡ÇÏ°í AVR ȯ°æº¯¼ö¸¦ c:/avrgcc(Áï, avr-gcc°¡ ¼³Ä¡µÈ µð·¹Å丮, '/'ÀÓÀ» ÁÖÀÇ !), CC ȯ°æ º¯¼ö¸¦ avr-gcc·Î ¼³Á¤ÇÏ¸é µÈ´Ù. µû¶ó¼­ c:\autoexec.bat ÆÄÀÏ¿¡ ´ÙÀ½À» Ãß°¡ÇÏ´ø°¡ "³» ÄÄÇ»ÅÍ"ÀÇ µî·Ï Á¤º¸¿¡¼­ "ȯ°æ º¯¼ö"¸¦ ¼¼ÆÃÇÏ¸é µÈ´Ù.

  • set AVR=c:/avrgcc
  • set CC=avr-gcc
  • set PATH=c:\avrgcc\bin;%PATH%

 

3) ¿¹Á¦ ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸í (ÄÄÆÄÀÏ ¿É¼Ç)

   gcctest.zipÀ» ¾ÐÃà Ç®°í ³ª¸é ¿©·¯ °¡Áö ¿¹Á¦µéÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. STK200À» ÀÌ¿ëÇÑ ¿¹Á¦ÀÌÁö¸¸ ȸ·Î¸¦ Á÷Á¢ ²Ù¸ç¼­ ½ÇÇèÇØ º¼ ¼öµµ ÀÖ´Ù. avr-gcc´Â ¿©·¯ °¡Áö ¿É¼ÇµéÀ» °¡Áö°í À־ ¹Ù·Î ÄÄÆÄÀÏ Çϱâ´Â Èûµé°í make À¯Æ¿¸®Æ¼¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù. win32¿ë avr-gcc¿¡´Â ±âº»ÀûÀ¸·Î make À¯Æ¿¸®Æ¼¸¦ °¡Áö°í ÀÖÀ¸¸ç, ¿¹Á¦ ÆÄÀϵéÀ» º¸¸é Volker Oth°¡ ÀÛ¼ºÇÑ MakefileÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾ÕÀÇ ¼³Ä¡ °úÁ¤ [6]¿¡¼­ make¸¦ ¼öÇàÇÏ¸é ´ÙÀ½ ¸Þ½ÃÁö¸¦ º¼ ¼ö °¡ ÀÖ´Ù.

  avr-gcc -c -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=gcctest1.lst -mmcu=at90s8515 -I. gcctest1.c -o gcctest1.o
  avr-gcc  gcctest1.o   -Wl,-Map=gcctest1.map,--cref -mmcu=at90s8515 -o gcctest1.elf
  avr-objcopy -O avrobj gcctest1.elf gcctest1.obj
  avr-objcopy -O srec gcctest1.elf gcctest1.rom
  avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" -O srec gcctest1.elf gcctest1.eep
  rm gcctest1.elf

  • ù ¹ø° ¶óÀÎÀº ÄÄÆÄÀÏ·¯¸¦ È£ÃâÇÏ´Â ºÎºÐÀ¸·Î½á gcctest1.cÀ» ÄÄÆÄÀÏÇÏ¿© gcctest1.o ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.

    "-c" : ¿ÀºêÁ§Æ® ÆÄÀÏÀ» »ý¼ºÇ϶ó. "-g" : µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇ϶ó.

    "Wall -Wstrict-prototypes" : ¹®¹ý üũ¸¦ öÀúÇÏ°Ô Ç϶ó.

    "-Wa,-ahlms=gcctest1.lst" : -Wa´Â µÚ¿¡ ¿À´Â ¿É¼ÇÀ» ¾î¼Àºí·¯¿¡°Ô ³Ñ°Ü¶ó. Áï, ¾î¼Àºí¸® ¾ð¾î·Î ¹ø¿ªÇÑ °á°ú¸¦ gcctest1.lst¶ó´Â ÆÄÀÏ¿¡ ±â·ÏÇ϶ó.

    "-I." : .(ÇöÀç µð·ºÅ丮)¿¡¼­ Çì´õÆÄÀÏÀ» ã¾Æ¶ó. gcctest1.c : ¼Ò½º ÆÄÀÏ. -o gcctest1.o : ÄÄÆÄÀÏ °á°ú ¿ÀºêÁ§Æ® ÆÄÀÏÀ» gcctest1.o¿¡ ±â·ÏÇ϶ó.

  • µÎ ¹ø° ¶óÀÎÀº ¸µÄ¿¸¦ È£ÃâÇÏ´Â ºÎºÐÀ¸·Î½á gcctest1.o´Â ·± ŸÀÓ ¸ðµâ(runtime module : startup code¿Í ±âŸ C Ç¥ÁØ ¶óÀ̺귯¸®)°ú ¸µÅ©µÇ¾î¼­ gcctest1.elf°¡ »ý¼ºµÈ´Ù.
  • "-Wl,-Map=gcctest1.map" : -WlÀº µÚ¿¡ ¿À´Â ¿É¼ÇÀ» ¸µÄ¿¿¡°Ô ³Ñ°Ü¶ó. Áï ¸µÅ©ÇÑ °á°ú¸¦ gcctest1.map ÆÄÀÏ¿¡ ±â·ÏÇ϶ó°í ¾Ë¸°´Ù. ÀÌ´Â ¸µÅ©µÈ ¶óÀ̺귯¸®µéÀÌ ¸î ¹øÁö¿¡ À§Ä¡ÇÏ´ÂÁö¸¦ ¾Ë ¼ö ÀÖ°ÔÇÑ´Ù.

  • ¼¼ ¹ø° ¶óÀÎÀº gcctest1.obj¸¦ ¸¸µå´Â ºÎºÐÀÔ´Ï´Ù. ÀÌ ÆÄÀÏÀº AvrStudio¿¡¼­ µð¹ö±ëÀ» ÇÒ ¶§ ºÒ·¯µéÀÔ´Ï´Ù.(¾ÆÁ÷ ±â´É ¹ÌÈí)
  • ³ª¸ÓÁö µÎ ¶óÀÎÀº ROM ÆÄÀÏ(gcctest1.rom)°ú EEPROM ÆÄÀÏ(gcctest1.eep)À» Motorola s-record Æ÷¸ËÀ¸·Î »ý¼ºÇÏ´Â ºÎºÐÀÔ´Ï´Ù.(Intel hex Æ÷¸Ëµµ »ý¼º °¡´É)

 

4) Makefile Á÷Á¢ ¸¸µé±â

   gcctest ÁßÀÇ ÇÑ µð·ºÅ丮¿¡¼­ MakefileÀ» º¹»çÇÏ¿© ¼öÁ¤ÇÔÀ¸·Î½á Á÷Á¢ MakefileÀ» ¸¸µé ¼ö ÀÖ´Ù.

  • MCU : Ÿ°ÙÀÌ µÇ´Â MCUÀÇ À̸§ (at90s8515, at90s8535, atiny22, atmega103 µî)
  • TRG : ÇÁ·ÎÁ§Æ® À̸§, ÀÌ´Â main() ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀÏ¿¡¼­ È®ÀåÀÚ¸¦ »« °ÍÀ̾î¾ß ÇÑ´Ù.
  • SRC : ¼Ò½º ÆÄÀϵéÀ» Àû´Â´Ù. ¼Ò½º ÆÄÀÏÀÌ ¿©·¯ °³ÀÏ °æ¿ì ¸ðµÎ Àû¾î ÁØ´Ù.
  • LIB : Àü¿¡ ÄÄÆÄÀÏÇÑ ¿ÀºêÁ§Æ® ÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ¿´À» °æ¿ì ¿©±â¿¡ Àû¾îÁØ´Ù.
  • FORMAT : Ãâ·Â ROM ÆÄÀÏ Æ÷¸ËÀ» Á¤ÀÇ (Motorola S-record : srec, Intel Hex : ihex). ²À include $(AVR)/include/make1 ´ÙÀ½¿¡ À§Ä¡ÇÏ¿©¾ß ÇÑ´Ù.
  • ¸¸ÀÏ ¿©·¯ °³ÀÇ ¼Ò½º ÆÄÀÏÀÌ Á¸ÀçÇÒ °æ¿ì´Â ´ÙÀ½À» Ãß°¡·Î Àû¾î ÁÖ¾î¾ß ÇÑ´Ù. ²À include $(AVR)/include/make2 ´ÙÀ½¿¡ À§Ä¡ÇÏ¿©¾ß ÇÑ´Ù. ÀÌ´Â ¼Ò½ºÆÄÀÏÀÇ ¿¬°ü °ü°è¸¦ Àû¾îÁÖ´Â ºÎºÐÀÌ´Ù. ¿¹¸¦ µé¾î ex1.c¶ó´Â ÆÄÀÏÀÌ Ãß°¡·Î ÄÄÆÄÀϵǾî¾ß ÇÑ´Ù¸é ±×¸®°í ex1.h°¡ ¼öÁ¤µÉ ¶§ ÄÄÆÄÀÏÀ» ´Ù½Ã ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é ´ÙÀ½ ¶óÀÎÀ» Ãß°¡ÇÑ´Ù. ÀÌ´Â dependency¶ó°í ºÎ¸¥´Ù.
  • ex1.o : ex1.h

 

5) Âü°í ÀÚ·á

   ±âŸ Á¤º¸¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é ´ÙÀ½ÀÇ °ü·Ã ¸µÅ©¸¦ Âü°íÇϱ⠹ٶõ´Ù.

 

6) gcrt.s ´Ù½Ã ÄÄÆÄÀÏ Çϱâ

 Goto the Top  

 

AVR-GCC on Linux - best development environment

 

  ÇÊÀÚ°¡ óÀ½ Micro Tools for Linux¶ó´Â »çÀÌÆ®¿¡ µé¾î°£ °ÍÀº 1999³â 10¿ù ÂëÀ¸·Î ±â¾ïÇÏ°í ÀÖ´Ù. ÀÌ »çÀÌÆ®´Â Linux¿ë avr-gcc¿¡ ÇÊ¿äÇÑ ÀڷḦ ¸ð¾ÆµÐ °÷ÀÌ´Ù. ³ªÁß¿¡ ²À µé¾î°¡º¸±â ¹Ù¶õ´Ù. ±× ´ç½Ã¿¡µµ ¾î´À Á¤µµ avr-gccÀÇ ÁøôÀÌ ÀÖ¾ú´ø °É·Î ºÁ¼­´Â avr-gcc ÇÁ·ÎÁ§Æ®°¡ 1999³â ÃʺÎÅÍ ÁøÇàµÇÁö ¾Ê¾Ò³ª ½Í´Ù. ±×¸®°í 2000³â 3¿ù Âë¿¡´Â avr-gcc°¡ gccÀÇ Á¤½Ä ¹öÀü¿¡ ÇÔ²² Æ÷ÇԵǾú°í avr-binutils°¡ binutils¿¡ Á¤½ÄÀ¸·Î Æ÷ÇԵǾú´Ù. µû¶ó¼­ À̵éÀº gcc¿Í binutils¸¦ ´Ù¿î·Îµå ¹ÞÀ½À¸·Î½á ±¸ÇÒ ¼ö ÀÖ´Ù(Àü¿¡´Â ´Ù¿î·Îµå ÈÄ¿¡ ÆÐÄ¡ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© ¼öÁ¤ÇÏ¿©¾ß Çß´Ù). ÇÏÁö¸¸ gcc¿Í binutilsÀÇ ¸¶Áö¸· Á¤½Ä official ¹öÀü ÈÄ¿¡ Æ÷ÇÔµÈ °ÍÀÌ¶ó¼­ Á¤½Ä official ¹öÀüÀº ¾ø°í snapshot(°³¹ß ¹öÀü) ÇüÅ·Π±¸ÇÒ ¼ö ÀÖ´Ù. snapshot ¹öÀüÀº °³¹ß ¹öÀüÀÌ¶ó¼­ ¹ö±×¸¦ Æ÷ÇÔÇÒ °¡´É¼ºÀÌ ÀÖ´Ù(ÇÏÁö¸¸ ¸Å¿ì ºü¸£°Ô ¼öÁ¤ÀÌ ÀÌ·ç¾îÁö°í ÀÖ´Ù). Á¤½Ä official ¹öÀüÀº snapshot ¹öÀü¿¡¼­ ÃæºÐÈ÷ Å×½ºÆ®µÈ ÈÄ¿¡ ¹ßÇ¥ µÈ´Ù. ÇÊÀÚÀÇ °æÇèÀ¸·Î´Â snapshot ¹öÀü¿¡¼­ Å« ¹®Á¦Á¡À» ¹ß°ßÇÏÁö ¸øÇß´Ù. Á¤½Ä official ¹öÀüÀ¸·Î ¹ßÇ¥µÈ avr-gcc°¡ ÂüÀ¸·Î ±â´ëµÈ´Ù.

¸®´ª½º¿ë avr-gcc¸¦ ¼³Ä¡Çϱâ À§Çؼ­´Â ÃÑ ´ÙÀ½ 3°¡Áö ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏ ¹× ÀνºÅç ÇÏ¿©¾ß ÇÑ´Ù.

  • binutils  : 2000/05/18 snapshot (°³¹ß ¹öÀü)
  • egcs     : 2000/04/17 snapshot (°³¹ß ¹öÀü)
  • avr-libc : 2000/05/14 snapshot (°³¹ß ¹öÀü)

 ¶Ç, ÀÌ ÆÐÅ°ÁöµéÀÇ Áö±Ýµµ °è¼Ó ¾÷±×·¹À̵尡 ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç, À§¿¡ º¸ÀÎ ¹öÀüµéÀº ÇÊÀÚ°¡ ÄÄÆÄÀÏ¿¡ ¼º°øÇÑ ¹öÀüµéÀÌ´Ù. ÇÊÀÚ°¡ ÄÄÆÄÀÏÇÑ ¸®´ª½º ¹öÀüÀº ¾ËÂ¥ ¸®´ª½º 6.1 (FTP ¹öÀü)°ú ¾Ù¸¯½º ¸®´ª½º 6.2 º£Å¸(Çö ¾Æµ¨¸®´ª½º) ÀÌ´Ù. ÃÖ±Ù ¹öÀüÀº Cygnus »ç, GCC ȨÆäÀÌÁö µî¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ÇÊÀÚÀÇ °æÇè»ó °¡Àå ÃÖ±Ù ¹öÀüÀº °ÅÀÇ ÄÄÆÄÀÏ¿¡ ¼º°øÇϱ⠾î·Æ´Ù. À§ÀÇ ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ´Â ¼ø¼­¸¦ ²À À¯ÀÇÇϱ⠹ٶõ´Ù.

 

1) binutilsÀÇ ¼³Ä¡

    # tar zxvf binutils-000518.tar.gz

    # cd binutils-000518

    # ./configure --target=avr

    # make

    # make install

 

2) egcs(gcc)ÀÇ ¼³Ä¡

    # tar zxvf egcs-core-20000417.tar.gz

    # cd egcs-20000417

    # ./configure --target=avr

    # make

    # make install

 

3) avr-libcÀÇ ¼³Ä¡

    # tar zxvf avr-lib-20000514.tar.gz

    # cd avr-lib-20000514

    # make

    # make install

 

4) avr-gdbÀÇ ¼Ò°³

   GNU ÇÁ·ÎÁ§Æ® ÁßÀÇ ÇϳªÀÎ gdb(GNU Debugger)ÀÇ AVR ¹öÀüÀÌ´Ù. º»·¡ gdb´Â ½Ã¹Ä·¹ÀÌÅÍó·³ µ¿ÀÛÇÏÁö¸¸ avr-gdb´Â AVR ½Ã¹Ä·¹ÀÌÅÍ°¡ ¾ø±â ¶§¹®¿¡ AVR°ú SPI ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇؼ­ ·±Å¸ÀÓÀ¸·Î µð¹ö±ëÀÌ °¡´ÉÇϵµ·ÏÇÑ´Ù. Áï gdbÀÇ remote debugging ±â´ÉÀ» ÀÌ¿ëÇؼ­ ±¸ÇöµÇ¾ú´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½À» Âü°íÇϱ⠹ٶõ´Ù. ÇöÀç avr-gdb´Â dummy parallel programmer¿Í STK200 ¸¸À» Áö¿øÇÑ´Ù.

 Goto the Top  

»óÈ£ : (ÁÖ) ·Îº¸ºí·° »ç¾÷ÀÚµî·Ï¹øÈ£:214-86-56219 Åë½ÅÆǸž÷½Å°í19-2544 ´ëÇ¥: ½Å´ë¼· ÀüÈ­:(02)2679-8556 Fax :(02)2679-8557 [°³ÀÎÁ¤º¸Ã³¸®¹æħ]
º»»ç : °æ±âµµ ºÎõ½Ã ¿ø¹Ì±¸ ¾à´ëµ¿ ºÎõ Å×Å©³ëÆÄÅ© 401µ¿ 502È£     ¼­¿ï»ç¹«¼Ò : ¼­¿ï½Ã ¿µµîÆ÷±¸ ¹®·¡µ¿ 4°¡ 8-1 4Ãþ
Copyright(C) 2004, (ÁÖ) ·Îº¸ºí·° ½Ã½ºÅÛÁî All Rights Reserved E-Mail : WebMaster