LPC2468 - Wo ist unbelegter Flash-Speicher? - Wie per Befehl neustarten?

OP #1798313
Lesenswert?

Hallo!

Mein µC-Programm ist jetzt soweit lauffähig, dass u.a. Flash-Lesen und 
-Schreiben funktioniert. Ich habe jetzt die vorletzte Flashseite 
genommen. Um es schön zu machen, würde ich gerne wissen, ob die jew. 
Seiten bereits benutzt werden. Wie kann ich dass mit dem LPC2468 
realisieren?

Und gibt es einen Befehl (im C), um den Controller zu resetten bzw. 
dessen Programm neu auszuführen? Ich konnte in der Hilfe nix dazu 
finden...
#1798413
Lesenswert?

Andreas Schneider schrieb:
> Und gibt es einen Befehl (im C), um den Controller zu resetten bzw.
> dessen Programm neu auszuführen? Ich konnte in der Hilfe nix dazu
> finden...
Einen solchen Befehl kenne ich zwar nicht, aber ich würde einfach den 
Watchdog anwerfen, bzw. dessen Zurücksetzen unterbinden, wenn er denn 
schon laufen sollte.

Das führt garantiert innerhalb kürzester Zeit zum Reset.
#1798455
Lesenswert?

Andreas Schneider schrieb:
> Mein µC-Programm ist jetzt soweit lauffähig, dass u.a. Flash-Lesen und
> -Schreiben funktioniert. Ich habe jetzt die vorletzte Flashseite
> genommen. Um es schön zu machen, würde ich gerne wissen, ob die jew.
> Seiten bereits benutzt werden. Wie kann ich dass mit dem LPC2468
> realisieren?

Wenn du deinem Linker nicht mitteilst, dass an der entsprechenden 
Adresse noch Flashspeicher ist, wird er ihn auch nicht benutzen und du 
hast ihn ganz für dich alleine.
OP #1798489
Lesenswert?

Danke, skriptkiddy!
Idee ist umgesetzt und läuft super!

@telekatz
Das klingt spannend... In der IDE habe ich leider nur die Option, die 
Startadresse hochzusetzen, einzelne Bereiche rauszunehmen klappt 
irgendwie nicht. Damit wäre aber der Bootsektor im beschreibbaren 
Bereich - ist das okay? oder kann ich bedenkenlos einen anderen Chip 
angeben?

scheint nicht so: "The Adress is not in Flash" (bei einem Chip mit 
kleinerem Flashspeicher)
OP #1798542
Lesenswert?

So, ich noch mal:
Angeblich nimmt der Linker nicht den obersten Flashsektor (Nr. 27). Hab 
testweise etwas reingeschrieben und das Programm neu aufgespielt, meine 
Informationen sind aber dennoch weg...

[edit]
oder liegt das daran, dass das Flash-Löschen Controllerseitig passiert? 
Oder wird der zu löschende Speicherbereich von der IDE benannt?
Moderator Persönliche Seite #1799403
Lesenswert?

Andreas Schneider schrieb:
> Naja, das macht soweit alles meine IDE, die HITOP5.
Ist dort nicht auch die GNU-Toolchain im Hintergrund? Wenn ja, wird die 
Entwicklungsumgebung wohl intern ein tempörares Linker-Skipt erzeugen, 
deren Dateiname dann dem Linker übergeben wird. Falls man die Größe 
eines Speicherbereichs (Adressebereich des Flash-Speichers) nicht in der 
IDE vorgeben kann, kann man dies evtl. in einem eigenen Linker-Skript 
machen, sofern die IDE zulässt eines vorzugeben. Der Linker bricht dann 
mit einer Fehlermeldung ab, wenn der Speicherbereich nicht ausreicht.

> Ich speichere nur ein paar Sachen in einem einzigen Sektor.
Evtl. wird durch die Programmiersoftware der gesamte Flash-Speicher vor 
der Übertragung des Anwendungscodes gelöscht. Falls man der IDE nicht 
mitteilen kann, dass nur bestimmte Sektoren gelöscht werden sollen, kann 
man wenig machen. Am Einfachsten dürfte es sein, beim Lesen der 
Konfigurationsdaten auf leeren Flash zu prüfen (0xff) und dann auf 
Standardwerte zurückzugreifen, die im Programm hinterlegt sind.
OP #1799472
Lesenswert?

Ja, die GNU Toolchain läuft im Hintergrund.
hab aber keinen Plan davon...

Ich hab versucht, die Flash-Definitionen in der Hitop-XML zu ändern, 
z.B. die letzte Flashpage auszuklammern ö.ä., aber es kommt immer die 
Fehlermeldung "The Adress is not in Flash"

Eigenartigerweise will Hitop nichts in den Sektor 27 (7D000-7DFFF) 
schreiben, und lt. Anleitung beginnt der Bootblock erst ab 7E000 - 
dennoch scheinen da irgendwelche Informationen zu sein, die wichtig 
sind...

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