GNUARM, | Category: EmbeddedSystem, wikiX, |
Àü ÀÌ ÅøüÀÎÀ» °¡Áö°í Á¦ ³ëÆ®ºÏ¿¡¼ armboot¸¦ ºôµåÇغýÀ´Ï´Ù.
ÀÏ´Ü ÇöÀç ¿Ã¶ó¿ÍÀÖ´Â gccÀÇ ¹öÀüÀº 3.4.3ÀÔ´Ï´Ù. ¾ÆÁ÷±îÁöµµ ¸¹Àº Å©·Î½º ÄÄÆÄÀÏ·¯ ÆÐÅ°Áö°¡ 2.95.3¿¡ ¸Ó¹°·¯ ÀÖ´Â °Í°ú ºñ±³Çؼ ÀλóÀûÀ̱º¿ä.
ÀÏ´Ü ¼³Ä¡ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ¾Ò½À´Ï´Ù. º°·Î °í¹ÎÇÒ °Í ¾øÀÌ ±×³É ¼³Ä¡ÇÏ°í ¸Ç ¸¶Áö¸·¿¡ cygwin1.dllÀ» ¼³Ä¡ÇϳĴ ¿É¼Ç¿¡¼ Àú´Â cygwinÀÌ ÀÌ¹Ì ¼³Ä¡µÅ ÀÖ¾úÀ¸¹Ç·Î ¼³Ä¡ÇÏÁö ¾Ê´Â´Ù°í Çß½À´Ï´Ù. ¾Æ ±×¸®°í ¹Ù²Û °Ô Àֳ׿ä. GNUARMÀº ±âº»ÀûÀ¸·Î Program Files Æú´õ ¾Æ·¡¿¡ ±ò¸³´Ï´Ù. ÀÌ·¡¼´Â ³ªÁß¿¡ ºôµåÇÒ ¶§ ¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ Makefile¿¡¼ ½áÁÙ ¶§ ºóÄ ¶§¹®¿¡ °í»ýÇÏ°Ô µË´Ï´Ù. ±×·¡¼ ºóÄÀÌ ¾ø°Ô ´Ù¸¥ µð·ºÅ丮 ¾Æ·¡¿¡ ±ò¾Ò½À´Ï´Ù. (project/arm)
¼³Ä¡ÇÏ°í ³ª¼ ÀÏ´Ü ÀçºÎÆà ¾øÀÌ ½ÇÇàÇغ¸±â À§ÇØ PATH¸¦ ¼³Á¤Çß½À´Ï´Ù.
armenv.sh
#!/bin/sh export PATH="${PATH}:/cygdrive/c/project/arm/GNUARM/bin" |
[X20@x20-6rf72xp19yf arm]$ . armenv.sh [X20@x20-6rf72xp19yf arm]$ echo $PATH ....:/usr/bin:/bin:/cygdrive/c/project/arm/GNUARM/bin |
ÀÏ´Ü arm-elf-gcc ½ÇÇàµÇ´ÂÁö º¾´Ï´Ù. (ÀÌ ÆÐÅ°Áö¿¡¼´Â arm-linux-°¡ ¾Æ´Ï¶ó arm-elf-·Î prefix°¡ µÇ¾îÀÖ½À´Ï´Ù.)
[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 |
$ cd work $ tar zxvf ../data/armboot-1.1.0.tgz $ tar jxvf ../data/u-boot-1.1.1.tar.bz2 |
$ cd armboot-1.1.0 $ cp ../u-boot-1.1.1/include/elf.h include/ |
ÀÌÁ¦ Çѹø makeÇغ¾½Ã´Ù. ¸ÕÀú configuration. arm7tdmi º¸µåÀÎ ep7312¸¦ ÇÏ°Ú½À´Ï´Ù.
$ make ep7312_config rm -f include/config.h include/config.mk include/epxa/excalibur.h Configuring for ep7312 Board... |
±×´ÙÀ½Àº ¹°·Ð Çѹø¿¡ µÇÁø ¾ÊÁÒ. MakefileÀ» ¿¾îº¾´Ï´Ù.
CROSS_COMPILE = arm-linux- |
CROSS_COMPILE = arm-elf- |
±×¸®°í
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 |
mkdir tftpboot |
±×¸®°í ºôµåÇÏ´Ùº¸¸é 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±îÁö Àß ³ª¿É´Ï´Ù.