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¸¦ ¸ðµÎ µµ½º¿ëÀ¸·Î ÄÄÆÄÀÏÇÏ¿© ÆÐÅ°Áö ÇüÅ·Π¹èÆ÷ÇÏ°í ÀÖÀ¸¸ç,
Á÷Á¢ ¸¸µç ¿¹Á¦ ÆÄÀϵµ ÇÔ²² ¹èÆ÷ÇÏ°í ÀÖ´Ù. ¸ÕÀú ´ÙÀ½ ¼¼ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÑ´Ù.
[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 ¾ÆÀÌÄÜÀ» ´õºí Ŭ¸¯ÇÑ´Ù.
±×¸®°í ´ÙÀ½ ¸í·ÉÀ¸·Î ¿¹Á¦ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ Çغ»´Ù.
±×·¯¸é, ÄÄÆÄÀϵǴ °úÁ¤À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¼³Ä¡ ³¡.
*ÁÖ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
ÆÄÀÏ¿¡ ´ÙÀ½À» Ãß°¡ÇÏ´ø°¡ "³» ÄÄÇ»ÅÍ"ÀÇ µî·Ï Á¤º¸¿¡¼ "ȯ°æ º¯¼ö"¸¦
¼¼ÆÃÇÏ¸é µÈ´Ù.
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ÀÇ ¼³Ä¡
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
|