- LiFePO4 Speicher Test         
Ergebnis 1 bis 6 von 6

Thema: #pragma pack(1) Problem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Im struct scheint es richtig zu funktionieren. Er belegt jedoch trotzem teilweise mehr Bytes. Er scheint die Strukturen auf 4 Bytes zu "Alignen" vermutlich wegen der 32 Bit Struktur des verwendeten Prozessor.
    Und ja, ich drehe jedes Byte immer 2 mal um, oder dreimal, bevor ich es ver(sch)wende. Früher zumindest bei den 8 Bittern, jetzt eigentlich weniger der LPC1768 hat ja reichlich RAM.

    Hab es nun so probiert:

    #pragma pack(push,1)
    struct
    {
    char name[5];
    char addr[13];
    char plz[5];
    } t;
    #pragma pack(pop)

    Das kann aber unter Umständen zu ineffektiven Code führen, wenn man auf ungrade Adressen innerhalb der Struktur zugreift. Wenn man also genügend Speicher hat, sollte man lieber dem Compiler die Arbeit überlassen,
    und pack ganz weglassen, denke ich.
    Siro

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    42
    Beiträge
    1.780
    Im struct scheint es richtig zu funktionieren. Er belegt jedoch trotzem teilweise mehr Bytes. Er scheint die Strukturen auf 4 Bytes zu "Alignen" vermutlich wegen der 32 Bit Struktur des verwendeten Prozessor.
    Ja, das ist sehr oft so. Ich z.B. habe beruflich mit Blackfin DSPs von Analog Devices zu tun, und wenn man da versehentlich mal auf eine nicht durch 4 teilbare Addresse zugreift, stürzt der DSP sofort mit einer Exception ab.

    Bei #pragma pack geht es übrigens in erster Linie nicht darum Speicher zu sparen, sondern darum ein ganz bestimmtes vorgegebenes Speicherlayout zu erzielen. Das kann insbesondere bei der Kommunikation wichtig sein. Ein Beispiel wäre etwa ein Ethernet Frame, bei dem ja ganz genau vorgegeben ist wie es aussehen muss, und da wäre es extrem kontraproduktiv, wenn so eine Struktur im Speicher irgendwelche Lücken hätte.
    So viele Treppen und so wenig Zeit!

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 15.03.2011, 17:44
  2. Akku-Pack mit Balancieren selber bauen
    Von Hellmut im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 01.03.2010, 11:39
  3. Problem mit Atmega644P Erkennung (Bascom-Versions-Problem)
    Von Rohbotiker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2008, 18:52
  4. Akku-Pack im Eigenbau
    Von zennehoy im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 13.11.2006, 17:02
  5. mH Akku Pack analog und sicher laden
    Von Luke17 im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 24.11.2005, 19:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress