Flash

hallo…

…ich arbeite mit einem DSP tms320vc33. zur zeit verwende ich noch ein entwicklungsboard.
…nun möchte ich vom entwichlungsboard wegkommen und meinen dsp eigenständig mit einem flash betreiben…
…ich habe vor, meinen flash über den dsp zu programmieren…ist das aufwendig?
…ich hab mir einige flash angeschaut. da gibts 2 verschiedene typen.
Top boot
Bottom boot

…ich nehm an das hängt damit zusammen wo sich der bootloader meines dsp´s befinden soll…oder? (aber was ist Top? 0x0000 oder 0xfffff ???)

…kennt sich da jemand aus??

…merci

Booter
Hallo Philipp

Top, wenn Dein Reset-Vekotr am oberen Speicherende liegt, Bottom, wenn er bei 0x0000 liegt. Für ausführliche Infos lies bitte weiter.

…ich habe vor, meinen flash über den dsp zu
programmieren…ist das aufwendig?

Wie bekommst Du das Programm in den DSP? Hat der ein Flash intern, dass Du vorher Programmieren kannst? Oder hat der einen eigenen Bootloader? (habe gerade keine Lust, mir das Datenblatt zu ziehen).
Ansonsten must du das Flash vor dem Einlöten programmieren, oder seriell, oder wie auch immer.

Wenn der DSP einmal läuft ist die Programmierung eines Flashes halt nur Arbeit (Datenblatt sehr sehr genau lesen)

…ich hab mir einige flash angeschaut. da gibts 2
verschiedene typen.
Top boot
Bottom boot

…ich nehm an das hängt damit zusammen wo sich der bootloader
meines dsp´s befinden soll…oder? (aber was ist Top? 0x0000
oder 0xfffff ???)

Normalerweise bei externem Flash ist auch der Booter in diesem einprogrammiert (per Prommer) und braucht Platz (ein paar kilobyte).
Wenn nun der booter per serieller Schnittstelle eine neue APPLIKATION booten soll, so legt man i.d.R ein paar Bytes an Info irgendwo ab, wie groß das Programm ist, ob es gültig ist, eine Checksumme etc.etc. Dazu braucht Platz.

Ausserdem haben übliche Prozessoren oftmals beim Starten nur einen Resetvektor, der von irgendwo geladen wird, meist am oberen oder am unteren Speicherende. Hier muß was vernünftiges im Speicher stehen, und das braucht Platz.

Festhalten: Wir haben 3 Bereiche, die Platz brauchen

  1. Bootercode
  2. Resetvektor
  3. Applikations-Informationen.

Kommen wir nun zu Flashen. Diese haben normalerweise Seiten von 64kByte, die nur auf enmal Löschbar sind. Will man also 10 Byte erneut überschreiben, so muß man eine ganze Seite löschen.

Wir brauchen aber nun 3 Platzbereiche, die NICHT gelöscht werden dürfen. dazu ist 64kByte Block in 4 Seiten aufgeteilt, üblicherweise 16k, 32k und 2x8k groß. Die werden wie folgt genutzt:
die 16k sind ganz oben (oder ganz unten) und enthalten den Resetvektor, und meist noch einen Urlader oder sowas.
die 32k enthalten den Booter.
die 2x8k enthalten Informationen über die Applikation. Ist ein Bereich gültig, wird der andere gelöscht. Kommt eine neue Applikation, wird der leere bereich beschrieben und der alte gelöscht, immer im Wechsel

achim

…kennt sich da jemand aus??

…merci