Daniel J Song's page
A R C H I V E S
|
XScaleCrossToolsInstall
¿ø¹® http://www.falinux.com/win/02_config/010_XScaleToolChain/index.htm
1. °³¿äÀÌ ¹®¼´Â XScale ¿ë °³¹ß ȯ°æÀÎ Å©·Î½º Åø üÀÎÀ» ¼Ò½º ÆÐÄÉÁö·Î ¸¸µå´Â °Í¿¡ ´ëÇÑ ¹®¼ÀÔ´Ï´Ù.. ÀÌ ¹®¼´Â EZ-X5¸¦ À§ÇÑ XScale ¿ë Å©·Î½º ÄÄÆÄÀÏ È¯°æÀ» ±¸ÃàÇϱâ À§ÇÑ ¹æ¹ýÁß RPMÀ» ÀÌ¿ëÇÏ´Â ¹æ½ÄÀÌ ¾Æ´Ñ GNU¿¡¼ Á¦°øÇÏ´Â ¼Ò½º ÆÐÄÉÁö¸¦ ÀÌ¿ëÇÏ¿© ±¸¼ºÇÏ´Â ¹æ½Ä¿¡ ´ëÇÏ¿© ±â¼úÇÑ ¹®¼ÀÔ´Ï´Ù ÀÌ ¹®¼¿¡ ÀÇÇØ¼ ±¸ÃàµÈ Å©·Î½º ÄÄÆÄÀÏ·¯´Â ´ëºÎºÐÀÇ arm ±â¹Ý ÇÁ·Î¼¼½º¸¦ Áö¿øÇÕ´Ï´Ù.
2. ¹«¾ùÀ» ±¸Çϴ°¡?¸®´ª½º¸¦ ÀÌ¿ëÇÑ °³¹ßȯ°æÀ¸·Î ¼±ÅÃÇß´Ù¸é Å©·Î½º ÄÄÆÄÀÏ È¯°æÀ» ±¸ÃàÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ Å©·Î½º ÄÄÆÄÀÏ È¯°æ¿¡ Æ÷ÇԵǴ °ÍÀº ´ÙÀ½°ú °°Àº ÆÐÄÉÁö°¡ ÇÊ¿ä·Î Çϰí ÀÌ ÆÐÄÉÁöµéÀÇ ¸ðÀ½À» ÀϹÝÀûÀ¸·Î Å©·Î½º ÄÄÆÄÀÏ Åø üÀÎÀ̶ó°íµµ ÇÕ´Ï´Ù. 1) binutils : ¾î¼Àºí·¯ ¹× ·Î´õ ±âŸ Åø ( GNU ) 2) glibc : Å©·Î½º ÄÄÆÄÀÏ ±¸ÃàÀ» À§ÇÑ ¶óÀ̺귯¸® ¹× ÀÏ¹Ý ¶óÀ̺귯¸® 3) gcc : ÄÄÆÄÀÏ·¯ ( ½Ã±×³Ê½º ) 4) Ä¿³Î : Ä¿³Î ½î½º 5) gdb : µð¹ö°Å ÀÌ ¹®¼´Â ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/Oerlikon-DevKit-XScalev2.tar.gz ¿¡¼ Á¦°øµÇ´Â ¹®¼¸¦ ±â¹ÝÀ¸·Î ¸¸µé¾î Á³À¾´Ï´Ù.
3. ¾îµð¼ ±¸Çϴ°¡?°¡Àå °£´ÜÇÑ ¹æ¹ýÀº º» ȨÆäÀÌÁö ¿¡¼ ±¸ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿Ö? º»°»ç°¡ À̱ÛÀ» ¾´ ÈÄ¿¡ ´Ù¿î ¹ÞÀ»¼ö ÀÖ°Ô ÇÒ°ÍÀ̱⠶§¹®ÀÌÁö¿ä. ( º¸µå ÆÇ¸Å ½ÃÁ¡ ºÎÅÍ) ¿ø·ÐÀûÀÎ ¹æ¹ýÀº ´ÙÀ½¿¡¼ ±¸ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¹®¼´Â À̰÷¿¡¼ ±¸ÇÏ´Â °ÍÀ» Âü°í ÇÒ°ÍÀÔ´Ï´Ù. 1) binutils : ¾î¼Àºí·¯ ¹× ·Î´õ ±âŸ Åø ( GNU ) ±¸ÇÒ¼ö ÀÖ´Â °÷ °ú ÆÄÀÏ http://www.ibiblio.org/pub/Linux/kernel.org/pub/linux/devel/binutils/binutils-2.13.90.0.16.tar.gz 2) glibc : Å©·Î½º ÄÄÆÄÀÏ ±¸ÃàÀ» À§ÇÑ ¶óÀ̺귯¸® ¹× ÀÏ¹Ý ¶óÀ̺귯¸® ±¸ÇÒ¼ö ÀÖ´Â °÷ °ú ÆÄÀÏ ftp://ftp.gnu.org/gnu/glibc/glibc-2.3.1.tar.gz ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.1.tar.gz 3) gcc : ÄÄÆÄÀÏ·¯ ( ½Ã±×³Ê½º ) ±¸ÇÒ¼ö ÀÖ´Â °÷ °ú ÆÄÀÏ ftp://ftp.gnu.org/gnu/gcc/gcc-3.2.1.tar.gz 4) Ä¿³Î : Ä¿³Î ½î½º ÀÌ ºÎºÐÀº Ä¿³Î ¼Ò½º ±¸Çϱ⸦ ÂüÁ¶ ÇÒ°Í 5) gdb : µð¹ö°Å ±¸ÇÒ¼ö ÀÖ´Â °÷ °ú ÆÄÀÏ http://pluto.cdpa.nsysu.edu.tw/sourceware/gdb/releases/gdb-5.3.tar.gz 6) ÆÐÄ¡ ÈÀÏ ±¸ÇÒ¼ö ÀÖ´Â °÷ °ú ÆÄÀÏ ftp://ftp.arm.linux.org.uk/pub/linux/arm/toolchain/Oerlikon-DevKit-XScalev2.tar.gz
4. ¼³Ä¡ Àü ÀÛ¾÷´Ù¿î ¹ÞÀº ÈÀÏ ¸ñ·ÏÀ» Á¤¸®Çϸé 1) binutils-2.13.90.0.16.tar.gz 2) diff-2.4.19-rmk7-pxa3.gz 2-1) patch-2.4.19-rmk7.gz 2-2) linux-2.4.19.tar.gz 3) gcc-3.2.1.tar.gz 4) glibc-2.3.1.tar.gz 5) glibc-linuxthreads-2.3.1.tar.gz 6) gdb-5.3.tar.gz 7) Oerlikon-DevKit-XScalev2.tar.gz µî ÃÑ 9°³°¡ µË´Ï´Ù. ¼³Ä¡ÇÏ·Á°í ÇÏ´Â ¸®´ª½º ¸Ó½Å¿¡ ´ÙÀ½ µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. mkdir -p /var/download/ ( À̰ÍÀº º»°»ç°¡ »ç¿ëÇϱâ À§ÇÏ¿© ÆíÀÇ»ó ÇѰÍÀÌÁö Àý´ëÀûÀΰÍÀº ¾Æ´Ï¹Ç·Î ¿©·¯ºÐÀº °¢ÀÚ Àû´çÇÑ µð·ºÅ丮¸íÀ» ¼±ÅÃÇÏ¸é µË´Ï´Ù.) /var/download/ ¿¡ ´Ù¿î ¹ÞÀº ÈÀÏÀ» °¡Á®´Ù ³õ½À´Ï´Ù.
5. ¼³Ä¡ Àü ÁÖÀÇ »çÇ×ÀÌÁ¦ºÎÅÍ ÁøÇàÇÏ´Â ¼ø¼´Â ²À! ÁöÄÑ¾ß ÇÕ´Ï´Ù. ÀÌÀ¯´Â °¢ ¼³Ä¡µÇ´Â ÆÐÄÉÁöµéÀÇ ÀÇÁ¸ °ü°è°¡ Àֱ⠶§¹®ÀÔ´Ï´Ù. ¼³Ä¡´Â root ±ÇÇÑÀ¸·Î ÇϽñ⠹ٶø´Ï´Ù ÀÏ´Ü ÇöÀç º¸¿©µå¸®´Â /var/downloadÀÇ µð·ºÅ丮´Â ¸ð½ÀÀº ´ÙÀ½°ú °°½À´Ï´Ù. ¿©±â¼ linux µð·ºÅ丮´Â Xscale(PXA255) ¿ëÀ¸·Î ÆÐÄ¡µÈ ¸®´ª½º Ä¿³Î µð·ºÅ丮 ÀÔ´Ï´Ù. ÀÌ ºÎºÐÀº Àڽſ¡°Ô ¸Â´Â arm Ä¿³ÎÀ» ±¸Çϼż ¼³Ä¡ ÇϽʽÿÀ
6. ÆÐÄ¡ ÈÀÏ ¼³Ä¡±âÁ¸ÀÇ ÅøÃ¼Àο¡´Â arm¿¡ °ü·ÃµÈ ¸î°¡Áö ¹ö±× µéÀÌ ÀÖÀ¾´Ï´Ù. ÀÌ ¹ö±×¿¡ ´ëÇÑ ÆÐÄ¡ ÈÀÏÀ» ¸ÕÀú ±¸ÇÏ¼Å¾ß ÇÕ´Ï´Ù. ´Ù¿î·ÎµåµÈ ÈÀÏÁß Oerlikon-DevKit-XScalev2.tar.gz ¸¦ Ç®¸é °ü·Ã ÆÐÄ¡ ÈÀϰú ÀÚµ¿È ½ºÅ©¸³Æ®°¡ ÀÖÀ¾´Ï´Ù. ÀÌ ¹®¼µµ ÀÌ ÀÚµ¿È ½ºÅ©¸³Æ®ÀÇ ³»¿ëÀ» º¸°í ÂüÁ¶ ÇÑ °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¼öÇàÇÏ¿© ÆÐÄ¡ ÈÀÏÀ» /var/download/ µð·ºÅ丮¿¡ ¿Å°Ü ³õ½À´Ï´Ù. root@armpro download# tar zxvf Oerlikon-DevKit-XScalev2.tar.gz Oerlikon-DevKit-v2/ Oerlikon-DevKit-v2/INSTALL Oerlikon-DevKit-v2/binutils-2.13.90.0.16-oerlikon.patch Oerlikon-DevKit-v2/gcc-3.2.1-oerlikon.patch Oerlikon-DevKit-v2/build-Oerlikon-DevKit-v2.sh root@armpro download# cd Oerlikon-DevKit-v2/ root@armpro Oerlikon-DevKit-v2# cp binutils-2.13.90.0.16-oerlikon.patch ../ root@armpro Oerlikon-DevKit-v2# cp gcc-3.2.1-oerlikon.patch ../ root@armpro Oerlikon-DevKit-v2# cd .. root@armpro download#
7. GDB ÆÐÄÉÁö ¼³Ä¡GDB´Â Å©·Î½º ÄÄÆÄÀÏ ÅøÃ¼ÀÎÀÇ ¼ø¼¿Í »ó°ü¾øÀÌ ¾ðÁ¦µçÁö ¼³Ä¡°¡ °¡´ÉÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¼³Ä¡ÇÏ¸é µË´Ï´Ù. root@armpro download# tar zxvf gdb-5.3.tar.gz ÀÌ ¸í·ÉÀ» ¼öÇàÇϸé gdb-5.3 ¶õ µð·ºÅ丮°¡ »ý±é´Ï´Ù. root@armpro download# cd gdb-5.3 root@armpro gdb-5.3# ./configure --target=arm-linux --build=i686-pc-linux-gnu --prefix=/usr root@armpro gdb-5.3# make root@armpro gdb-5.3# make install ¾Æ¸¶µµ º° ¿¡·¯ ¾øÀÌ ³¡³¯ °Í ÀÔ´Ï´Ù. Á¦´ë·Î ¼³Ä¡µÇ¾ú´Ù¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» Ä¡¸é ¾Æ·¡¿Í °°ÀÌ ³ª¿µË´Ï´Ù.
8. Binutils ÆÐÄÉÁö ¼³Ä¡º»°»ç°¡ Çϴ´ë·Î ±×³É µû¶ó¸¸ ÇØµµ º°¹«¸® ¾øÀÌ ¼³Ä¡ µÉ °ÍÀÔ´Ï´Ù. root@armpro /# cd /var/download/ root@armpro download# tar zxvf binutils-2.13.90.0.16.tar.gz root@armpro download# patch -p1 < binutils-2.13.90.0.16-oerlikon.patch root@armpro download# cd binutils-2.13.90.0.16 root@armpro binutils-2.13.90.0.16# ./configure --target=arm-linux --prefix=/usr --with-cpu=xscale --nfp root@armpro binutils-2.13.90.0.16# make root@armpro binutils-2.13.90.0.16# make install ¾Æ¸¶µµ º° ¹«¸®¾øÀÌ ³¡³µÀ» °ÍÀÔ´Ï´Ù. ÀÌ ºÎºÐÀ» ¼öÇàÇÏ°í ³ª¸é /usr/arm-linux ¶õ µð·ºÅ丮°¡ »ý¼ºµË´Ï´Ù. ´ëºÎºÐÀÇ ½ÇÇàÈÀÏÀº /usr/bin¿¡ º¹»ç µË´Ï´Ù. ½ÇÇàÈÀϸíÀº ¾Õ¿¡ arm-linux- ºÙ½À´Ï´Ù.
9. Ä¿³Î ¼Ò½º ¼³Ä¡ ¶Ç´Â ¼³Ä¡ Á¡°Ë ¹× ó¸® ³»¿ëÄ¿³Î ¼Ò½º¸¦ Binutils ÆÐÄÉÁö ´ÙÀ½¿¡ ¼³Ä¡ÇÏ´Â ÀÌÀ¯´Â Çì´õ ÈÀÏ ¶§¹®ÀÔ´Ï´Ù. Å©·Î½º ÄÄÆÄÀÏ ¼³Ä¡ ¸ñÀûÀÌ ¾Ï¿ë À̶ó¸é Ä¿³Î ¼Ò½º´Â ¾Ï ÆÐÄ¡±îÁö ¼öÇàµÇ¾î¾ß ÇÕ´Ï´Ù. ¿©±â¼ ¼³¸íÇÏ´Â °ÍÀº XScale ¿ëÀ̱⠶§¹®¿¡ XScaleÆÐÄ¡±îÁö´Â ¼öÇàµÇ¾îÁø ¼Ò½º¿©¾ß µË´Ï´Ù ÀÌ¿¡ ´ëÇÑ ¹®¼´Â ´Ù¸¥ ¹®¼¸¦ ÂüÁ¶Çϱ⠹ٶø´Ï´Ù. ²À ÀÌ Ä¿³Î ¼Ò½º¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ ÁøÇàÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ ¹®¼¿¡¼´Â /var/download/linux/ ¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â °ÍÀ¸·Î ¼³¸íÇÕ´Ï´Ù. root@armpro /# cd /var/download/linux root@armpro /# make menuconfig½Ã½ºÅÛÀ» pxa255 ¿ëÀ¸·Î ¼³Á¤ÇÑ´Ù ( pxa250 ¿É¼ÇÀ» ¼±ÅÃÇÏ¸é µË´Ï´Ù. )
10. gcc ÆÐÄÉÁö ¼³Ä¡ÀÌÁ¦ ½ÇÁ¦ Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ ¸¸µì´Ï´Ù. root@armpro /# cd /var/download/ root@armpro download# tar zxvf gcc-3.2.1.tar.gz ÆÐÄ¡¸¦ °¡ÇÕ´Ï´Ù. root@armpro download# patch -p1 < gcc-3.2.1-oerlikon.patch ¸î°¡Áö ÈÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù. root@armpro download# cd gcc-3.2.1 root@armpro gcc-3.2.1# perl -pi -e 's/^(TARGET_LIBGCC2_CFLAGS.*)/$1 -Dinhibit_libc -D__gthr_posix_h/' gcc/config/arm/t-linux root@armpro gcc-3.2.1# echo 'T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h' >> gcc/config/arm/t-linuxÀ̰ÍÀº ½ÇÁ¦·Î ´ÙÀ½°ú °°ÀÌ ÈÀÏÀ» Á÷Á¢ °íÄ¡´Â °Í°ú µ¿ÀÏ ÇÑ °ÍÀÔ´Ï´Ù. =====ÆíÁý±â¸¦ »ç¿ëÇßÀ»¶§====================================================================== root@armpro gcc-3.2.1# cd gcc/config/arm/ root@armpro arm# vi t-linux=====ÆíÁý±â¸¦ »ç¿ëÇßÀ»¶§====================================================================== ÀÌÁ¦ ȯ°æ ¼³Á¤°ú ÄÄÆÄÀÏÀ» ¼öÇàÇÕ´Ï´Ù. root@armpro gcc-3.2.1# ./configure --target=arm-linux --prefix=/usr --with-headers=/var/download/linux/include --disable-shared --disable-threads --enable-languages="c" --nfp --with-cpu=xscale --without-fp --with-softfloat-support=internalÀνºÅç±îÁö Á¤»óÀûÀ¸·Î ¼öÇà µÇ¾ú½À´Ï´Ù. È®ÀÎÀ» À§Çؼ ´ÙÀ½°ú °°ÀÌ ¼öÇàÇØ º¾´Ï´Ù.
11. glibc ÆÐÄÉÁö ¼³Ä¡root@armpro /# cd /var/download/ root@armpro download# tar zxvf glibc-2.3.1.tar.gz root@armpro download# tar -C glibc-2.3.1 -zxf glibc-linuxthreads-2.3.1.tar.gz root@armpro download# cd glibc-2.3.1 root@armpro glibc-2.3.1# ./configure arm-linux --build=i686-pc-linux-gnu --with-headers=/var/download/linux/include --enable-add-ons --enable-shared --prefix=/usr/arm-linux --with-cpu=xscale --without-fp --enable-kernel=2.4.19 root@armpro glibc-2.3.1# make root@armpro glibc-2.3.1# make install 12. gcc À缳ġÀÌÁ¦ ¸¶Áö¸·À¸·Î gcc¸¦ À缳ġÇÏ¿©¾ß ÇÑ´Ù. ¹°·Ð ¿É¼ÇÀÌ ´Þ¶óÁø´Ù. root@armpro /# cd /var/download/ root@armpro download# rm -rf gcc-3.2.1 root@armpro download# tar zxvf gcc-3.2.1.tar.gz root@armpro download# patch -p1 < gcc-3.2.1-oerlikon.patch root@armpro download# cd gcc-3.2.1 root@armpro gcc-3.2.1# ./configure --target=arm-linux --prefix=/usr --with-headers=/var/download/linux/include --with-cpu=xscale --with-softfloat-support=internal --enable-languages=c,c++ --nfp 13. ½ÃÇèÁ¤»óÀûÀÎ ´ÙÀ½°ú °°ÀÌ ½ÃÇèÇØ º¸ÀÚ test.c ¶õ ÈÀÏÀ» Çϳª ¸¸µç´Ù. ´ÙÀ½°ú °°ÀÌ ÄÄÆÄÀÏ ÇÑ´Ù. arm-linux-gcc -o test test.c ´ÙÀ½°ú °°ÀÌ ³ª¿À¸é Á¤»óÀÌ´Ù. root@armpro tmp# file test test: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked (uses shared libs), not stripped ÀÌ·¸°Ô ±¸ÃàÇÑ Å©·Î½º ÄÄÆÄÀÏ·¯´Â ´ç¿¬È÷ xscaleµµ ÄÄÆÄÀÏÀÌ µÇ¸ç ±×¿Ü arm °èÅëÀº ¸ðµÎ ÄÄÆÄÀÏ µÈ´Ù. ¾î¶² ÇÁ·Î¼¼½ºµéÀ» Áö¿øÇϴ°¡¸¦ º¸°í ½Í´Ù¸é arm-linux-gcc -dumpspecs Çϸé Áö¿øµÇ´Â ÇÁ·Î¼¼½º ¸ñ·ÏÀÌ º¸ÀÏ °ÍÀÌ´Ù.
Posted by rommance at 2005-03-23 15:02:31 . 3075 hits . source . info . diff . 0.233 sec |