= \@bcat |
= \@cat{GNUARM} |
= \@scat |
= \@cat{EmbeddedSystem} |
= \@cat{wikiX} |
= \@ecat |
= |
= \def@bverb={ |
= <tt> |
= \dcSave |
= \noDefault |
= } |
= \def@everb={ |
= \dcRestore |
= </tt> |
= } |
= \def@bverbox=<table style="background-color:#eeeeee; border:1 solid;"><tr><td>\@bverb |
= \def@everbox=\@everb</td></tr></table> |
= |
= \TableOfContents |
= |
= !GNUARM |
= freertos.org ¿¡¼ ã¾Ò½À´Ï´Ù. |
= ȨÆäÀÌÁö´Â www.gnuarm.org ÀÌ°í, ARM¿ë Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ À©µµ¿ìÁî(cygwin)¿ë°ú x86¸®´ª½º, Mac OS X ¿ëÀ¸·Î ÆÐŰ¡ÇØ ¹èÆ÷ÇÕ´Ï´Ù. |
= ²Ï ºü¸¥ ¼Óµµ·Î ¾÷µ¥ÀÌÆ® µÅ¸ç Æ÷ÇÔµÈ c¶óÀ̺귯¸®´Â newlibÀÔ´Ï´Ù. |
= |
= Àü ÀÌ ÅøüÀÎÀ» °¡Áö°í Á¦ ³ëÆ®ºÏ¿¡¼ armboot¸¦ ºôµåÇغýÀ´Ï´Ù. |
= |
= ÀÏ´Ü ÇöÀç ¿Ã¶ó¿ÍÀÖ´Â gccÀÇ ¹öÀüÀº 3.4.3ÀÔ´Ï´Ù. ¾ÆÁ÷±îÁöµµ ¸¹Àº Å©·Î½º ÄÄÆÄÀÏ·¯ ÆÐÅ°Áö°¡ 2.95.3¿¡ ¸Ó¹°·¯ ÀÖ´Â °Í°ú ºñ±³Çؼ ÀλóÀûÀ̱º¿ä. |
= |
= ÀÏ´Ü ¼³Ä¡ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ¾Ò½À´Ï´Ù. º°·Î °í¹ÎÇÒ °Í ¾øÀÌ ±×³É ¼³Ä¡ÇÏ°í ¸Ç ¸¶Áö¸·¿¡ cygwin1.dllÀ» ¼³Ä¡ÇϳĴ ¿É¼Ç¿¡¼ Àú´Â cygwinÀÌ ÀÌ¹Ì ¼³Ä¡µÅ ÀÖ¾úÀ¸¹Ç·Î ¼³Ä¡ÇÏÁö ¾Ê´Â´Ù°í Çß½À´Ï´Ù. ¾Æ ±×¸®°í ¹Ù²Û °Ô Àֳ׿ä. GNUARMÀº ±âº»ÀûÀ¸·Î Program Files Æú´õ ¾Æ·¡¿¡ ±ò¸³´Ï´Ù. ÀÌ·¡¼´Â ³ªÁß¿¡ ºôµåÇÒ ¶§ ¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ Makefile¿¡¼ ½áÁÙ ¶§ ºóÄ ¶§¹®¿¡ °í»ýÇÏ°Ô µË´Ï´Ù. ±×·¡¼ ºóÄÀÌ ¾ø°Ô ´Ù¸¥ µð·ºÅ丮 ¾Æ·¡¿¡ ±ò¾Ò½À´Ï´Ù. (project/arm) |
= |
= ¼³Ä¡ÇÏ°í ³ª¼ ÀÏ´Ü ÀçºÎÆà ¾øÀÌ ½ÇÇàÇغ¸±â À§ÇØ PATH¸¦ ¼³Á¤Çß½À´Ï´Ù.%%% |
= armenv.sh |
= \@bverbox |
= \basis |
= #!/bin/sh |
= export PATH="${PATH}:/cygdrive/c/project/arm/GNUARM/bin" |
= \easis |
= \@everbox |
= |
= \@bverbox |
= \basis |
= [X20@x20-6rf72xp19yf arm]$ . armenv.sh |
= [X20@x20-6rf72xp19yf arm]$ echo $PATH |
= ....:/usr/bin:/bin:/cygdrive/c/project/arm/GNUARM/bin |
= \easis |
= \@everbox |
= |
= ÀÏ´Ü arm-elf-gcc ½ÇÇàµÇ´ÂÁö º¾´Ï´Ù. (ÀÌ ÆÐÅ°Áö¿¡¼´Â arm-linux-°¡ ¾Æ´Ï¶ó arm-elf-·Î prefix°¡ µÇ¾îÀÖ½À´Ï´Ù.) |
= \@bverbox |
= \basis |
= [X20@x20-6rf72xp19yf work]$ arm-elf-gcc -mcpu=arm7tdmi hello.c -o h.out |
= [X20@x20-6rf72xp19yf work]$ file h.out |
= h.out: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, not stripped |
= \easis |
= \@everbox |
= |
= !armboot ºôµå |
= armboot´Â ²Ï ¿¾³¯ ¼Ò½ºÀÔ´Ï´Ù. project°¡ u-boot·Î ppcboot¿Í ÇÕÃÄÁ³½À´Ï´Ù. ±×·±µ¥ u-boot¸¦ ºôµåÇÏ¸é ³Ê¹« ¿¡·¯°¡ ¸¹ÀÌ ³ª¼ ¾ÈµÇ°Ú´õ±º¿ä. ¾Æ¹«·¡µµ u-boot¿¡ ¿Í¼± libc ÇÔ¼ö¸¦ ´õ ¸¹ÀÌ ¾²´Â °Í °°½À´Ï´Ù. newlibÀ¸·Ð ¾ÈµÇ´Â µí.. |
= |
= !!»çÀü¿¡ |
= ¸ÕÀú gcc°¡ ±ò·ÁÀÖ¾î¾ß ÇÕ´Ï´Ù. cygwin gcc¸¦ ±î¼¼¿ä. ±âº» ÅøµéÀ» ÄÄÆÄÀÏÇÒ ¶§ ÇÊ¿äÇÕ´Ï´Ù.(´Ù¿î·Î´õµî) »ç½Ç ´Ù¿î·Î´õµî ÅøÀº ¾ÆÁ÷ ½ÇÇàµÇ´Â Áö ½áº¸Áö ¸øÇß½À´Ï´Ù. -_-;;%%% |
= [armboot ȨÆäÀÌÁö | http://www.sourceforge.net/projects/armboot ]¿¡ °¡¼ armboot-1.1.0.tgz¸¦ ¹Þ½À´Ï´Ù.%%% |
- ±×¸®°í u-boot ȨÆäÀÌÁö¿¡ °¡¼ ÃֽŠu-boot ¼Ò½ºµµ ´Ù¿î¹Þ½À´Ï´Ù. ²À ÀÌ°Ô ¾Æ´Ï¾îµµ µÇ´Âµ¥ ¿Ö ÇÊ¿äÇϳĸé elf.h ÆÄÀÏÀÌ ¾ø¾î¼ ÀÔ´Ï´Ù. ¿ø·¡ ¸®´ª½º¿£ elf.h°¡ ±âº» include¿¡ ÀÖÀ»ÅÙµ¥ cygwin¿¡¼± ¾ø´Â °Í °°½À´Ï´Ù. ±×·¡¼ ±×°É Ä«ÇÇÇؼ include µð·ºÅ丮¿¡ ³ÖÀ¸·Á°í ¹Þ¾Æ¿À´Â °Ì´Ï´Ù. |
+ ±×¸®°í [u-boot ȨÆäÀÌÁö | http://sourceforge.net/projects/u-boot]¿¡ °¡¼ ÃֽŠu-boot ¼Ò½ºµµ ´Ù¿î¹Þ½À´Ï´Ù. ²À ÀÌ°Ô ¾Æ´Ï¾îµµ µÇ´Âµ¥ ¿Ö ÇÊ¿äÇϳĸé elf.h ÆÄÀÏÀÌ ¾ø¾î¼ ÀÔ´Ï´Ù. ¿ø·¡ ¸®´ª½º¿£ elf.h°¡ ±âº» include¿¡ ÀÖÀ»ÅÙµ¥ cygwin¿¡¼± ¾ø´Â °Í °°½À´Ï´Ù. ±×·¡¼ ±×°É Ä«ÇÇÇؼ include µð·ºÅ丮¿¡ ³ÖÀ¸·Á°í ¹Þ¾Æ¿À´Â °Ì´Ï´Ù. |
= |
= !!ºôµå |
= ÀÏ´Ü ¾ÐÃàÀ» DZ´Ï´Ù. (¹ÞÀº ¾ÐÃàÆÄÀÏÀº data¿¡ ÀÖ°í ÀÛ¾÷µð·ºÅ丮´Â work¶ó°í °¡Á¤) |
= \@bverbox |
= \basis |
= $ cd work |
= $ tar zxvf ../data/armboot-1.1.0.tgz |
= $ tar jxvf ../data/u-boot-1.1.1.tar.bz2 |
= \easis |
= \@everbox |
= ±×·¯¸é ÇöÀç µð·ºÅ丮 ¾Æ·¡¿¡ armboot-1.1.0 ÀÌ ÂÓ Ç®¸³´Ï´Ù. u-bootµµ DZ´Ï´Ù.%%% |
= \@bverbox |
= \basis |
= $ cd armboot-1.1.0 |
= $ cp ../u-boot-1.1.1/include/elf.h include/ |
= \easis |
= \@everbox |
= ±×¸®°í À§Ã³·³ elf.h¸¦ Ä«ÇÇÇØÁÝ´Ï´Ù. |
= |
= ÀÌÁ¦ Çѹø makeÇغ¾½Ã´Ù. ¸ÕÀú configuration. arm7tdmi º¸µåÀÎ ep7312¸¦ ÇÏ°Ú½À´Ï´Ù. |
= |
= \@bverbox |
= \basis |
= $ make ep7312_config |
= rm -f include/config.h include/config.mk include/epxa/excalibur.h |
= Configuring for ep7312 Board... |
= \easis |
= \@everbox |
= |
= ±×´ÙÀ½Àº ¹°·Ð Çѹø¿¡ µÇÁø ¾ÊÁÒ. MakefileÀ» ¿¾îº¾´Ï´Ù. |
= \@bverbox |
= \basis |
= CROSS_COMPILE = arm-linux- |
= \easis |
= \@everbox |
= À̺κÐÀ» |
= \@bverbox |
= \basis |
= CROSS_COMPILE = arm-elf- |
= \easis |
= \@everbox |
= ÀÌ·¸°Ô ¹Ù²ãÁà¾ß ÇÕ´Ï´Ù. |
= |
= ±×¸®°í |
= \@bverbox |
= \basis |
= 88c88 |
= < cp armboot.bin /tftpboot/armboot.bin |
= --- |
= > cp armboot.bin ./tftpboot/armboot.bin |
= 98c98 |
= < cp armboot.bin /tftpboot/armboot.bin |
= --- |
= > cp armboot.bin ./tftpboot/armboot.bin |
= \easis |
= \@everbox |
= ÀÌ·¸°Ô Ç¥½ÃµÈ ºÎºÐÀ» ¹Ù²ãÁÖ°í (.Ãß°¡) |
= \@bverbox |
= \basis |
= mkdir tftpboot |
= \easis |
= \@everbox |
= ÇÕ´Ï´Ù. |
= |
= ±×¸®°í ºôµåÇÏ´Ùº¸¸é short-load-bytes ¶ó´Â ¿É¼ÇÀÌ ¾ø´Ù¸é¼ ¾ÈµÉ °Ì´Ï´Ù. ÀÌ ÀÌÀ¯´Â gcc ¹öÀüÀÌ ¿Ã¶ó°¡¸é¼ ÀÌ ¿É¼ÇÀÇ À̸§ÀÌ ¹Ù²î¾ú±â ¶§¹®ÀÔ´Ï´Ù. cpu/arm720t/config.mkÀÇ ³»¿ëÁß -mshort-load-bytes¸¦ -malignment-traps ·Î ¹Ù²ãÁÝ´Ï´Ù. |
= |
= ±×¸®°í ¼Ò½ºÁß¿¡ Á¶±Ý¾¿ ¹Ù²ã¾ß ÇÒ °Ô Àִµ¥ ¹¹³Ä¸é "·¹ÀÌºí µÚ¿¡ ¾Æ¹« Äڵ嵵 ¾ø´Ù." ¶ó´Â ¿¡·¯ÀÔ´Ï´Ù. break³ª returnÀ» Ãß°¡ÇÏ¸é µË´Ï´Ù.%%% |
= board/ep7312/flash.cÀÇ 119Çà¿¡ return; À» Ãß°¡ÇÏ°í%%% |
= net/net.cÀÇ 561Çà¿¡ break;¸¦ Ãß°¡ÇÕ´Ï´Ù. |
= |
= ºôµåÇغ¸¸é ÀÌÁ¦ Àß µÉ °Ì´Ï´Ù. ¸î¸î °æ°í´Â ³ª¿ÀÁö¸¸ armboot.bin±îÁö Àß ³ª¿É´Ï´Ù. |
= |