Forum: Mikrocontroller und Digitale Elektronik PIC RAM komplett löschen in C18 ?


von Thomas W. (thomas0906)


Lesenswert?

Hallo


Ich möchte am Programmanfang alle definierten Variablen auf 0 setzen.
In Assenbler macht man das ja, indem man indirekt adressiert den RAM auf 
0 setzt.

Wie macht man das mit dem C18 Compiler, ohne jede C Variable einzeln 
anzufassen?

Ich würde also einfach den GESAMTEN RAM z.B. eines 18F2620 auf 0 setzen 
wollen. Der geht ja über mehrere Pages...

Wie genau mache ich sowas mit dem C18 Compiler?

Danke und Gruß
Thomas

von Peter D. (peda)


Lesenswert?

In C muß das jeder Compiler automatisch machen.
Alle globalen Variablen sind 0, wenn Du nichts anderes angibst.

Nur lokale, nicht statische Variablen sind bei jedem Funktionseintritt 
zufällig.


Peter

von Thomas W. (thomas0906)


Lesenswert?

Hi

Komisch, ich habe global in "udata" Bitfelder definiert und die Bits 
sind nach Programmstart gesetzt. Da steht teilweise FF drin.
Da muß ich aber nochmal genau nachschauen, was da passiert....

Gruß
Thomas

von Peter D. (peda)


Lesenswert?

Es könnte sein, daß Dein Compiler nicht der Norm (ISO/IEC 9899) 
entspricht, die für C-Compiler gilt.
Dieser Standard wird oft auch C99 genannt.


Peter

von ttl (Gast)


Lesenswert?

schau dir mal das linker-scriptan, da wird das eingestellt

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.