Forum: Mikrocontroller und Digitale Elektronik MSP430 IAR Adresse von Variablen anpassen


von Andreas (Gast)


Lesenswert?

Hallo zusammen,

ich habe folgendes Problem:

Anscheinend sind 4 Byte im RAM meines MSP430 defekt, d.h. sie lassen 
sich nicht beschreiben.
Zum Test habe ich eine 2. Variable deklariert (400-Byte-Array) und diese 
beschrieben--> funktioniert
Also einfach:

for (unsigned short i = 0; i<=399; i++)
{
Daten1[i] = 23;  //Daten1[20] bis Daten1[23] bleiben 0
Daten2[i] = 23;  //i.O.
}

Wie kann ich die Adresse der Variable Daten1[] ändern bzw. dem Linker 
das mitteilen?
Ansonsten muss ich wohl den MC mühsam auswechseln, da ich nur begrenzt 
RAM zur Verfügung habe.

Danke + Gruß
Andreas

von user (Gast)


Lesenswert?

du musst das linker script ändern, da sollte sowas stehen

/* Default linker script, for normal executables */
OUTPUT_FORMAT("elf32-msp430","elf32-msp430","elf32-msp430")
OUTPUT_ARCH(msp:16)
MEMORY
{
  text   (rx)     : ORIGIN = 0x8000,  LENGTH = 0x7fe0
  data   (rwx)    : ORIGIN = 0x0200,   LENGTH = 0x400,
  vectors (rw)    : ORIGIN = 0xffe0,      LENGTH = 0x20
  bootloader(rx)  : ORIGIN = 0x0c00,  LENGTH = 1K
  infomem(rx)    : ORIGIN = 0x1000,  LENGTH = 256
  infomemnobits(rx)  : ORIGIN = 0x1000,      LENGTH = 256
}

du kannst da einfach die origin werte ändern, und die länge anpassen.
die variablen landen in "data"

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Andreas schrieb:
> Ansonsten muss ich wohl den MC mühsam auswechseln

Das solltest Du tun, wenn da einzelne RAM-Zellen kaputt sind, dann ist 
nicht auszuschließen, daß da auch was anderes kaputt ist.

Die Rahmenbedingungen für den Betrieb (Versorgungsspannung etc.) hältst 
Du ein?

von Andreas (Gast)


Lesenswert?

Versorgungsspannung ist konstant auf 3.3V

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-33 
FF
-Z(DATA)CODE_I
-Z(DATA)CSTACK+_STACK_SIZE#
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Im Linker Configuration-File ist der RAM von Adresse 1C00-33FF belegt.
Ich probiere mal, den Bereich auf 2 Bereiche zu deklarieren, wo die 4 
Bytes nicht enthalten sind.
Letztendlich, wird alles auf einen neuen MC hinauslaufen, aber ich 
bekomme erst in 2 Wochen meine bestellten Platinen...

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.