Forum: Mikrocontroller und Digitale Elektronik # pragma rambank 1


von latissimo (Gast)


Lesenswert?

hallo!

#pragma rambank 1
char a[20];
#pragma rambank 0

so leg ich die variable auf einer ganz bestimmten bank an.(compiler hat 
gemeckert, auf bank 0 war nicht mehr genug platz)

kann ich jederzeit auf das feld zugreifen? oder ist dazu jedes mal ein 
rambank-wechsel notwendig?

ES GEHT NICHT UM ASM-CODE(bankwechsel immer notwendig) SONDERN UM C 
CODE!!!

von Εrnst B. (ernst)


Lesenswert?

Wenns C code ist, und der Kompiler sein Geld wert ist, musst du nix 
weiter machen.
Allerdings sollte der Compiler/Linker dann auch automatisch Variablen 
auf die Bänke verteilen, sobald die erste voll ist.

Aber solang du nicht verraten willst, welchen Compiler Du nutzt, können 
wir nur raten.

von Peter D. (peda)


Lesenswert?

rambank, das kann doch nur ein PIC sein.
PIC-Code erkennt man daran, daß ein Großteil nur aus Bankumschaltungen 
besteht.

Ich stimme Ernst zu, ein einigermaßen brauchbarer C-Compiler muß solche 
Grausamkeiten vor dem Benutzer verstecken und den nötigen Umschaltcode 
selber erzeugen.


> kann ich jederzeit auf das feld zugreifen? oder ist dazu jedes mal ein
> rambank-wechsel notwendig?

Dazu mußt Du das Manual Deines Compilers befragen.


Peter

von latissimo (Gast)


Lesenswert?

cc5x für PICs
;)

die idee mit #pragma lieferten die errors bei dem build, weil da die 
meldung kam, dass die bank 0 voll ist.

wollte nur wissen, ob dieses 'bankwechseln' nur für das Anlegen der 
variablen notwendig ist, oder ob man das auch für die verwendung der 
variablen machen muss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.