ARM(Cortex-A8, TCC8801)º¸µå Ä¿³Î Å©·Î½ºÄÄÆÄÀÏ ¿¡·¯

   Á¶È¸ 5939   Ãßõ 0    

 안녕하세요.


어찌하다 Telechips TCC8801(Cortex-A8 호환)이 들어있는 안드로이드 셋탑이 손에 들어왔습니다.

(http://xellojunil.tistory.com/84 요런 녀석입니다.)

그런데 개발사는 없어졌고, 안드로이드 진저브레드가 올라가 있고, 할수있는건 별로 없고 해서

리눅스를 올리고 외장하드 달아서 써볼까 하다가 ICS로 판올림 해보려고 커널 컴파일을 해보려는데 자꾸 에러가 나네요.


http://www.cnx-software.com/2012/07/18/building-linux-kernel-3-0-8-for-telechips-tcc8925-mini-pcs-cx-01-z900-tizzbird-n1/

위의 사이트를 참고해서



$ git clone git://github.com/cnxsoft/telechips-linux.git

일단 telechips에서 공개한 kernel-3.0.8 소스를 다운로드하고



$ make ARCH=arm tcc880x_defconfig

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage


명령으로 컴파일 하는데 


init/do_mounts_initrd.o: In function `return_address':
/home/nasadmin/telechips-linux/arch/arm/include/asm/ftrace.h:51: multiple definition of `return_address'
init/do_mounts.o:/home/nasadmin/telechips-linux/arch/arm/include/asm/ftrace.h:51: first defined here
scripts/Makefile.build:427: recipe for target 'init/mounts.o' failed
make[1]: *** [init/mounts.o] Error 1
Makefile:946: recipe for target 'init' failed
make: *** [init] Error 2
make: *** Waiting for unfinished jobs....
  CC      arch/arm/kernel/ptrace.o
  CC      arch/arm/kernel/return_address.o
  CC      arch/arm/kernel/setup.o
arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables" [-Wcpp]
 #warning "TODO: return_address should use unwind tables"
  ^
arch/arm/kernel/return_address.c:65:7: error: redefinition of ‘return_address’
 void *return_address(unsigned int level)
       ^
In file included from include/linux/ftrace.h:20:0,
                 from arch/arm/kernel/return_address.c:12:
/home/nasadmin/telechips-linux/arch/arm/include/asm/ftrace.h:48:21: note: previous definition of ‘return_address’ was here
 extern inline void *return_address(unsigned int level)
                     ^
scripts/Makefile.build:305: recipe for target 'arch/arm/kernel/return_address.o' failed
make[1]: *** [arch/arm/kernel/return_address.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:946: recipe for target 'arch/arm/kernel' failed
make: *** [arch/arm/kernel] Error 2



이런 메시지를 뿜고 진전이 없네요 ㅠㅠ

시간있을때 이쪽 공부좀 해둘걸 그랬습니다.


문제는 return_address.c 의 62, 65번째 라인과 ftrace.h 20번째 라인을 봐도 크게 문제 없어보이는데 

진행이 안되네요.

혹시 관련분야의 전문가 계시면 도움 부탁드릴께요.


걍 집어치우고 라즈베리파이로 갈까봐요 ㅠㅠ




============================

추가 

ftrace.h 파일의 해당부분은

#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND)
/*
 * return_address uses walk_stackframe to do it's work.  If both
 * CONFIG_FRAME_POINTER=y and CONFIG_ARM_UNWIND=y walk_stackframe uses unwind
 * information.  For this to work in the function tracer many functions would
 * have to be marked with __notrace.  So for now just depend on
 * !CONFIG_ARM_UNWIND.
 */

void *return_address(unsigned int);

#else

extern inline void *return_address(unsigned int level)
{
        return NULL;
}

#endif



이렇게 되어 있고


return_address.c 는

void *return_address(unsigned int level)
{
        struct return_address_data data;
        struct stackframe frame;
        register unsigned long current_sp asm ("sp");

        data.level = level + 1;

        frame.fp = (unsigned long)__builtin_frame_address(0);
        frame.sp = current_sp;
        frame.lr = (unsigned long)__builtin_return_address(0);
        frame.pc = (unsigned long)return_address;

        walk_stackframe(&frame, save_return_addr, &data);

        if (!data.level)
                return data.addr;
        else
                return NULL;
}

#else /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) */

#if defined(CONFIG_ARM_UNWIND)
#warning "TODO: return_address should use unwind tables"
#endif

void *return_address(unsigned int level)
{
        return NULL;
}

#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */



이렇게 되어 있네요.



CONFIG_FRAME_POINTER는 설정 부분이 없고 CONFIG_ARM_UNWIND=y 로 되어 있어서 무조건

#if defined(CONFIG_ARM_UNWIND)
#warning "TODO: return_address should use unwind tables"
#endif

이부분에 걸리는 것 같은데 해당부분의 기능이 무엇인지도 모르겠습니다. ㅠㅠ

2CPU를 시작하려고 합니다. 잘부탁드립니다.
ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
Á¤Èñ¼· 2016-11
inline ÇÔ¼öÀε¥ C ÆÄÀÏ¿¡ ±¸Çöü°¡ ÀÖÀ¸´Ï °°Àº ½Éº¼¿¡ ±¸Çöü°¡ 2°³¶ó¼­ ¿¡·¯ ¶ß´Â°Ì´Ï´Ù.
make menuconfig µé¾î°¡¼Å¼­ / ´©¸£¸é °Ë»ö ³ª¿É´Ï´Ù. unwind ÀÔ·ÂÇؼ­ °Ë»öÇϽðí bool tristate µî ¿É¼Ç ²ø¼ö ÀÖ´Â ¿É¼ÇÀ̸é ã¾Æ°¡¼­ ²¨º¸¼¼¿ä.
(°Ë»ö ¾ÈµÇ¸é grep À̳ª ack µî À¸·Î ARM_UNWIND ·Î °Ë»ö)
     
°¨»çÇÕ´Ï´Ù^^ ¸»¾¸ÇØÁֽŴë·Î ÇÏ´Ï ÇØ´ç ºÎºÐÀº ³Ñ¾î°¬´Âµ¥ ±× µÚ·Î ¾Ïû³ª°Ô ¸¹Àº ¿¡·¯¸¦ »Õ¾î¹ö¸®³×¿ä.
ÀÌÁ¾ Ç÷§Æû¿¡ ¸ÅÀÏ°°ÀÌ Æ÷ÆÃÇϽô ºÐµé Á¤¸» ´ë´ÜÇϽŠ°Í °°³×¿ä.


QnA
Á¦¸ñPage 2152/5682
2015-12   1489941   ¹é¸Þ°¡
2014-05   4953457   Á¤ÀºÁØ1
2017-12   4305   À¸¶óÂ÷Â÷Â÷
2015-01   4305   ¼ÛÁÖȯ
2016-03   4306   ÄÉÀÌÁî
2017-03   4306   À¯Æ÷¸®¾Æ
2018-07   4306   Ai20
2016-08   4306   ¹Ú°ß1
2014-10   4306   SeaOtter
2015-04   4306   ÀÀ»ïÀÌ
2015-05   4306   FreeBSD
2014-11   4306   »ßµ¹À̽½ÇÄÀÌ
2013-02   4306   ȸ¿øK
2007-03   4306   ½É¹ÎÀç
2017-01   4306   ÇÑ¿©¸§¹ãÀDzÞ
2017-02   4306   Å×·¯¸®½ºÆ®
2017-11   4306   ¾ç½Ã¿­
2017-01   4306   ¾Ë¾àÅë
2018-05   4306   À̼±È£
2007-01   4306   ÃÖ¸¶·ç
2015-09   4306   ³ª³Ê¿ì¸®
2018-09   4306   ȲÁø¿ì