GCC: Zeiger auf Section Segment legen?

Gast #1241260
Lesenswert?

Hallo,

kann mir jemand sagen, wie ein Zeiger auf eine Memory Area gelegt wird? 
Also zB habe ich .batram 0x10000000 - 0x2000000

und als Untersections einige andere frei defnierte

und möchte diesen Bereich bei Programmstart ausnullen. Klar kann ich die 
fixe Adresse so schreiben:

ptr = &0x1000000

aber das wäre eben absolut und nicht das was ich suche.

ptr = &.batram

geht jedenfalls nicht.

Idee?
Gast #1241280
Lesenswert?

> Bitte das & weglassen, sonst wird eine normale (integer?-)Variable
> mit dem Inhalt 0x1000000 angelegt, und ptr wird dann ein pointer
> auf diese Variable

Nö, wird nicht.

> Gefällt dir das besser?
> const void* batram = (void*) 0x1000000;

Einen void* wird er sowieso nicht verwenden können, um den Speicher zu 
beschreiben, und einen const void* schon gar nicht. Wenn, dann eher 
sowas wie:
1
uint8_t* batram = (uint8_t*) 0x1000000;
Gast #1241413
Lesenswert?

Hat sich erledigt:

extern uint32_t _batram_start_;

definieren.

Das Wort wird automatisch bei Rowley im -batram Segment erzeugt.
USB Ram entsprechend __usbram_start__

Damit hat man schon alles und kann einen Zeiger drauf legen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren