Hallo,
also ich bekomm es einfach nicht hin ... wahrscheinlich bin ich
schlichtweg zu blöd dafür.
Ich will im Flash ein Bereich für Konstanten reservieren, der an einer
ganz bestimmten Stelle steht. Habs nun in erster Linie mit den Memory
Settings im AVR-Studio versucht, aber meine Angaben werden ganz munter
ignoriert. ... nachschauen tue ich mit dem Debugger AVR-Studio 4.13
Build 528.
Ich versteh die Welt nicht mehr ...
MfG
Dummy wrote:
> Habs nun in erster Linie mit den Memory> Settings im AVR-Studio versucht, aber meine Angaben werden ganz munter> ignoriert. ... nachschauen tue ich mit dem Debugger AVR-Studio 4.13> Build 528.
Was genau bedeutet denn "ignoriert"?
Bei 4.14 werden aus den Angaben unter "Memory Settings" jedenfalls
korrekte Linker-Options erzeugt. Man muss nur beachten, dass bei "Memory
Type" Flash Wort-Adressen einzutragen sind.
Oh, entschuldigung ... ich versuch das Problem in C zu lösen.
das ganze müsste dann über _attribute_ ((section (".MySection")))
funktionieren. Nur wie gesagt, ich kann unter den Memory Settings
MySection definieren wie ich will, die Ignoranz seitens des Compilers
bleibt.
MfG
In dem Debugger des AVR-Studios kann man sich doch den Inhalt des
Programmspeichers, des RAMs, usw. anzeigen lassen. Dort lässt sich die
Variable, die in meine Section lege aber nicht finden.
Was meinst Du mit Linker-Kommandozeile? Wo finde ich die? Meinst Du das
Map-File?
Dummy wrote:
> In dem Debugger des AVR-Studios kann man sich doch den Inhalt des> Programmspeichers, des RAMs, usw. anzeigen lassen. Dort lässt sich die> Variable, die in meine Section lege aber nicht finden.
Das kann aber mehrere Ursachen haben, z.B. auch ein simpler
Schreibfehler bei dem, was du unter "Memory Settings" eingetragen hast.
> Was meinst Du mit Linker-Kommandozeile? Wo finde ich die? Meinst Du das> Map-File?
Im Build-Window gibt es mehrere Zeilen, die mit "avr-gcc.exe" beginnen.
Poste die letzte von diesen.
die letzte zeile heisst
avr-gcc.exe -mmcu=attiny2313 -Wl,-section-start=TestSec=0x200 main.o
-o tiny2313.elf
Word-Adresse hab ich 0x0100 ... folglich ist die ByteAdresse 0x200. Das
sitmmt also.
Das programm schaut so aus
> ... -Wl,-section-start=TestSec=0x200 ...
Siehst du, deine Einträge werden nicht ignoriert. ;-)
Aber laut Sourcecode heißt die Section ".TestSec", dann musst du sie
auch so bei den "Memory Settings" eintragen.
Muff, der Punkt war das Problem ... ich dacht, das gehört zu irgendeinem
KeyWord oder soetwas. Wer denkt denn daran ... muff.
Hab vielen dank, jetzt klappt es.
MfG
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.