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
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"
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.