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]

AW: [ct-bot] mmc_test mit Fehler...

Absender: Frank Menzel
Datum: Do, 04.12.2008 21:42:48
In-reply-to: <EBF6C2CC-44C0-455B-BFCC-EB8342373C72@xxxxxxxxxxxxxxx>


Hi Timo,

das steht nun im Quelltext bei mir, die Änderung mit Punkt am Ende hatte
wieder Absturz gebracht:
LOG_ERROR("i%ur:0x%xe:0x%x-", i, buffer[i], i & 0xff);

Und ausgeben tut er in den 4 Zeilen des Displays (nach mmc_test()=7):
E:i507r:0xfee:0xfb-
E:i508r:0x7ee:0xfc-
E:i509r:0xffe:0xfd-
E:i510r:0x7fe:0xfe-

Gruß, Frank

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Donnerstag, 4. Dezember 2008 15:28
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] mmc_test mit Fehler...

Hi Frank,

Am 04.12.2008 um 12:31 schrieb Frank Menzel:
> Hi Timo,
> so richtig verstehe ich da den Sinn nicht. Ich habe nach dem 1. Log  
> das return 5 auskommentiert. Denn normalerweise fliegt er ja da  
> schon raus? Durch das Auskommentieren kommt er doch erst in die 2.  
> Schleife zum Vergleichen, um dort mit Return 7 rauszufliegen.

ja er schreibt im Fehlerfall erst die Log-Ausgabe und bricht dann die  
Schleife mit return 5; ab. Mir ging es darum, ob nur ein Wert von den  
512 zu vergleichenden Werten im Puffer falsch ist und die darauf  
Folgenden wieder stimmen, oder ob alle falsch sind. Mit dem return  
weiß man nur, dass mindestens ein Wert falsch ist, daraus lässt sich  
aber kein Fehlerbild ableiten. Aus 500 falschen Werten könnte man  
eventuell Rückschlüsse auf den Fehler ziehen. Das Display-LOG gibt  
natürlich nur vier aus, da bringt das nicht so viel, aber besser als  
nichts.
Dass in der zweiten Schleife dann mit return 7; abgebrochen wird, ist  
nur ein Nebeneffekt und in diesem Fall egal.

> Und das Ganze ist doch der mmc_test, der wiederum normalerweise doch  
> gar nicht an ist und ich trotzdem return 5 bekommen habe... Muss ich  
> da nicht irgendwo beim Karteninit suchen?

Du sagtest, dass die Kartengröße korrekt angezeigt wird, also muss das  
Init korrekt funktioniert haben. Die Frage ist, warum read_sector()  
oder write_sector() zwar keinen Fehler melden, aber offensichtlich  
falsche Daten lesen oder schreiben. Folglich muss da ja irgendwo ein  
Bug oder eine Inkompatibilität sein.

Gruß,
Timo
_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler