기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요
최근에 RTOS 를 arm cpu board 에 porting 해볼려고 합니다. 그래서 이것저것 찾아 보다가 Rtems 를 사용해 볼려고 합니다.
관려 자료를 검색하다가 AESOP 게시판에 관련 내용이 몇있어서 도움을 받고 있습니다.
게시판에 고도리 님이 쓴 toolchain 문서가 있어서 따라해보고 있습니다.
문서내용에 기술하신 방법 그대로 따라 했는데 gcc-4.1.0 compile 부분에서 자꾸 에러가 납니다.
그래서 gcc 여러 버젼을 가져다가 compile 해도 같은 에러가 나는군요
제가 toolchain 은 처음해보는 거라서 어떻게 대처 해야 되는지를 잘 모르겠어요 ㅠ
아래에 에러나는 부분을 캡쳐 했습니다 혹 아시는 분이 있으면 도움 부탁드립니다.
==========================================================================================================
arm-rtems-ar rc ./libgcc.a libgcc/./_udivsi3.o libgcc/./_divsi3.o libgcc/./_umodsi3.o libgcc/./_modsi3.o libgcc/./_dvmd_tls.o libgcc/./_bb_init_func.o libgcc/./_call_via_rX.o libgcc/./_interwork_call_via_rX.o libgcc/./_lshrdi3.o libgcc/./_ashrdi3.o libgcc/./_ashldi3.o libgcc/./_negdf2.o libgcc/./_addsubdf3.o libgcc/./_muldivdf3.o libgcc/./_cmpdf2.o libgcc/./_unorddf2.o libgcc/./_fixdfsi.o libgcc/./_fixunsdfsi.o libgcc/./_truncdfsf2.o libgcc/./_negsf2.o libgcc/./_addsubsf3.o libgcc/./_muldivsf3.o libgcc/./_cmpsf2.o libgcc/./_unordsf2.o libgcc/./_fixsfsi.o libgcc/./_fixunssfsi.o libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o libgcc/./__main.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_powisf2.o libgcc/./_powidf2.o libgcc/./_powixf2.o libgcc/./_powitf2.o libgcc/./_mulsc3.o libgcc/./_muldc3.o libgcc/./_mulxc3.o libgcc/./_multc3.o libgcc/./_divsc3.o libgcc/./_divdc3.o libgcc/./_divxc3.o libgcc/./_divtc3.o libgcc/./_eprintf.o libgcc/./__gcc_bcmp.o libgcc/./_divdi3.o libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o libgcc/./unwind-c.o
*** buffer overflow detected ***: arm-rtems-ar terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x45)[0x4013ceb5]
/lib/i386-linux-gnu/libc.so.6(+0x103c8a)[0x4013bc8a]
/lib/i386-linux-gnu/libc.so.6(+0x1032e8)[0x4013b2e8]
/lib/i386-linux-gnu/libc.so.6(_IO_default_xsputn+0x91)[0x400ab501]
/lib/i386-linux-gnu/libc.so.6(_IO_padn+0xc9)[0x4009f019]
/lib/i386-linux-gnu/libc.so.6(_IO_vfprintf+0x4e3c)[0x4007f8ec]
/lib/i386-linux-gnu/libc.so.6(__vsprintf_chk+0xc9)[0x4013b3b9]
/lib/i386-linux-gnu/libc.so.6(__sprintf_chk+0x2f)[0x4013b2cf]
arm-rtems-ar[0x804e9d0]
arm-rtems-ar[0x8050adc]
arm-rtems-ar[0x80582c2]
arm-rtems-ar[0x804c2da]
arm-rtems-ar[0x804a121]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x400514d3]
arm-rtems-ar[0x804a74d]
======= Memory map: ========
08048000-080ac000 r-xp 00000000 08:01 13155157 /korea-dokdo/aesoptool/arm-rtems-gcc-4.1.0/bin/arm-rtems-ar
080ac000-080ad000 r--p 00063000 08:01 13155157 /korea-dokdo/aesoptool/arm-rtems-gcc-4.1.0/bin/arm-rtems-ar
080ad000-080ae000 rw-p 00064000 08:01 13155157 /korea-dokdo/aesoptool/arm-rtems-gcc-4.1.0/bin/arm-rtems-ar
080ae000-080b2000 rw-p 00000000 00:00 0
0986d000-09954000 rw-p 00000000 00:00 0 [heap]
40000000-40020000 r-xp 00000000 08:01 4862672 /lib/i386-linux-gnu/ld-2.15.so
40020000-40021000 r--p 0001f000 08:01 4862672 /lib/i386-linux-gnu/ld-2.15.so
40021000-40022000 rw-p 00020000 08:01 4862672 /lib/i386-linux-gnu/ld-2.15.so
40022000-40023000 r-xp 00000000 00:00 0 [vdso]
40023000-40025000 rw-p 00000000 00:00 0
40025000-40026000 r--p 002c5000 08:01 2889955 /usr/lib/locale/locale-archive
40026000-4002d000 r--s 00000000 08:01 2905588 /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
4002d000-4002e000 rw-p 00000000 00:00 0
40038000-401dc000 r-xp 00000000 08:01 4862682 /lib/i386-linux-gnu/libc-2.15.so
401dc000-401de000 r--p 001a4000 08:01 4862682 /lib/i386-linux-gnu/libc-2.15.so
401de000-401df000 rw-p 001a6000 08:01 4862682 /lib/i386-linux-gnu/libc-2.15.so
401df000-401e3000 rw-p 00000000 00:00 0
401e3000-403e3000 r--p 00000000 08:01 2889955 /usr/lib/locale/locale-archive
403f6000-40412000 r-xp 00000000 08:01 4849731 /lib/i386-linux-gnu/libgcc_s.so.1
40412000-40413000 r--p 0001b000 08:01 4849731 /lib/i386-linux-gnu/libgcc_s.so.1
40413000-40414000 rw-p 0001c000 08:01 4849731 /lib/i386-linux-gnu/libgcc_s.so.1
bfccf000-bfcf2000 rw-p 00000000 00:00 0 [stack]
make[3]: *** [libgcc.a] 중지됨 (메모리 덤프됨)
make[3]: *** 파일 `libgcc.a'을(를) 지웁니다
make[3]: Leaving directory `/korea-dokdo/aesoptool/rtems_tool/tools/gcc-4.1.0/build/gcc'
make[2]: *** [stmp-multilib] 오류 2
make[2]: Leaving directory `/korea-dokdo/aesoptool/rtems_tool/tools/gcc-4.1.0/build/gcc'
make[1]: *** [all-gcc] 오류 2
make[1]: Leaving directory `/korea-dokdo/aesoptool/rtems_tool/tools/gcc-4.1.0/build'
make: *** [all] 오류 2
==========================================================================================================
toolchain은 rtems 사이트의 각 버전에 따른 manual을 참고하셔야 합니다.
자료실에 올려 놓도록 하겠습니다.
rtems 4.11 때 썼던 것입니다.