Speichergrenzen beim ARM9 mit GCC

OP #1332660
Guten Abend miteinander

Ich habe folgende Union
1
union sdo_message_head
2
  {
3
    unsigned long int value;
4
    struct message_head
5
      {
6
        unsigned char command;
7
        unsigned short index;
8
        unsigned char sub_index;
9
      }message_head;
10
  }static sdo_message_head;

nun ist meine Frage, ob die Union, die innerhalb der 32bit Grenzen des 
ARM9 liegen dürfte, dort liegt und ob ich auf den short zugreifen könnte 
obwohl der über die 16bit Grenze liegen dürfte.

Ich weiß das ich die Structur geschickter legen könnte, aber ich wollte 
mir weitere Zuweisungen nach Möglichkeit sparen.

Ich benutze einen AT91SAM9263 mit dem GCC zusammen.

Vielen Dank im Vorraus für eure Antworten

Mit freundlichen Grüßen
Stefan Kunz
#1332710
Was dabei wahrscheinlich rauskommt:

[...]
struct message_head
{
        unsigned char command;
        char filler;
        unsigned short index;
        unsigned char sub_index;
} message_head;
[...]

Es sei denn du bringt dem Compiler bei, dass er diese struct ohne 
Alignment packen soll. Nur ist der Zugriff dann weniger effizient.
OP #1332718
Ja das war meine Frage. Hast du ungefähre Werte wie ineffizent der 
zugriff über das packed attribut wäre? Weil Ansonsten müßte ich einen 
32bit Wert erst in diese 3 Bestandteile aufdröseln verarbeiten und dann 
wieder zusammen schreiben müßte. An sich kein Problem, die andere Lösung 
wäre aber halt "eleganter".

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.