HOME > °­ÁÂ >
°­ÁÂ| ¸®´ª½º ¹× ¿ÀǼҽº¿¡ °ü·ÃµÈ °­Á¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
 
´©±¸³ª ½±°Ô ¹è¿ì´Â ÀÓº£µðµå ¸®´ª½º¨è
Á¶È¸ : 17,804  


´©±¸³ª ½±°Ô ¹è¿ì´Â ÀÓº£µðµå ¸®´ª½º¨è

±³Â÷ °³¹ß ȯ°æÀ» ±¸ÃàÇÏÀÚ

 

 

Áö³­ È£¿¡¼­´Â ÀÓº£µðµå ¸®´ª½º¶õ ¹«¾ùÀΰ¡¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. À̹ø È£ºÎÅÍ´Â ÀÓº£µðµå ¸®´ª½º

¸¦ µ¿ÀÛ½Ã۱â À§ÇØ ÇÊ¿äÇÑ »çÇ׿¡ ´ëÇØ ¾Ë¾Æº¸±â·Î ÇϰڴÙ. ±× Áß Ã¹ ¹øÂ°·Î ÇÊ¿äÇÑ »çÇ×Àº ±³

Â÷ °³¹ß ȯ°æ(Cross Development Environment)À» ±¸ÃàÇÏ´Â °úÁ¤ÀÌ´Ù.

 

±Û _ À念ÁØ »ï¼ºÀüÀÚ SW¿¬±¸¼Ò Linux Technology Group ¼±ÀÓ ¿¬±¸¿ø

 

 

¿¬Àç ¼ø¼­

¨ç ÀÓº£µðµå ¸®´ª½º ù °ÉÀ½¸¶

¨è ±³Â÷ °³¹ß ȯ°æÀ» ±¸ÃàÇÏÀÚ

¨é ºÎÆ®·Î´õ ¼³Á¤Àº ÀÌ·¸°Ô

¨ê Ä¿³ÎÀ» ¿Ã·Áº¸ÀÚ

¨ë ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀº

¾î¶»°Ô ±¸¼ºµÇ´Â°¡

¨ì 2% ºÎÁ·ÇÔÀ» ä¿öº¸ÀÚ

 

±³Â÷ °³¹ß ȯ°æ ±¸ÃàÀÇ ±âÃÊ

ÀϹÝÀûÀÎ ÇÁ·Î±×·¥ÀÇ °³¹ß °úÁ¤À» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

 

1. ÇÁ·Î±×·¥ ¼Ò½º Äڵ带 ÀÛ¼º : ¿¡µðÅÍ »ç¿ë

2. ÇÁ·Î±×·¥ ºôµå : ½Ã½ºÅÛ¿¡¼­ ½ÇÇà °¡´ÉÇÑ À̹ÌÁö·Î ÄÄÆÄÀÏ : ÄÄÆÄÀÏ·¯ »ç¿ë

3. ÇÁ·Î±×·¥ ½ÇÇà, Å×½ºÆ®

4. µð¹ö±ë : µð¹ö±ë Åø »ç¿ë

 

µð¹ö±ëÀ» ÇÏ´Â °úÁ¤¿¡¼­ ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù¸é, ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çشٽà ¼Ò½ºÄڵ带 ¼öÁ¤Çϰí, ºôµå, ½ÇÇàÇØº¸´Â ÀýÂ÷¸¦ ¹Ýº¹ÇÏ°Ô µÈ´Ù. À§ °úÁ¤À» ¼öÇàÇϴµ¥ ¿¡µðÅÍ, ÄÄÆÄÀÏ·¯, µð¹ö±ë ÅøÀÌ »ç¿ëµÇ¾ú´Ù. °³¹ßÀ» Çϴµ¥ À־´Â ÀÌ¿Í °°Àº ÅøµéÀÌ ÇÊ¿äÇϰí, À̸¦ °³¹ß ȯ°æÀ̶ó°í ÁöĪÇÑ´Ù. º¸Åë PC ȯ°æ¿¡¼­´Â À§ ¸ðµç ÀÛ¾÷À» PC¿¡¼­ Á÷Á¢ ¼öÇàÇÒ ¼ö°¡ ÀÖ´Ù. Áï, PC¿¡¼­ Á÷Á¢ °³¹ßÇϰí, °³¹ßµÈ °á°ú¹° ¿ª½Ã PC¿¡¼­ ¹Ù·Î µ¿ÀÛ½ÃÄÑ º¼ ¼ö°¡ ÀÖ´Â °ÍÀÌ´Ù. ÀÌ´Â ´Ù¸¥ ÀÓº£µðµå ½Ã½ºÅÛ¿¡ ºñÇØ PC°¡ »ç¾çÀÌ ³ô°í ¿©·¯¸ð·Î °³¹ßÀ» Çϱ⿡ ÀûÇÕÇÑ È¯°æÀ» °¡Áö°í Àֱ⠶§¹®ÀÌ´Ù.

¹Ý¸é, Áö³­ ½Ã°£¿¡ ¾ð±ÞÇßµíÀÌ ÀÓº£µðµå ½Ã½ºÅÛÀº »ç¾çÀÌ ³·¾Æ °³¹ßÀ» Çϱ⿡ ºÎÁ·Çϰųª ½ÉÁö¾î´Â ºÒ °¡´ÉÇÑ °æ¿ì±îÁö Àֱ⠶§¹®¿¡, ¿ÜºÎ ȯ°æ¿¡¼­ ÇÁ·Î±×·¥À» °³¹ßÇÏ°í °³¹ßµÈ °á°ú¹°À» ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ ¼öÇàÇÏ´Â ±¸Á¶¸¦ ÀÌ¿ëÇØ °³¹ßÀ» ÇÏ°Ô µÈ´Ù. ÀÌ·¸µí ¿ÜºÎ ȯ°æ¿¡¼­ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â ±¸Á¶¸¦ ±³Â÷ °³¹ß ȯ°æÀ̶ó°í ÇÑ´Ù.

À̶§, °³¹ßÀÇ ´ë»óÀÌ µÇ´Â ÀÓº£µðµå ½Ã½ºÅÛÀ» Ÿ°Ù(Target)À̶ó°í Çϰí, Ÿ°Ù¿¡¼­ ½ÇÇàµÉ ÇÁ·Î±×·¥À» °³¹ßÇϴµ¥ »ç¿ëµÇ´Â ½Ã½ºÅÛÀ» È£½ºÆ®(Host)¶ó°í ÇÑ´Ù. È£½ºÆ®¿¡¼­´Â ÇØ´ç Ÿ

°ÙÀ» °³¹ßÇϱâ À§ÇÑ È¯°æÀÌ ÇÊ¿äÇÏ°Ô µÇ´Âµ¥, ÀÌ È¯°æÀ» Ÿ°ÙÀ» °³¹ßÇϴµ¥ ÇÊ¿ä

ÇÑ ÅøµéÀÇ ¸ðÀÓÀ̶ó°í ÇÏ¿© ÅøÃ¼ÀÎ(Toolchain)À̶ó°í ÇÑ´Ù. ´ÙÀ½Àº ±³Â÷ °³¹ß ȯ°æÀ» °£´ÜÇÏ°Ô ³ªÅ¸³½ ±×¸²ÀÌ´Ù.

 

 

È£½ºÆ®¿¡¼­ ¸ÕÀú ÇÁ·Î±×·¥À» °³¹ßÇϰí, Ÿ°Ù¿¡¼­ À̸¦ ´Ù¿î·Îµå ¹Þ¾Æ ÇÁ·Î±×·¥À» ½ÇÇàÇϰí, Ÿ°ÙÀÇ ¼öÇà»óŸ¦ º¸°Å³ª µð¹ö±ëÀÌ ÇÊ¿äÇÑ °æ¿ì ¿ª½Ã È£½ºÆ®¿¡ ¿¬°áÇÏ¿© Ÿ°ÙÀÇ »óŸ¦ ¸ð´ÏÅ͸µÇÏ´Â ±¸Á¶·Î µÇ¾î ÀÖ´Ù. À̶§, ´Ù¿î·ÎµåÀÇ °æ¿ì´Â º¸Åë ¼Óµµ°¡ ºü¸¥ ·£ ÄÉÀ̺íÀ» ÀÌ¿ëÇϰí, ¸ð´ÏÅ͸µ, µð¹ö±ë µîÀº ÄܼÖ(½Ã¸®¾ó ÄÉÀ̺í)À» ÀÌ¿ëÇÑ´Ù.

PC¿¡¼­ °£´ÜÇÑ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â °úÁ¤À» º¸¸é ´ÙÀ½°ú °°´Ù.

À§ ÇÁ·Î±×·¥Àº È­¸é¿¡¡°Hello¡±¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. À̸¦ ´ÙÀ½°ú °°ÀÌ ºôµåÇÏ¿© ½ÇÇàÇØ º¸¸é¡°Hello¡±¶ó´Â °á°ú°¡ Ãâ·ÂµÈ´Ù.

gcc ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ºôµåÇϰí, PC¿¡¼­ °ð¹Ù·Î ½ÇÇà½ÃÄÑ °á°ú¸¦ È®ÀÎÇÏ¿´´Ù. À§¿¡¼­ »ý¼ºµÈ hello ÇÁ·Î±×·¥Àº PC¿ë À̹ÌÁöÀ̱⠶§¹®¿¡ ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î ÇØ´ç ½Ã½ºÅÛ¿¡ ¸Â´Â ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇØ ºôµåÇØ ÁÖ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù. ÀÌ ÇÁ·Î±×·¥À» ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ µ¿ÀÛ½Ã۱â À§Çؼ­´Â ´ÙÀ½°ú °°Àº ÀýÂ÷¸¦ °ÅÄ¡°Ô µÈ´Ù.

 

¡Ü gcc ´ë½Å ÀÓº£µðµå ½Ã½ºÅÛ¿ë ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥ ºôµå

¡Ü »ý¼ºµÈ hello ÇÁ·Î±×·¥ À̹ÌÁö¸¦ Ÿ°ÙÀ¸·Î ´Ù¿î·Îµå

¡Ü Ÿ°Ù¿¡¼­ hello ÇÁ·Î±×·¥À» ½ÇÇà

 

#include <stdio.h>

int main(void) {

printf(¡° Hello ¡±);

return 0; }

# gcc - o hello hello.c

# ./hello

Hello

 

 

¡° ÀÓº£µðµå ½Ã½ºÅÛÀº »ç¾çÀÌ ³·¾Æ °³¹ßÀ» Çϱ⿡ ºÎÁ·Çϰųª ½ÉÁö¾î´Â ºÒ°¡´ÉÇÑ °æ¿ì±îÁö Àֱ⠶§¹®¿¡, ¿ÜºÎ ȯ°æ¿¡¼­ ÇÁ·Î±×·¥À» °³¹ßÇÏ°í °³¹ßµÈ °á°ú¹°À» ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­

¼öÇàÇÏ´Â ±¸Á¶¸¦ ÀÌ¿ëÇØ °³¹ßÀ» ÇÏ°Ô µÈ´Ù. ÀÌ·¯ÇÑ °³¹ß ±¸Á¶¸¦ ±³Â÷ °³¹ß ȯ°æÀ̶ó°í ÇÑ´Ù.¡±

 

 

 

Ÿ°Ù¿ë ÅøÃ¼ÀÎ ¸¸µé±â

ÀÌÁ¦ºÎÅÍ À§ °úÁ¤À» ¼öÇàÇØ º¸±â À§ÇÑ Å¸°Ù¿ë ÅøÃ¼ÀÎÀ» ¸¸µé¾î º¸±â·Î ÇϰڴÙ.

¸ÕÀú, ÅøÃ¼ÀÎÀ» ¸¸µå´Âµ¥ ÇÊÀÚ°¡ »ç¿ëÇÑ È¯°æÀº ´ÙÀ½°ú °°´Ù.

 

 

 

È£½ºÆ®·Î´Â ¸®´ª½º°¡ ¼³Ä¡µÈ ÆæÆ¼¾öPC¸¦ »ç¿ëÇÏ¿´°í, Ÿ°ÙÀº SMDK2440À̶ó´Â ARM CPU¸¦ »ç¿ë

ÇÑ °³¹ß º¸µå¸¦ ±âÁØÀ¸·Î ÇÏ¿´´Ù. (ARMÀ̶õ ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ ¸¹ÀÌ »ç¿ëµÇ´Â CPU ÁßÀÇ ÇϳªÀÌ´Ù.) È£½ºÆ®°¡ ÆæÆ¼¾ö, Áï x86 °è¿­ÀÇ CPU¸¦ »ç¿ëÇÏ´Â ¹Ý¸é, Ÿ°ÙÀº ARM °è¿­ÀÇ CPU¸¦ »ç¿ëÇϰí Àֱ⠶§¹®¿¡ È£½ºÆ®¿¡ SMDK2440¿ë °³¹ß ȯ°æÀ» ¸¸µé±â À§Çؼ­´Â ARM ¿ë ÅøÃ¼ÀÎÀ» ±¸¼ºÇØ¾ß ÇÑ´Ù.

¿©±â¼­´Â crosstool À̶ó´Â ÅøÀ» »ç¿ëÇÏ¿© ÅøÃ¼ÀÎÀ» ±¸¼ºÇØ º¸±â·Î ÇϰڴÙ.

ÅøÃ¼ÀÎÀº gcc, glibc, binutil µîÀÇ ÇÁ·Î±×·¥ÀÌ ÅëÇÕµÈ º¹ÀâÇÑ ±¸Á¶¸¦ °¡Áö°í Àִµ¥, Å©·Î½ºÅøÀº À̸¦

½±°í °£´ÜÇÏ°Ô ¸¸µé¾î ÁÖ´Â ÅøÀÌ´Ù. ¹°·Ð ¿ÀǼҽº·Î µÇ¾î Àֱ⠶§¹®¿¡ ¹«·á·Î »ç¿ë °¡´ÉÇÏ´Ù. Å©·Î½º

ÅøÀÇ °ø½Ä »çÀÌÆ®´Â http://kegel.com/crosstool/ ÀÌ´Ù. ´Ù¿î·Îµå ¹× »ç¿ë¹ý µî Å©·Î½ºÅø »ç¿ë¿¡ ´ëÇÑ

¸ðµç Á¤º¸¸¦ º¼ ¼ö ÀÖ´Ù.

 

1. ±âº»È¯°æ ¼³Á¤

¾ÕÀ¸·Î °­Á¸¦ ÁøÇàÇϸ鼭 »ç¿ëÇÒ °èÁ¤°ú µð·ºÅ丮¸¦ ¸ÕÀú ¼³Á¤Çϵµ·Ï ÇϰڴÙ. ¹°·Ð, ´Ù¸¥ °èÁ¤À̳ª µð·ºÅ丮¸¦ »ç¿ëÇØµµ ¹«¹æÇÏÁö¸¸, µû¶ó Çϱ⠽±µµ·Ï Çϱâ À§ÇØ ÆíÀÇ»ó ¼³Á¤ÇÏ¿´´Ù.

 

°¡. °èÁ¤ »ý¼º

º» °­Á¿¡¼­´Â¡®oss¡¯¶ó´Â À¯Àú °èÁ¤À» »ç¿ëÇÏ¿© ÁøÇàÇϱâ·Î ÇÑ´Ù. ºÎµæÀÌÇÏ°Ô ·çÆ® °èÁ¤À» »ç¿ëÇØ¾ßÇÏ´Â °æ¿ì¿¡´Â º°µµ·Î ¾ð±ÞÇϵµ·Ï ÇϰڴÙ.

´ÙÀ½°ú °°ÀÌ °èÁ¤À» »ý¼ºÇϰí, »ý¼ºµÈ °èÁ¤À¸·Î ·Î±×ÀÎ ÇÑ´Ù.

 

# adduser oss

# passwd oss

# su - oss (¶Ç´Â oss °èÁ¤À¸·Î ·Î±×ÀÎ)

 

³ª. ÀÛ¾÷ µð·ºÅ丮 »ý¼º

oss Ȩ µð·ºÅ丮ÀÇ elinux ¶ó´Â µð·ºÅ丮¿¡¼­ ¸ðµç ÀÛ¾÷À» ÁøÇàÇϱâ·Î ÇÑ´Ù.

 

# mkdir elinux

# cd elinux

# pwd

/home/oss/elinux

´Ù. ÅøÃ¼ÀÎ ¼³Ä¡ µð·ºÅ丮 Áغñ

º» °­Á¿¡¼­´Â /opt µð·ºÅ丮¸¦ ÅøÃ¼ÀÎÀÌ ¼³Ä¡µÉ µð·ºÅ丮·Î »ç¿ëÇÒ °ÍÀÌ´Ù. À¯Àú °èÁ¤¿¡¼­ /opt µð·ºÅ丮ÀÇ ¾²±â ±ÇÇÑÀÌ ¾ø´Â »óÅÂÀ̱⠶§¹®¿¡ ¾²±â ±ÇÇÑÀ» ¼³Á¤ÇÑ´Ù. ÀÌ´Â ·çÆ® °èÁ¤À¸·Î ¼öÇàÇØ¾ß ÇÑ´Ù.

 

2. Å©·Î½ºÅø ¼³Ä¡

 

°¡. ´Ù¿î·Îµå

Å©·Î½ºÅø °ø½Ä »çÀÌÆ®¿¡¼­ Å©·Î½ºÅøÀ» ´Ù¿î·ÎµåÇÑ´Ù. ¿©±â¼­´Â ÃֽйöÀüÀÎ 0.43 ¹öÀüÀ» »ç¿ëÇÑ´Ù. wget ¸í·É¾î¸¦ ÀÌ¿ëÇØ¼­ ´Ù¿î·Îµå ¹ÞÀ¸¸é µÇ°í, ¾Æ·¡¿Í °°Àº ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù.

 

# wget http://kegel.com/crosstool/crosstool-0.43.tar.gz

oss@jyj0316-linux:~$ wget http://kegel.com/crosstool/crosstool-0.43.tar.gz

--19:24:40-- http://kegel.com/crosstool/crosstool-0.43.tar.gz

=> `crosstool-0.43.tar.gz'

####### 168.219.61.250:8080... ###########

Proxy request sent, awaiting response... 200 OK

Length: 3,047,042 (2.9M) [application/x-tar]

 

100%[=============================>] 3,047,042 70.67K/s ETA 00:00

19:25:25 (67.87 KB/s) - `crosstool-0.43.tar.gz' saved [3047042/3047042]

oss@jyj0316-linux:~$

 

´Ù¿î·Îµå°¡ ¿Ï·áµÇ¸é, tar ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© ¾ÐÃàµÈ Å©·Î½ºÅø ¼Ò½ºÄÚµåÀÇ ¾ÐÃàÀ» ÇØÁ¦ÇÑ´Ù.

 

# tar - xzf crosstool-0.43.tar.gz

# cd crosstool-0.43

 

 

³ª. ½ºÅ©¸³Æ® ½ÇÇà

Å©·Î½ºÅøÀº ´Ù¾çÇÑ Á¾·ùÀÇ ÅøÃ¼ÀÎ ¹× Ç÷§ÆûÀ» Áö¿øÇÑ´Ù. ÀÌ Áß ARM¿ë ÅøÃ¼ÀÎÀ» ¸¸µé±â À§ÇÑ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ±×¸®°í SMDK2440¿¡ »ç¿ëµÇ´Â ARM9Àº ½Ç¼ö¿¬»êÀ» Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ softfloat¸¦ ¼±ÅÃÇϱâ·Î ÇÑ´Ù.

 

 

# vi demo-arm-softfloat.sh

¡¦

set -ex

TARBALLS_DIR=$HOME/downloads

RESULT_TOP=/opt/crosstool

export TARBALLS_DIR RESULT_TOP

GCC_LANGUAGES="c,c++"

export GCC_LANGUAGES

¡¦

#eval `cat arm-softfloat.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest

#eval `cat arm-softfloat.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh ?notest

¡¦

eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest

 

 

demo-arm-softfloat.sh ÆÄÀÏÀ» º¸¸é À§¿Í °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù. TARBALL_DIR Àº gcc, glibc µî ÅøÃ¼ÀÎ ±¸¼º¿¡ ÇÊ¿äÇÑ ¼Ò½º¸¦ ´Ù¿î·Îµå ¹ÞÀ» °æ·Î¸¦ ÁöÁ¤Çϰí, RESULT_TOP Àº ÅøÃ¼ÀÎÀÌ ¼³Ä¡µÉ °æ·Î¸¦ ÀǹÌÇÑ´Ù. ÇÊ¿äÇÑ °æ¿ì À§ÀÇ °ªÀ» ¹Ù²Ù¾î ÁÖ¸é µÈ´Ù.

±×¸®°í, eval ·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀÌ ¿©·¯ °³ ÀÖ°í, 1°³¸¦ Á¦¿ÜÇÑ ¸ðµç ¶óÀÎÀÌ #À¸·Î ÁÖ¼® 󸮵Ǿî ÀÖÀ½À» º¼ ¼ö ÀÖ´Ù. »ç¿ëÇÒ gcc¿Í glibcÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. µðÆúÆ® °ªÀ¸·Î ¿ì¸®´Â gcc 3.4.5 ¿Í glibc 2.3.6 ¹öÀüÀ» »ç¿ëÇϱâ·Î ÇÑ´Ù. ´Ù¸¥ ¹öÀüÀÇ ÅøÃ¼ÀÎÀ» ¸¸µé°í ½ÍÀº °æ¿ì ÀÌ ºÎºÐÀ» º¯°æÇØ ÁÖ¸é µÈ´Ù.

¿©±â¼­´Â °ªÀ» º¯°æÇÏÁö ¾ÊÀº ä·Î ºôµå¸¦ ¼öÇàÇϱâ·Î ÇÑ´Ù

 

±×¸®°í ´ÙÀ½ ÆÄÀÏÀ» ¼öÁ¤ÇÑ´Ù.

 

# vi arm-softfloat.dat

¡¦

TARGET=arm-linux

¡¦

 

 

arm-softfloat.dat ÆÄÀÏÀÇ TARGET Ç׸ñÀº ÅøÃ¼ÀÎ ¼³Ä¡½Ã prefix¸¦ ÁöÁ¤ÇÑ´Ù. À̸¦ arm-linux ¶ó°í ¼³Á¤ÇÏ°Ô µÇ¸é ÅøÃ¼ÀÎÀÇ gcc ¹× binutil ¿¡ prefix °¡ ºÙ¾î arm-linux-gcc ¿Í °°Àº À̸§À¸·Î ¸¸µé¾îÁö°í, ÀÌ prefix·Î È£½ºÆ®ÀÇ gcc¿Í ±¸ºÐÀÌ µÈ´Ù.

 

# sh demo-arm-softfloat.sh

 

 

À§¿Í °°ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ°Ô µÇ¸é, binutil. gcc, glibc µî ÅøÃ¼ÀÎ ±¸¼º¿¡ ÇÊ¿äÇÑ ¿ä¼ÒµéÀ» ÇØ´ç »çÀÌÆ®·ÎºÎÅÍ ´Ù¿î·Îµå ¹Þ°Ô µÇ°í, ÀÌÈÄ ºôµå, ¼³Ä¡ °úÁ¤ÀÌ ÀÚµ¿À¸·Î ÀÌ·ç¾îÁö°Ô µÈ´Ù. ½Ã°£ÀÌ ²Ï °É¸®´Â ÀÛ¾÷ÀÌ´Ù. (½Ã½ºÅÛ »ç¾ç°ú ³×Æ®¿÷ ¼Óµµ¿¡ µû¶ó ´Ù¸£Áö¸¸ º¸Åë 30ºÐ ~ 2½Ã°£ °¡·® ¼Ò¿äµÈ´Ù.)

 

ºôµå°¡ ¼º°øÀûÀ¸·Î ¿Ï·áµÇ¸é, /opt/crosstool µð·ºÅ丮¿¡ ÅøÃ¼ÀÎÀÌ ¼³Ä¡µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

# ls /opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux

 

ÅøÃ¼ÀÎ ºôµå°¡ ¿Ï·áµÇ¾úÀ¸¸é ¾Õ¼­ ¸¸µç hello ÇÁ·Î±×·¥À» ºôµåÇØ º¸±â·Î ÇÏÀÚ.

À̸¦ »ç¿ëÇϱâ À§ÇØ ¸ÕÀú ÅøÃ¼ÀÎ ½ÇÇàÆÄÀÏÀ» PATH¿¡ µî·ÏÇØ ÁØ´Ù.

 

# vi ~/.bashrc

¡¦

export PATH=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH

 

oss °èÁ¤ÀÇ È¯°æº¯¼ö¸¦ ¼³Á¤ÇÏ´Â .bashrc ÆÄÀÏÀÇ ¸Ç ¸¶Áö¸· ÁÙ¿¡ À§¿Í °°Àº ¶óÀÎÀ» Ãß°¡ÇÑ´Ù. À̶§ µÞºÎºÐÀÇ :$PATH ¿¡ ƯÈ÷ ÁÖÀÇÇÏ¿© ÀÔ·ÂÇϵµ·Ï ÇÑ´Ù. À߸ø ÀÔ·ÂÇÏ´Â °æ¿ì ±âÁ¸ÀÇ PATH Á¤º¸°¡ Áö¿öÁú ¿°·Á°¡ Àֱ⠶§¹®ÀÌ´Ù.

 

¸¶Áö¸·À¸·Î source ¸í·ÉÀ¸·Î º¯°æµÈ ³»¿ëÀ» ÇöÀç Å͹̳ο¡ ¹Ý¿µÇØÁØ´Ù.

 

# source ~/.bashrc

 

ÀÌÁ¦, ÅøÃ¼ÀÎÀ» »ç¿ëÇϱâ À§ÇÑ ¸ðµç °úÁ¤ÀÌ ¿Ï·áµÇ¾ú´Ù. ÀÌÁ¦ hello.c ÇÁ·Î±×·¥À» ºôµåÇØ º¸±â·Î ÇÏÀÚ.

 

# arm-linux-gcc - o hello hello.c

 

# ./hello

-su: ./hello: cannot execute binary file

 

 

ºôµå´Â ¼º°øÀûÀ¸·Î ¿Ï·á°¡ µÇ¾úÁö¸¸, ½ÇÇàÇØ º¸¸é ½ÇÇàÇÒ ¼ö ¾ø´Ù´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµÈ´Ù. x86ÀÌ ¾Æ´Ñ ARM¿ë À̹ÌÁö·Î ¸¸µé¾î Á³±â ¶§¹®ÀÌ´Ù. ÆÄÀÏ Á¤º¸¸¦ º¸´Â file ¸í·É¾î·Î hello À̹ÌÁö¸¦ È®ÀÎÇØ º¸¸é ¾Æ·¡¿Í °°ÀÌ ARM¿ëÀ¸·Î ºôµåµÈ À̹ÌÁö¶ó´Â Á¤º¸°¡ Ãâ·ÂµÈ´Ù.

 

# file hello

hello: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.4.3, dynamically

linked (uses shared libs), not stripped

 

 

ÈÄ¿¡ ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ ¸®´ª½º¸¦ ±¸µ¿½ÃŲ ÈÄ hello À̹ÌÁö¸¦ ½ÇÇàÇØ º¸¸é Á¦´ë·Î ½ÇÇàµÊÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

Áö±Ý±îÁö ±³Â÷ °³¹ß ȯ°æ¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸¾Ò°í, Å©·Î½º ÅøÀ̶ó´Â ¿ÀÇ ¼Ò½º¸¦ ÀÌ¿ëÇÏ¿© ÅøÃ¼ÀÎÀ» Á÷Á¢ ¸¸µé¾î º¸¾Ò´Ù. °³¹ß ȯ°æÀ» ±¸ÃàÇÏ´Â ÀÛ¾÷Àº ÀÓº£µðµå ¸®´ª½º¸¦ »ç¿ëÇÏ´Â µ¥ ÀÖ¾î °¡Àå ±â¹ÝÀÌ µÇ´Â °úÁ¤ÀÌ´Ù. À̸¦ ÀÌ¿ëÇÏ¿© ¾ÕÀ¸·Î »ç¿ëÇÒ ºÎÆ®·Î´õ, Ä¿³ÎÀ» ºñ·ÔÇÑ ¸ðµç ÇÁ·Î±×·¥À» ºôµåÇÒ °ÍÀ̱⠶§¹®ÀÌ´Ù. ´ÙÀ½ ½Ã°£¿¡´Â ºÎÆ®·Î´õ¿¡ ´ëÇØ ¾Ë¾Æº¸°í Ÿ°ÙÀÇ È¯°æ ¼³Á¤¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.

 

Ãâó : °ø°³ SW ¸®Æ÷Æ® 8È£ ÆäÀÌÁö 48 ~ 53 ¹ßÃé(2007³â 8¿ù) - Çѱ¹¼ÒÇÁÆ®¿þ¾î ÁøÈï¿ø °ø°³SW»ç¾÷ÆÀ ¹ß°£

 


[¿ø±Û¸µÅ©] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1646


ÀÌ ±ÛÀ» Æ®À§ÅÍ·Î º¸³»±â ÀÌ ±ÛÀ» ÆäÀ̽ººÏÀ¸·Î º¸³»±â ÀÌ ±ÛÀ» ¹ÌÅõµ¥ÀÌ·Î º¸³»±â

 
Çѱ¹¼ÒÇÁÆ®¿þ¾îÁøÈï¿ø °ø°³SW»ç¾÷ÆÀ