www.mikrocontroller.net

Forum: Projekte & Code MMC/SD--> Big endian / little endian Problem


Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Habe mich schon seit Tagen mit der FAT auf MMC's herumgeschlagen.
Dabei waren mir die Sourcen von Uli, Stefan usw. und die Einträge in
diesem Forum eine grosse Hilfe. Herzlichen Dank an alle...

Konnte bis jetzt die CSD / CID Daten problemlos auslesen und bin jetzt
am lesen des MBR und VBR. Dabei habei ich folgendes festgestellt:
Die Daten in meinem 512Byte Buffer sind alle nach dem Einlesen 1:1
vorhanden. (wie ich mit Winhex auch sehe) Dabei ist mir aber
aufgefallen, dass bei den einzelnen Daten das LSB und MSB vertauscht
ist(!) Dadurch ist es meiner Meinung nicht möglich, den Buffer einem
Struct zu übergeben wie es im Source von Holger Klabunde gemacht wird.
Ich erhalte aus disem Grund jeweils Variablen, die viel zu gross sind.
Wenn ich die Daten einzeln aus dem Array auslese und verrechne stimmen
die Werte.
Was mache ich falsch???
Ich hoffe sehr, das mir jemand weiterhelfen kann.
Im voraus herzlichen Dank.

Gruss Andy

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du auch das PACKED attribut genommen? Kann sein, dass das für
deinen Compiler wichtig ist.


#define PACKED __attribute__((packed))

typedef struct PACKED {
 ...
} Blub;


Was für einen controller/compiler benutzt du?

Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Lupin
Danke für Deine rasche Antwort.
Ich benutze einen IAR Compiler für den Renesas Controller H8S/2378.
Der Compiler kennt leider nur folgende Pragma Direktive:

#pragma bitfields=reversed

dabei werden aber nur Bits und keine Bytes vertauscht, wie ich es
brauche.
Deine obengenanntes "PACKED" kennt er nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.