Forum: Compiler & IDEs Array im Flash


von TechInfo (Gast)


Lesenswert?

Hallo,

ich habe nun mein Array im Flash abgelegt
1
float array[30] __attribute__ ((section (".flash")));

und mittels einer Schreibe-ins-Flash-Routine initialisiert. Die Section 
"Flash" umfasst einen kompletten Sektor innerhalb des Flash-Bausteins.

Auf die Daten im Flash wird während des Programmablaufs lesend 
zugegriffen.

Kann es nun passieren, dass nach einem erneuten kompilieren und linken 
der Compiler das Array in einem anderen Teil der Section "Flash" 
definiert, der bspw. gar nicht mit Werten beschrieben ist? Dann würden 
meine Routinen ja nicht mehr funktionieren.

von TechInfo (Gast)


Lesenswert?

Vielleicht formuliere ich die Frage nochmal anders:

Werden Variablen, die im Flash definiert werden, bei jedem neuen 
Compile-Vorgang wieder mit der selben Adresse definiert, wenn sonst 
nichts in diesem Bereich des Flashs abgelegt wird?

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

TechInfo wrote:
> Werden Variablen, die im Flash definiert werden, bei jedem neuen
> Compile-Vorgang wieder mit der selben Adresse definiert...

Sehr wahrscheinlich nicht. Kann man relativ leicht mittels eines 
map-files nachvollziehen (Linker-Option -Map). Düfte geschickter sein, 
eine extra Section für das Array vorzusehen und im Linker-Script bzw. 
per Linker-Kommandozielenoption (--section-start) explizit für diese 
Section eine Startadresse anzugeben.

Martin Thomas


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.