Hallo, ich bin bei ST mit CubeIDE und C unterwegs. Ich habe konstante Tabellen const uint16_t blabla[10000] = { ........ Ich dachte, die würden ins Codesegment verschoben. Das ist eine Fehldenke, die bleiben im RAM segment. Wie bekomme ich die denn dahin wo auch der Code steht? Vielen Dank Cheers Detlef
Musst mit __atribute__(section ) die Sektion explizit angeben und im Linker Script eine hinreichend große neue Sektion im FLASH erstellen
Hallo, vielen Dank, so wirds' gehen. Bin allerdings linkerscriptmäßig völlig unbedarft, hab das alles immer CubeIDE überlassen. Gibts' nich noch was anderes, ein attribute wo man ihm sagt 'tu einfach so als sei das Code und keine const Variable' ? THX Cheers Detlef
Hallo, hab es rausgefunden. Man muss nicht ans linkerscript ran. const uint16_t __attribute__((__section__(".text"))) blabla[10000] = { ... schiebt die Tabellen ins flash in die section .text. Da steht schon der sourcecode. THX Cheers Detlef
Eigentlich würde man das in Section ".rodata" erwarten, die ein vernünftiges ld-Script ins Flash lokatiert.
Hi, ja, .rodata gibts bei ST auch und wird benutzt. Hab ich erst jetzt gesehen, die Verortung der Tabellen dorthin wäre sauberer gewesen. Abergehtauchso. Einiges gelernt. THX Cheers Detlef
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.