blob bootloader compile

mikozzing의 이미지


안녕하세요..

이제 막 임베드 공부를 시작하여 부트로더 공부해 보겠다고 blob 컴파일 중인데

자꾸만 이상한 에러가 나서 질문 올립니다.

bootloader는 lart 사이트에서 blob-2.0.5-pre2.tar.gz

컴팔러는 http://handhelds.org/download/projects/toolchain/ 에서 arm-linux-gcc-3.4.1.tar.bz2 을

다운받아 설치 했습니다.

assabet으로 configure후 make 해보니

asm-arm/arch-sa1100/SA-1100.h 파일이 없다고 나와서 해당 폴더에 가보니 asm-arm이라는 폴더는 없고

asm,asm-generic이란 폴더만 있어서 asm을 asm-arm으로 폴더명을 바꿔줬더니 컴파일이 되는가 싶더니

아래와 같은 에러 메세지를 쫘악~

make[2]: Entering directory `/blob-2.0.5-pre2/src/blob'
arm-linux-gcc -Os -I/usr/src/linux-2.6.9/include -Wall -march=armv4 -mtune=strongarm1100 -fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc -static -nostdlib -o blob-rest-elf32 -Wl,-T,rest-ld-script trampoline.o flashasm.o stack.o testmem2.o bootldrpart.o commands.o flash.o initcalls.o linux.o main.o memory.o param_block.o partition.o reboot.o uucodec.o xmodem.o assabet.o intel32.o -L../../src/lib -lblob -lgcc
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_udivsi3.oS)(.text+0xec):/work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/gcc/config/arm/lib1funcs.asm:615: relocation truncated to fit: R_ARM_PLT32 __div0
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_umodsi3.oS)(.text+0xc0):/work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/gcc/config/arm/lib1funcs.asm:656: relocation truncated to fit: R_ARM_PLT32 __div0
collect2: ld returned 1 exit status
make[2]: *** [blob-rest-elf32] Error 1
make[2]: Leaving directory `/blob-2.0.5-pre2/src/blob'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/blob-2.0.5-pre2/src'
make: *** [all-recursive] Error 1

어떻게 해결하면 좋을지 알려 주셨으면 감사하겠습니다.

jachin의 이미지

부트로더의 원리를 이해하신다면,
asm-arm 디렉터리 내부의 헤더들이 무엇을 의미하는지 아셨으리라 생각합니다.
blob 부트로더를 ARM 기반 시스템에서 구동하려면 ARM Instruction Set 으로 구성한 바이너리 파일,
즉 부트로더 이미지가 필요하다는 것을 이해하시리라 믿습니다.
그러한 ARM 시스템에서 SA-1100.h는 Intel Strong ARM 기반 시스템에 대한 Memory Organization,
Extended Instruction Set, Bus Architecture, Interrupt Organization 등 시스템에 필수적인 정보를
담고 있습니다.
즉, 그러한 시스템의 기본 정보 없이 일반 asm-generic 내의 내용을 이용하여 컴파일 하게 만든다면,
크로스 컴파일러(arm-gcc)로 구성하려는 binary image 구성에 문제가 생깁니다.

해결방법은 asm-arm 을 포함하고 있는 커널 소스를 사용하시는 것입니다.
실제 지금 사용하고 계신 리눅스 배포판의 패키지 중, 개발 버전의 커널 소스 패키지를 설치하시거나,
kernel.org 에서 새 전체 커널 소스를 받은 후, /usr/src/linux 에 연결하여 make 를 진행해보시는 것이
좋으리라 생각합니다.
====
하나는 전부, 전부는 하나

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.