mikrocontroller.net

Forum: Compiler & IDEs MSP430 Startup


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche die Einstellungen zu den Parametern des Startup vom MSP430 im 
gcc.
Der Hintergrund ist folgender:

ich möchte einen Bootloader schreiben, der den Code zuerst im internen 
Flash ablegt, dann an die erforderliche Stell im Flash kopiert. Der 
Grund ist der, dass im Flash-Schreiben kein INT kommen darf und die 
Datenübertragung per Funk zum MSP erfolgen muss.
Ih habe bereits einen Bootloader für den M16C erfolgreich im Einsatz ud 
will das Prinzip jetzt auf den MSP übertragen.

Frank

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab sowas gemacht. Allerdings habe ich externen RAM am MSP430 dran, 
somit kann ich bequem zunächst die neue Firmware in den RAM übertragen 
und danach in den Flash. Dazu hab ich mit im Linker-Script einen Bereich 
für die Programmteile reserviert, die die neue Firmware aus dem RAM in 
den Flash bringen. Dieser Flash-Bereich wird beim Löschen vor dem neu 
Flashen dann ausgelassen. Wenn du keinen externen RAM hast, wirds 
schwierig, da musst du tricksen und das irgendwie häppchenweise 
übertragen....

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist klar, aber wie geht das genau beim MSP430 ?
Dazu die Fragen :

Kann man die INT-Vektortabelle verbiegen ?
wo und wie ist das mit dem Linker-Script zu machen ?

Ich könnte mir vorstellen einen UR-Lader generell zu verankern. Das 
eigentliche Programm steht in einem separaten Flash-Bereich. Die 
Aktualisierung erfolgt nur für das Programm (erst einmal). Dazu sind 
aber Startadresse (Reset-Vektor) und INT-Vektortabelle zu kennen und dem 
Prozessor bekannt zu machen. Beim M16C konnte man über ein Register die 
Position der INT-Tabelle eintragen.Im Reset-Vektor stand auch die 
Adresse der MAIN-Funktion.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Externer RAM am MSP430? Welcher MSP430 hat denn Daten- und Adressbus 
herausgeführt?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner, das geht nur mit I2C- oder SPI-RAM, auf das nur mit 
entsprechenden Funktionen zugegriffen werden kann.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Int-Vektoren sind erst mal fest und lassen sich nur schwer umbiegen. 
Es geht mit viel Gefrickel, da gibts von TI diese Appnote mit dem Flash 
Monitor ( 
http://focus.ti.com/general/docs/litabsmultiplefil... 
). Im Linker-Skript kannst du das selber machen, ist quasi selbst 
erklärend. Die Linker-Scripte sind im GCC Ordner, nennen sich *.x Da 
schaust du rein, wie die Sektionen deklariert sind und kannst dir eine 
eigene erstellen.
Bei der Funktionsdeklaration im GCC dann zum Beispiel:

void FirmwareUpdate(void)__attribute__((section(".selfloader")));

Wenn die neue Section "selfloader" heißt.

Ext. RAM kann man nicht nativ anschließen. Ich hatte aber genug IOs 
frei, um einen parallelen Low Power SRAM anzuschließen. Das hat den 
Vorteil, dass ich das neue Firmware File auch bequem per Funk 
übertragen, nochmal gegechecken kann usw. damit auch nix schief geht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.