Bedeutung von C-Code

Gast #649295
Hallo!
Ich habe eine Frage zu dem unten stehenden C-Code-Fragment. Und zwar was 
genau das Schlüsselwort "code" in den jeweiligen Zeilen bedeutet.
Vielen Dank für jede Hilfe im Voraus!

extern code Tabelle
unsigned int code *z;
z = (unsigned in code *)&Tabelle;
Seite 3
Persönliche Seite #649304
Ich wuerde mal sagen das ist entweder grottenschlechter Stil (falscher 
Gebrauch des Preprozessors) oder da Fehlen die Kommentarzeichen...

und selbst wenn das nen Art Datentyp sein soll, beim extern koennte das 
ja auch aufgehen - auch wenn das abschliessende semikolon fehlt.

Aber "unsigned in code" was soll das fuer nen Krampf sein bittesehr...?
Gast #649325
extern code Tabelle
unsigned int code *z;
z = (unsigned int code *)&Tabelle;

Geschrieben ist das ganze für einen 8051-basierten Micrcontoller und
soll von einem Keil-Compiler übersetzt werden
Bei Tabelle handelt es sich soweit ich weiß um eine in Assembly 
geschreibenen Funktion
Gast #649327
Atmel verwendet in einigen Beispielcodes die Datei compiler.h
Dort wird code als __flash definiert (#define code __flash).
Das bedeutet, dass die Tabelle im Flash gespeichert wird um RAM zu 
sparen.

mfg
#649594
Thomas B. wrote:
> Beim Keil heisst das "code", dass der int z im Flash liegt. z ist dann
> aber konstant und im laufendem Programm nicht mehr veränderbar.

Ne, beim Keil C51 kann man memory specific pointer angeben:

> unsigned int code *z;

bedeutet, daß z ein Zeiger auf unsigned int im Code-memory ist.

z selber ist natürlich veränderbar, sonst würde ja die nachfolgende 
Zuweisung nicht klappen, d.h. z ist im RAM oder in Registern.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.