Forum: Mikrocontroller und Digitale Elektronik String im Flash auf 0x400 (.text overlap) - AvrStudio6


von Neubi (Gast)


Lesenswert?

hi,

möchte eine struktur fix auf eine speicherstelle im flash legen.
1
#define MEMSEG_FLASH_INFO   __attribute__ ((section (".sysflashinfo")))
2
const t_info_flash flashinfo MEMSEG_FLASH_INFO = {...};

*Einstellungen im AtmelStudio 6 (aktuelle Version)*
1
ProjectProperties -> LinkerOptions -> MemorySettings : .sysflashinfo = 0x0200


jetzt bekomme ich die fehlermeldung:
1
Error  1  section .sysflashinfo loaded at [00000400,0000040f] overlaps section .text loaded at [00000000,00003f75]


... was ja grundsätzlich richtig und gut ist, jedoch möchte ich dem 
Studio/Linker beibringen, dass sich sehrwohl mittem im flash-speicher 
diese section befindet!

Q: wie/wo splitte ich die text section?


gruß & danke für jeden tip,
Neubi

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Neubi schrieb:

> Q: wie/wo splitte ich die text section?

Überhaupt nicht. Sections können keine Löcher enthalten.

Du kannst 3 Sections .text1, .sysflashinfo und ,.text2
verwenden und per Linkerscript an die passenden Adressen legen und 
Section-Größen und -Flags zuordnen.

von Neubi (Gast)


Lesenswert?

danke für die info ...

ich weiss wie ich sections hinzufüge, jedoch nicht wie ich das 
"bestehende" mapping verändere?!

Q: wie kann ich die 'default-text' section, bzw. das default-mapping 
verändern?


besten dank!!,
Neubi

von holger (Gast)


Lesenswert?

>Q: wie kann ich die 'default-text' section, bzw. das default-mapping
>verändern?

Lass das einfach sein und leg deine Section ans Ende vom Flash.

von Neubi (Gast)


Lesenswert?

Jein - muss leider die daten auf eine bestimmte adresse stellen 
(altlasten) ...

von holger (Gast)


Lesenswert?

>Jein - muss leider die daten auf eine bestimmte adresse stellen
>(altlasten) ...

Dann entsorg die Altlasten und mach es richtig.
Die Standard Linker Scripte findest du im AVR GCC Verzeichnis.

avr/lib/ldscripts

viel Spass beim hacken.

von Neubi (Gast)


Lesenswert?

YES! ... mercy!!

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.