Gast
#5322353
Hallo, eine bestimmt Struktur soll auf eine Adresse gesetzt werden Wie wird sowas in C realisiert?
|
Anzeige
|
Mikrocontroller: Struktur auf eine bestimmt Adresse legen
Gast
#5322353
Hallo, eine bestimmt Struktur soll auf eine Adresse gesetzt werden Wie wird sowas in C realisiert? C kennt keinen Mechanismus dafür. Je nachdem welche Toolchain du benutzt, gibt es aber oft Möglichkeiten, das zu spezifizieren. zB für ARM GCC: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0474f/BABDJCAA.html
Gast
#5322394
oder stehe ich auf dem Schlauch? Auf den Speicher musst Du natürlich zugreifen dürfen... CC schrieb: > oder stehe ich auf dem Schlauch? > Auf den Speicher musst Du natürlich zugreifen dürfen... Ich denke es geht um Read-Only Programm/Flashspeicher CC schrieb: > Auf den Speicher musst Du natürlich zugreifen dürfen... Und der Compiler/Linker darf die Adresse nicht für etwas anderes verwenden. Mir fallen da spontan zwei Anwendungsfälle ein: 1) Struct abstrahiert eine Registerstruktur. => Vorschlag von CC 2) Struct soll in einem Shared-Memory für ein anderes Modul sein. => Über den Linker das Objekt an eine bestimmte Adresse legen lassen. CC schrieb: >
> > oder stehe ich auf dem Schlauch? > Auf den Speicher musst Du natürlich zugreifen dürfen... struct dein_struct *ps = (struct dein_struct*)(void *) 0x1234;
Gast
#5322434
Das habe ich vergessen zu sagen wofür ich dies benötige. Mit dieser Struktur sollen Zählerstände ausgelesen werden ==> Read Memory
Gast
#5322485
Leo schrieb: > Zählerstände ?? Meinst Du Counter? Also Register?
Gast
#5322599
Zählerstände?? Ist nicht alles ein Zähler: Register, Speicher, IO-Ports... Bei mir kommen sie übrigens immer einmal im Jahr vorbei, um die Zähler zu lesen. Meist bin ich nicht da, dann schicke ich eine Postkarte hin. Wie wäre es, wenn du den Zähler einfach ausdruckst, dann kann man den auch lesen.
Gast
#5322616
PS ist somit ein Pointer vom Typ dein_struct ab der Adresse 0x1000000. Wie kann ich nun auf diese Strukturelemente im Quellcode zugreifen?
Gast
#5322626
Hab den Fehler gesehen. Es funktioniert. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|