ÀÌ ¸Å´º¾óÀº JKÀüÀÚ(JK Electronics) ¿¡ ÀÇÇؼ­ ¹ø¿ª, ¼öÁ¤, ÀÛ¼º µÇ¾ú°í ¼ÒÀ¯±Ç ¶ÇÇÑ
JKÀüÀÚ(JK Electronics)
ÀÇ °ÍÀÔ´Ï´Ù. ¼ÒÀ¯±ÇÀÚÀÇ Çã°¡¸¦ ¹ÞÁö ¾Ê°í ¹«´ÜÀ¸·Î ¼öÁ¤, »èÁ¦Çϰųª ¹èÆ÷ ÇÒ ¼ö ¾ø½À´Ï´Ù.



 

S5PV210 StartKit Android °³¹ßÀÚ °¡À̵å


 
* Update history

- 2011.12.21 : Ãʱâ Release
   2011.12.26 S/W ¾÷µ¥ÀÌÆ®


 
1. Android 2.3 Áö¿ø ¼ÒÇÁÆ®¿þ¾î(BSP)
2. S5PV210 StartKit allocation of resources for Android
3. °³¹ßȯ°æ ±¸Ãà
4. Ä¿³Î ¼öÁ¤ ¹× ÄÄÆÄÀÏ
   



 

1. Android 2.3 Áö¿ø ¼ÒÇÁÆ®¿þ¾î(BSP)

- S5PV210 StartKit ¼ÒÇÁÆ®¿þ¾î ¸®¼Ò½º ¹× ¿¹Á¦¼Ò½º(»õâ)

2. S5PV210 StartKit allocation of resources for Android

2.1 ¸Þ¸ð¸® ±¸¼º

Address

Size£¨MB£©

Description

0x0000_0000

0x1FFF_FFFF

512

IROM&IRAM

0x2000_0000

0x3FFF_FFFF

512

DDR(512M)

0x4000_0000

0x5FFF_FFFF

512

0x6000_0000

0x7FFF_FFFF

512

 

0x8000_0000

0x8FFF_FFFF

256

DM9000AEP(BANK1)

0x9000_0000

0x9FFF_FFFF

256

 

0xA000_0000

0xAFFF_FFFF

256

 

0xB000_0000

0xBFFF_FFFF

256

NAND(256M)

0xC000_0000

0xCFFF_FFFF

256

 

0xD000_0000

0xDFFF_FFFF

256

 

0xE000_0000

0xFFFF_FFFF

512

 


2.2 Nand Ç÷¡½Ã ±¸¼º

Address

Size

Description

0x0000_0000

0x000F_FFFF

1MB

bootloader£¨u-boot£©

0x0010_0000

0x005F_FFFF

5MB

recovery

0x0060_0000

0x00AF_FFFF

5MB

kernel£¨linux£©

0x00B0_0000 0x00FF_FFFF 5MB ramdisk
0x0100_0000 0x07DF_FFFF 110MB system
0x07E0_0000 0x091F_FFFF 20MB cache
0x0920_0000 0x0FFF_FFFF 110M userdata

Note : ÇöÀç 2.3 Android¿¡¼­´Â 30MB ±îÁö userdata ¿µ¿ªÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

3. °³¹ßȯ°æ ±¸Ãà
3.1 Cross compiler ÅøüÀÎ ¼³Ä¡

½ÇÁ¦ Ÿ°Ù(°³¹ßº¸µå)¿¡¼­ °³¹ß ÁøÇàÀÌ ¾î·Æ±â ¶§¹®¿¡ º¸ÅëÀº Host machine¿¡¼­ °³¹ßȯ°æÀ» ¼³Ä¡ÇÏ°í °³¹ßÀ» ÁøÇà ÇÏ°Ô µË´Ï´Ù. À̶§ Host machine¿¡¼­ °³¹ßº¸µå¼­ ½ÇÇà °¡´ÉÇÑ ½ÇÇàÆÄÀÏÀ» »ý¼º½ÃÄÑÁÖ´Â ÄÄÆÄÀÏ·¯¸¦ Å©·Î½º ÄÄÆÄÀÏ·¯¶ó°í ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é x86ȯ°æÀÇ PC¿¡¼­ ARM, MIPS µîÀÇ non x86½Ã½ºÅÛ¿¡¼­ ¿î¿µµÇ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇÏ°Ô µÇ´Âµ¥ S5PV210 °³¹ßº¸µåÀÇ ÀÓº£µðµå ¸®´ª½ºÀÇ °æ¿ì´Â EABI¶ó´Â ARM»ç¿¡¼­ Á¦°øÇÏ´Â arm cross compiler¿Í JDK 1.5 ÀÌ»ó¸¦ »ç¿ëÇؼ­ °³¹ßÀ» ÁøÇà ÇÏ°Ô µË´Ï´Ù. ¶ÇÇÑ ÀÌ¿Ü¿¡µµ ¾Èµå·ÎÀÌµå ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇϱâÀ§Çؼ­´Â ¸¹Àº ÆÐÅ°Áö°¡ ÇÊ¿ä ÇÕ´Ï´Ù.

ÀÌ °³¹ßº¸µå¿¡¼­ Á¦°øÇÏ´Â ¸ðµç ¸®´ª½º °ü·Ã ¼Ò½º´Â x86 Vmware 6.0¿¡ ¼³Ä¡µÈ Ubuntu 10.04 ¿¡¼­ arm-linux-gcc-4.4.1 ·Î ÄÄÆÄÀÏ ÇÏ¿´½À´Ï´Ù.

(1) ¾Èµå·ÎÀ̵å ÄÄÆÄÀÏ¿ë ÆÐÅ°Áö ¼³Ä¡
Ubuntu¿ë Android ÄÄÆÄÀÏÀ» À§ÇÑ Package ¸¦ ¼³Ä¡ ÇÕ´Ï´Ù. Ubuntu HOST PC ¿¡¼­ ´ÙÀ½ ¸í·ÉÀ» ÀÔ·Â ÇÕ´Ï´Ù.

# su - root °èÁ¤À¸·Î ¸í·É ¼öÇàÀ» À§Çؼ­
root Æнº¿öµå ÀÔ·Â

# apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

s5pv210

(2) JDK ¼³Ä¡
CD2ÀÇ "/android/toolchain/jdk1.6.0_26.tar.bz2" ÆÄÀÏÀ» host PCÀÇ "/home/s5pv210/toolchain" ¿¡ º¹»ç ÇÏ°í ¾Æ·¡ ¸í·ÉÀ» ¼öÇà ÇÕ´Ï´Ù.

# tar -jxvf jdk1.6.0_26.tar.bz2

JDK¸¦ Æí¸®ÇÏ°Ô »ç¿ëÇϱâ À§Çؼ­ Path ȯ°æ º¯¼ö¿¡ Ãß°¡ ÇÕ´Ï´Ù.

# vi /etc/bash.bashrc


PATH=/home/s5pv210/toolchain/arm-2009q3/bin:$PATH
export PATH

export JAVA_HOME=/home/s5pv210/toolchain/jdk1.6.0_26
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH


s5pv210

# exit - root °èÁ¤À» ºüÁ® ³ª¿À±â À§Çؼ­

À§ÀÇ ¼öÁ¤ »çÇ×À» Àû¿ëÇϱâ À§Çؼ­ ¾Æ·¡ ¸í·ÉÀ» ¼öÇà ÇÕ´Ï´Ù.

# source /etc/bash.bashrc

ÅøüÀÎ ¼³Ä¡°¡ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎ ÇÕ´Ï´Ù.

# java -version

s5pv210

ÅøüÀÎ ¼³Ä¡°¡ Á¦´ë·Î µÇ¾ú´Ù¸é À§¿Í°°Àº È­¸éÀÌ ³ª¿É´Ï´Ù.

4. Ä¿³Î ¼öÁ¤ ¹× ÄÄÆÄÀÏ
4.1 u-boot ÄÄÆÄÀÏ

CDÀÇ "/android/src/android_gingerbread_realv210_ver_1_2.tar.bz2" ÆÄÀÏÀ» host PCÀÇ "/home/s5pv210/android/2.3" ¿¡ º¹»ç ÇÏ°í ¾Æ·¡ ¸í·ÉÀ» ¼öÇà ÇÕ´Ï´Ù.
"android_gingerbread_realv210_ver_1_2.tar.bz2" ÀÇ À̸§Àº ¾Èµå·ÎÀÌµå ¼Ò½º ¹öÁ¯¿¡ µû¶ó¼­ À̸§ÀÌ ´Þ¶ó Áú ¼ö ÀÖ½À´Ï´Ù.

# cd /home/s5pv210/anroid/2.3
# tar -jxvf android_gingerbread_realv210_ver_1_2.tar.bz2


À§ÀÇ ¸í·ÉÀ» ¼öÇàÇϸé "android_gingerbread_realv210_ver_1_2" µð·ºÅ丮°¡ »ý¼ºÀÌ µÇ°í uboot, kernel ¼Ò½ºÆÄÀϵéÀÌ ¿©±â¿¡ »ý¼ºÀÌ µË´Ï´Ù.
/home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/bootable : uboot ¼Ò½º µð·ºÅ丮
/home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/kernel : Ä¿³Î ¼Ò½º µð·ºÅ丮


s5pv210

# cd android_gingerbread_realv210_ver_1_2/bootable/uboot_smdkv210/
# ./build


s5pv210

¿¡·¯¾øÀÌ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¸é "/home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/bootable/uboot_smdkv210" µð·ºÅ丮¿¡ "u-boot.bin" ÆÄÀÏÀÌ »ý¼º µË´Ï´Ù.

4.2 ¸®´ª½º Ä¿³Î ¼³Á¤

¾Èµå·ÎÀ̵å¿ë ¸®´ª½º Ä¿³ÎÀº /home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/kernel µð·ºÅ丮¿¡ ÀÖ½À´Ï´Ù.
±×¸®°í ±âº» Ä¿³Î ¼³Á¤ ÆÄÀÏÀº "kernel/arch/arm/configs/realv210_defconfig" ÆÄÀÏ ÀÔ´Ï´Ù.

cd /home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/kernel
make xconfig

make xconfig ¸í·ÉÀÌ ½ÇÆÐ ÇÑ´Ù¸é ¸®´ª½º Ä¿³Î ¼³Á¤ ºÎÁØÀ» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.

¾Æ·¡ ¼³¸íµéÀº "xconfig" ȯ°æÇÏ¿¡¼­ ¼³¸í ÇÕ´Ï´Ù. "menuconfig" ȯ°æ¿¡¼­µµ ºñ½ÁÇÏ°Ô ÁøÇà µÇ¸®¶ó »ý°¢ µË´Ï´Ù.
¿ì¼± ¿­±â ¾ÆÀÌÄÜÀ» ÀÌ¿ëÇؼ­ "realv210_defconfig" ÆÄÀÏÀ» ¼±Åà Çؼ­ °³¹ßº¸µå¿¡ ¸Â´Â ±âº» ¼³Á¤°ªÀ» °¡Áö°í ¿É´Ï´Ù.

´ÙÀ½ ÀýÂ÷´Â ¸®´ª½º Ä¿³Î ¼³Á¤ ºÎºÐ°ú µ¿ÀÏ ÇÕ´Ï´Ù.

4.3 Android ÄÄÆÄÀÏ

¾Èµå·ÎÀ̵带 ºôµåÇϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°Àº ȯ°æ º¯¼ö°¡ ¼³Á¤ µÇ¾î¾ß ÇÕ´Ï´Ù. build_android.sh ÆÄÀÏ¿¡ ÀÌ¹Ì ÀÌ·¯ÇÑ ºÎºÐÀ» ¼³Á¤ÇØ ³õ¾Ò½À´Ï´Ù.


android for smdkv210
[[[[[[[ Build android platform ]]]]]]]
make -j2 PRODUCT-sec_smdkv210-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.2
TARGET_PRODUCT=sec_smdkv210
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=FRF91
============================================



# cd /home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2
# ./build_android.sh


ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¸é ¾Æ·¡¿Í °°Àº µð·ºÅ丮¿¡ ÆÄÀϵéÀÌ »ý¼º µË´Ï´Ù.

/home/s5pv210/android/2.3/android_gingerbread_realv210_ver_1_2/out/target/product/smdkv210 µð·ºÅ丮 ¾È¿¡
kernel.img, ramdisk-yaffs.img, userdata.img, system.img

s5pv210