at90s2313: region text is full -> text/data erweitern Linker-Skript?

Gast #1018511
Lesenswert?

Hallo zusammen,

ich habe einen at90s2313-Softcore auf meinem Spartan am laufen; ROM kann 
ich bis zu 16k aufbohren. RAM bis zu 14k.
Dies möchte ich nun dem Linker (Linker-Script) mitteilen. Kenn mich 
dahingehend allerdings kaum aus...

Die Linker-Scripts von WinAVR sind ja im "avr\lib\ldscripts" als *.x 
Datei abgelegt(?). Welches von den avr*.x-files ist denn das richtige?
Eigentlich müsste ich das doch auch im makefile sehen. Allerdings finde 
ich hier nur diesen Eintrag. (makefile mit MFile).

#---------------- Linker Options ----------------
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
#LDFLAGS += -T linker_script.x
Gast #1018829
Lesenswert?

MEMORY
{
  text      (rx)   : ORIGIN = 0, LENGTH = 8K
  data      (rw!x) : ORIGIN = 0x800060, LENGTH = 0xffa0
  eeprom    (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
}

-> reicht es dann wenn ich hier text von 8k auf beipsielsweise 32k 
umstelle oder muss ich noch was anderes drehen?

So einfach funktioniert's leider nicht ;-)
Persönliche Seite #1019007
Lesenswert?

Ist das das Original des Linkerskripts (welches?) oder bereits deine 
Änderung?

Ich frage, weil ich keine lokale Kopie an der Hand habe, in der ich 
nachsehen könnte.

Mir kommt z.B. der Wert 8K spanisch vor. Soweit ich weiss, hatte der 
AT90S2313 nur

Flash-Programm-Speicher:   2 kByte
EEPROM-Datenspeicher:    128  Byte
SRAM-Datenspeicher:      128  Byte
(http://www.roboternetz.de/wissen/index.php/AT90S2313)

Mir fehlt auch der Teil im Linkerskript, anhand dessen der Linker die 
einzelnen Sektionen auf die Speicherabschnitte aufteilt bzw. bestimmte 
Adressen für Kopieraktionen .data aus ROM nach .data ins SRAM berechnet, 
die dann vom Initcode benutzt werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren