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] ### [ct-bot] typenprobleme bei ifdef PC ??? Absender: Achim Pankalla Datum: Do, 29.03.2007 19:50:18
    hallo ct-botler,
`beim arbeiten am kalibrier-kode ist mir aufgefallen, das der gcc` `compiler unter win32 bei uint16 vier bytes pro variable in der eeprom` `section anlegt, dh. der int type wäre eigentlich ein word (oder long).` `dies verhalten zeigen durchaus einige compiler, also habe ich kurzer` `hand die typedef im global.h geändert. (das define uint16` `auskommentiert und das "typedef unsigned int word" in "typedef` `unsigned short uint16" geändert) danach schrumpfte die section grösse` `auf eine passende grösse. nun funktionierte aber bot_turn nicht mehr` `korrekt (bot läuft ein stück korrekt, danach dreht er sich nur noch).` `nach dem zurückändern war wieder alles ok.` `unter dem avr-gcc scheint dagegen uint16 wirklich nur 16bit gross zu` `sein (habe ich nicht auf bot verifiziert), da dort die eeprom sektion` `die korrekte (erwartete) grösse hat. (0x72=114)` `das problem muss im mouse kode des pc liegen, den ohne mouse-messung` `läuft der bot korrekt mit bot_turn im labyrinth. der reale bot muss auch` `korrekt arbeiten, da er ja nur 16bit uint's zu haben scheint.` `anbei habe ich die ausgaben von objdump beigefügt, dort kann man die` `grösse der .eeprom sektion gut sehen. der "normale" gcc scheint noch` `lücken in zwischen die daten zu schreiben, um sie auf passende` `adressgrenzen zu bringen (?). insgesamt werden folgende variablen in` `section .eeprom definiert:`
    //Speicher für die Kalibriertabellen der IR-Distanzsensoren
`uint16 __attribute__ ((section (".eeprom"))) sct_left[25]; /*!<` `Tabelle fuer linken Sensor */` `uint16 __attribute__ ((section (".eeprom"))) sct_right[25]; /*!<` `Tabelle fuer rechten Sensor */`
    //Variablen für TEST_AVAILABLE_COUNTERS. Resetkontrollroutine
`uint8 __attribute__ ((section (".eeprom"))) resets=0; /*!< Anzahl` `der Resets seid Rücksetzen des Zählers */` `uint8 __attribute__ ((section (".eeprom"))) resetinfo[10]; /*!<` `Registerflags der letzten 10 Resets */`
    //bot_turn_behaviour Daten
`uint8 __attribute__ ((section (".eeprom"))) err15=1; /*!< Fehler` `bei Drehungen unter 15 Grad */` `uint8 __attribute__ ((section (".eeprom"))) err45=2; /*!< Fehler` `bei Drehungen zwischen 15 und 45 Grad */` `uint8 __attribute__ ((section (".eeprom"))) err_big=4; /*!<` `Fehler bei groesseren Drehungen */`
`meine frage nun, woran scheiterts und wieso wurde uint16, im gegensatz` `zu int16, über den umweg eines define und typedef konstuiert?`
    warte auf erhellende antworten.

    mit freundlichen grüssen
     achim

    ps:
    wems interresiert:
`kalibrieren läuft schon als behaviour (nun auch wieder im ct-sim) und` `durch linker-scripts klappts (danke herr benz für die tipps) auch mit` `.eeprom im pc gcc. auch eine eep-datei wird schon bei mir erzeugt.`
    ct-bot.exe:     file format pei-i386

    Sections:
    Idx Name          Size      VMA       LMA       File off  Algn
      0 .text         00008274  00401000  00401000  00000400  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
      1 .data         00000110  0040a000  0040a000  00008800  2**4
                      CONTENTS, ALLOC, LOAD, DATA
      2 .eeprom       000000a0  0040b000  0040b000  00008a00  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      3 .rdata        000010e0  0040c000  0040c000  00008c00  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, DATA
      4 .bss          00001100  0040e000  0040e000  00000000  2**4
                      ALLOC
      5 .idata        00000854  00410000  00410000  00009e00  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      6 .stab         0003bd24  00411000  00411000  0000a800  2**2
                      CONTENTS, READONLY, DEBUGGING, NEVER_LOAD, EXCLUDE
      7 .stabstr      001119da  0044d000  0044d000  00046600  2**0
                      CONTENTS, READONLY, DEBUGGING, NEVER_LOAD, EXCLUDE
    ct-bot.elf:     file format elf32-little

    Sections:
    Idx Name          Size      VMA       LMA       File off  Algn
      0 .text         00006d94  00000000  00000000  000000b4  2**0
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      1 .data         0000025e  00800060  00006d94  00006e48  2**0
                      CONTENTS, ALLOC, LOAD, DATA
      2 .bss          0000025e  008002be  008002be  000070a6  2**0
                      ALLOC
      3 .noinit       00000000  0080051c  0080051c  00007118  2**0
                      CONTENTS
      4 .eeprom       00000072  00810000  00810000  000070a6  2**0
                      CONTENTS, ALLOC, LOAD, DATA
      5 .stab         0000036c  00000000  00000000  00007118  2**2
                      CONTENTS, READONLY, DEBUGGING
      6 .stabstr      00000084  00000000  00000000  00007484  2**0
                      CONTENTS, READONLY, DEBUGGING
      7 .debug_aranges 000002e4  00000000  00000000  00007508  2**0
                      CONTENTS, READONLY, DEBUGGING
      8 .debug_pubnames 000014c2  00000000  00000000  000077ec  2**0
                      CONTENTS, READONLY, DEBUGGING
      9 .debug_info   000068de  00000000  00000000  00008cae  2**0
                      CONTENTS, READONLY, DEBUGGING
     10 .debug_abbrev 00002788  00000000  00000000  0000f58c  2**0
                      CONTENTS, READONLY, DEBUGGING
     11 .debug_line   0000b2f4  00000000  00000000  00011d14  2**0
                      CONTENTS, READONLY, DEBUGGING
     12 .debug_str    00001986  00000000  00000000  0001d008  2**0
                      CONTENTS, READONLY, DEBUGGING
     13 .debug_macinfo 000f542f  00000000  00000000  0001e98e  2**0
                      CONTENTS, READONLY, DEBUGGING
    ct-bot.exe:     file format pei-i386

    Sections:
    Idx Name          Size      VMA       LMA       File off  Algn
      0 .text         00008194  00401000  00401000  00000400  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
      1 .data         00000110  0040a000  0040a000  00008600  2**4
                      CONTENTS, ALLOC, LOAD, DATA
      2 .eeprom       00000120  0040b000  0040b000  00008800  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      3 .rdata        000010e0  0040c000  0040c000  00008a00  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, DATA
      4 .bss          00001100  0040e000  0040e000  00000000  2**4
                      ALLOC
      5 .idata        00000854  00410000  00410000  00009c00  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      6 .stab         0003bcdc  00411000  00411000  0000a600  2**2
                      CONTENTS, READONLY, DEBUGGING, NEVER_LOAD, EXCLUDE
      7 .stabstr      001119c2  0044d000  0044d000  00046400  2**0
                      CONTENTS, READONLY, DEBUGGING, NEVER_LOAD, EXCLUDE
Antworten: Re: [ct-bot] typenprobleme bei ifdef PC ??? From: Timo Sandmann Voriger (Datum): Re: [ct-bot] ct-Bot-Protokoll, Timo Sandmann Nächster (Datum): Re: [ct-bot] typenprobleme bei ifdef PC ???, Timo Sandmann Voriger (Thread): [ct-bot] CVS-Update: c't-Sim, Benjamin Benz Nächster (Thread): Re: [ct-bot] typenprobleme bei ifdef PC ???, Timo Sandmann Indizes: Datum Thread |

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