heise online | · | c't | · | iX | · | Technology Review | · | Telepolis | · | mobil | · | Security | · | Netze | · | heise open | · | heise resale | · | Autos | · | c't-TV | · | Jobs | · | Kiosk

Aktuelles Heft #### Support Hotline & FAQ Tipps & Tricks Treiber & BIOS Firmenkontakte #### Download Software zu c't Software-Verzeichnis c't-Projekte Testbilder & Vorlagen #### Service Tipp-Datenbank c't-CD-Register Internettarife Telefontarife Virenschutz #### Magazin Heftarchiv c't specials English Pages Benchmarks Red. Stuff Leserforum c't-Bildmotive URLs aus c't Schlagseite #### Aktionen Browsercheck Krypto-Kampagne Schulen ans Netz Netz gegen Kinderporno TV/Radio-Termine #### Info Abo & Heft Veranstaltungen Mediadaten Kontakt Impressum Kleinanzeigen und Veranstaltungen
| c't Projekte - c't-Bot und c't-Sim - Mailinglisten ## c't-Bot und c't-Sim [Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)] [Nach Datum][Nach Thread] ### Re: [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle und eeprom@pc Absender: Achim Pankalla Datum: Di, 08.05.2007 17:10:57 In-reply-to: <8D5B90F4-74FD-45D4-B5B8-DDCAC0B81932@xxxxxxxxxxxxxxx> References: <BCF016D5ED5AC34FBB655D109519ABCF083EBE@xxxxxxxxxxxxxxxxxxxx> <45ED3B46.4030400@xxxxxx> <45EF385C.3080609@xxxxxx> <A2ED0A68-A8F1-438A-B1E3-18033ED489E3@xxxxxxxxxxxxxxx> <45F135B9.5030203@xxxxxx> <45F13A91.6090904@xxxxxxxx> <D053B7F5-6BDD-4052-B45F-28FCF0EF45F8@xxxxxxxxxxxxxxx> <45F2B74F.8090706@xxxxxx> <38A4BFD9-CA32-436A-9A1E-B4E6E0652A5D@xxxxxxxxxxxxxxx> <463E0782.1050406@xxxxxx> <0FBD95CF-DA3B-461B-B12B-9FDCD84984D2@xxxxxxxxxxxxxxx> <463F3E0A.7020605@xxxxxx> <8D5B90F4-74FD-45D4-B5B8-DDCAC0B81932@xxxxxxxxxxxxxxx>
    hallo,
    ein paar kleine antworten.

    Timo Sandmann schrieb:
> `3.) Das Linkerscript geht bei mir nicht. Ich weiß auch nicht, wie` `ich meinen ld dazu bringe, ein Linkerscript zu berücksichten, -T und` `--script funktionieren nicht => kann ich leider nicht testen. Das` `"pei-386" kommt mir aber irgendwie etwas komisch vor.` `das habe ich mir gedacht. das linker-script ist nur für w32. ich habe` `es erstellt, wie herr benz es vorgeschlagen hat. einfach linker mit` `--verbose aufrufen (siehe mail 9.3.2007 13:20 von Hr. Benz), dann` `zeigt er sein standart linkerscript.`
>     Bei mir leider nicht.
`habe mich heute kurz bei einen freund vor seinen rechner mit linux` `gesetzt und folgendes ist dabei rausgekommen:`
    mit
    gcc hello.c (kleine hello world für testzwecke) -Wl,--verbose
    oder
    ld --verbose
    kann man sich ein default linker-script auf der konsole ausgeben lassen.
`auf den debian system waren folgende versionen installiert: gcc 3.3.5 /` `ld 2.15.` `als anhang habe ich ein linkerscript angefügt, schon mit der` `eeprom-sektion.` `ich weiss nicht, ob du mit eclipse arbeitest oder in der shell. ich` `musste das script auch in der shell test, weil auf den linux kein` `eclipse war. es ging dort mit zb:`
    gcc hello.c -Wl,-T linker_script_linux.lk
> `das habe ich in eine datei gepackt und um die eeprom-section ergänzt.` `das script muss wahrscheinlich für jede plattform erstellt werden` `(mac, linux + w32). es muss bei w32 im verzeichnis debug-w32 liegen.` `(achtung ein clean löscht es!)`
> `Ich denke, man kann es auch woanders ablegen, das Default-Script liegt` `ja auch woanders. Im Build-Verzeichnis würde ich gar nichts ablegen...`
`das build verzeichnis wird sicherlich nicht das "endlager" der datei,` `das ist mir auch klar ;-)`
    mit freundlichen gruessen
      a. pankalla
    /* Script for -z combreloc: combine and sort reloc sections */
    OUTPUT_FORMAT("elf32-i386", "elf32-i386",
    	      "elf32-i386")
    OUTPUT_ARCH(i386)
    ENTRY(_start)
    SEARCH_DIR("/usr/i386-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
    /* Do we need any of these for elf?
       __DYNAMIC = 0;    */
    SECTIONS
    {
      /* Read-only sections, merged into text segment: */
      PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS;
      .interp         : { *(.interp) }
      .hash           : { *(.hash) }
      .dynsym         : { *(.dynsym) }
      .dynstr         : { *(.dynstr) }
      .gnu.version    : { *(.gnu.version) }
      .gnu.version_d  : { *(.gnu.version_d) }
      .gnu.version_r  : { *(.gnu.version_r) }
      .rel.dyn        :
        {
          *(.rel.init)
          *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
          *(.rel.fini)
          *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
          *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
          *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
          *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
          *(.rel.ctors)
          *(.rel.dtors)
          *(.rel.got)
          *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
        }
      .rela.dyn       :
        {
          *(.rela.init)
          *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
          *(.rela.fini)
          *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
          *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
          *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
          *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
          *(.rela.ctors)
          *(.rela.dtors)
          *(.rela.got)
          *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
        }
      .rel.plt        : { *(.rel.plt) }
      .rela.plt       : { *(.rela.plt) }
      .init           :
      {
        KEEP (*(.init))
      } =0x90909090
      .plt            : { *(.plt) }
      .text           :
      {
        *(.text .stub .text.* .gnu.linkonce.t.*)
        /* .gnu.warning sections are handled specially by elf32.em.  */
        *(.gnu.warning)
      } =0x90909090
      PROVIDE (__eeprom_start__ = .);
      .eeprom         :
      {
        *(.eeprom)
      }
      .fini           :
      {
        KEEP (*(.fini))
      } =0x90909090
      PROVIDE (__etext = .);
      PROVIDE (_etext = .);
      PROVIDE (etext = .);
      .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
      .rodata1        : { *(.rodata1) }
      .eh_frame_hdr : { *(.eh_frame_hdr) }
      /* Adjust the address for the data segment.  We want to adjust up to
         the same address within the page on the next page up.  */
      . = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1)); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
      /* Ensure the __preinit_array_start label is properly aligned.  We
         could instead move the label definition inside the section, but
         the linker would then create the section even if it turns out to
         be empty, which isn't pretty.  */
      . = ALIGN(32 / 8);
      PROVIDE (__preinit_array_start = .);
      .preinit_array     : { *(.preinit_array) }
      PROVIDE (__preinit_array_end = .);
      PROVIDE (__init_array_start = .);
      .init_array     : { *(.init_array) }
      PROVIDE (__init_array_end = .);
      PROVIDE (__fini_array_start = .);
      .fini_array     : { *(.fini_array) }
      PROVIDE (__fini_array_end = .);
      .data           :
      {
        *(.data .data.* .gnu.linkonce.d.*)
        SORT(CONSTRUCTORS)
      }
      .data1          : { *(.data1) }
      .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
      .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
      .eh_frame       : { KEEP (*(.eh_frame)) }
      .gcc_except_table   : { *(.gcc_except_table) }
      .dynamic        : { *(.dynamic) }
      .ctors          :
      {
        /* gcc uses crtbegin.o to find the start of
           the constructors, so we make sure it is
           first.  Because this is a wildcard, it
           doesn't matter if the user does not
           actually link against crtbegin.o; the
           linker won't look for a file to match a
           wildcard.  The wildcard also means that it
           doesn't matter which directory crtbegin.o
           is in.  */
        KEEP (*crtbegin*.o(.ctors))
        /* We don't want to include the .ctor section from
           from the crtend.o file until after the sorted ctors.
           The .ctor section from the crtend file contains the
           end of ctors marker and it must be last */
        KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
        KEEP (*(SORT(.ctors.*)))
        KEEP (*(.ctors))
      }
      .dtors          :
      {
        KEEP (*crtbegin*.o(.dtors))
        KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
        KEEP (*(SORT(.dtors.*)))
        KEEP (*(.dtors))
      }
      .jcr            : { KEEP (*(.jcr)) }
      .got            : { *(.got.plt) *(.got) }
      _edata = .;
      PROVIDE (edata = .);
      __bss_start = .;
      .bss            :
      {
       *(.dynbss)
       *(.bss .bss.* .gnu.linkonce.b.*)
       *(COMMON)
       /* Align here to ensure that the .bss section occupies space up to
          _end.  Align after .bss to ensure correct alignment even if the
          .bss section disappears because there are no input sections.  */
       . = ALIGN(32 / 8);
      }
      . = ALIGN(32 / 8);
      _end = .;
      PROVIDE (end = .);
      . = DATA_SEGMENT_END (.);
      /* Stabs debugging sections.  */
      .stab          0 : { *(.stab) }
      .stabstr       0 : { *(.stabstr) }
      .stab.excl     0 : { *(.stab.excl) }
      .stab.exclstr  0 : { *(.stab.exclstr) }
      .stab.index    0 : { *(.stab.index) }
      .stab.indexstr 0 : { *(.stab.indexstr) }
      .comment       0 : { *(.comment) }
      /* DWARF debug sections.
         Symbols in the DWARF debugging sections are relative to the beginning
         of the section so we begin them at 0.  */
      /* DWARF 1 */
      .debug          0 : { *(.debug) }
      .line           0 : { *(.line) }
      /* GNU DWARF 1 extensions */
      .debug_srcinfo  0 : { *(.debug_srcinfo) }
      .debug_sfnames  0 : { *(.debug_sfnames) }
      /* DWARF 1.1 and DWARF 2 */
      .debug_aranges  0 : { *(.debug_aranges) }
      .debug_pubnames 0 : { *(.debug_pubnames) }
      /* DWARF 2 */
      .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
      .debug_abbrev   0 : { *(.debug_abbrev) }
      .debug_line     0 : { *(.debug_line) }
      .debug_frame    0 : { *(.debug_frame) }
      .debug_str      0 : { *(.debug_str) }
      .debug_loc      0 : { *(.debug_loc) }
      .debug_macinfo  0 : { *(.debug_macinfo) }
      /* SGI/MIPS DWARF 2 extensions */
      .debug_weaknames 0 : { *(.debug_weaknames) }
      .debug_funcnames 0 : { *(.debug_funcnames) }
      .debug_typenames 0 : { *(.debug_typenames) }
      .debug_varnames  0 : { *(.debug_varnames) }
      /DISCARD/ : { *(.note.GNU-stack) }
    }
Antworten: Re: [ct-bot] eeprom@pc From: Achim Pankalla Referenzen: [ct-bot] Kaibrierung From: Carsten Giesen [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Achim Pankalla Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Achim Pankalla Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Timo Sandmann Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Achim Pankalla Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Benjamin Benz Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Timo Sandmann Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Achim Pankalla Re: [ct-bot] Re: Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Timo Sandmann [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Achim Pankalla Re: [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle From: Timo Sandmann Re: [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle und eeprom@pc From: Achim Pankalla Re: [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle und eeprom@pc From: Timo Sandmann Voriger (Datum): Re: AW: [ct-bot] neues Pfadplanungs-Verhalten nach der Map, Benjamin Benz Nächster (Datum): AW: AW: [ct-bot] neues Pfadplanungs-Verhalten nach der Map, Frank Menzel Voriger (Thread): Re: [ct-bot] Kalibrierung der Distanzsensren mittels EEPROM-Tabelle und eeprom@pc, Timo Sandmann Nächster (Thread): Re: [ct-bot] eeprom@pc, Achim Pankalla Indizes: Datum Thread |

Copyright © 2007 Heise Zeitschriften Verlag | Kritik, Anregungen bitte an c't-WWW | Datenschutzhinweis Impressum