www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 mspgcc olimex MSP Programmer Offset/Calibration Data


Autor: Texi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

folgendes Problem:

Ich hab hier einen MSP430 mit Olimex USB Programmieradapter. Wenn ich 
jetzt in IAR ein Projekt erstelle, den Code schreibe, alles wunderbar 
usw. und dann meinen MSP Programmiere funktioniert alles perfekt.

Das selbe Programm (natürlich mit Anpassungen an den Compiler) mit dem 
mspgcc compiled und mit "Olimex MSP430 Programmer"-Programm geflasht 
funktioniert nixmehr. Grund:

Ich verwende den internen DCO. Der hat Kalibrierungskonstanten im Flash 
stehen (Information Memory: 0x1000 - 0x10FF). Wenn ich mit dem "Olimex 
MSP430 Programmer" flashe wird dieser bereich überschrieben. Beim IAR 
ists nicht so. Gibts irgendwie die möglichkeit da einen Offset 
einzustellen? (In der Hilfe finde ich nix). Oder muss ich da vorher dem 
Compiler schon bestimmte Dinge mitgeben?

Vielen Dank schonmal

Mfg

Autor: Arno H. (arno_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elprotronic hat eine Programmiersoftware, die auch mit dem TI-Programmer 
funktioniert. Der Olimex kann den TI simulieren. Probier mal die 
Freewareversion:
http://www.elprotronic.com/files/FET-Pro430-Lite-Setup.zip
Bei dieser weiss ichs nicht, aber unsere Vollversion kann auch über BSL 
den DCO neu kalibrieren, falls er gelöscht wurde.
Eventuell musst du eine andere Dll benutzen.

Arno

Autor: Texi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nene, kalibriert ist er schon (wieder). Es geht nur darum, das wenn ich 
mein mit msp430gcc erstelltes hex-file flashen will ich den "Olimex 
MSP430 Programmer" verwende. Und der löscht den  kompletten Flash und 
schriebt dann aber nur mein Programm in den Flashspeicher. Wenn ich die 
selbe Geschichte mit IAR mache dann bleibt die Kalibrierung erhalten 
(bzw. wird nicht gelöscht [weiss ich nicht sicher was von beiden]).

Also entweder Flashe ich die Kalibrierung immer mit (dann müsste ich 
aber mein Hexfile per Hand bearbeiten und die entsprechenden Adressen + 
Daten dazuschreiben oder er löscht einfach garnicht erst die 
Kalibrierung.

Geht das überhaupt, das Flash nur Teilweise zu löschen? Oder löscht er 
immer das ganze Flash? Bei USB-Sticks gibts ja diverse Blöcke die dann 
gelöcsht und wieder beschrieben werdne. Wie das beim MSP ist weiss ich 
aber nicht. Evtl. ist da das ganze Flash als ein Block zu sehen, dann 
müsste ich aber immer die Kalibrierung wieder mitschreiben und dann 
vermute ich, das dass das IAR automatisch macht.

Mfg

Autor: Arno H. (arno_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau das selektive Löschen kannst du mit der elprotronic-SW machen.
Du kannst dir ja mal die Anleitung runterladen und anschauen:
http://www.elprotronic.com/files/Manual-FET-Pro430.pdf
Fürs Hobby wird sich die Anschaffung der Hardware nicht lohnen, aber 
wenn viele MCU zu programmieren sind, hat sich der echt schnelle und 
vielseitige Programmer in kurzer Zeit amortisiert.

Arno

Autor: Texi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade unterstüzt leider den Olimex Adapter nicht in der free-version :/

Jemand noch eine andere Idee?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst doch beim Olimex Programmer auch einstellen, dass er nur den 
Program Flash und nicht den Info Flash (heißt da Data) löschen soll. Und 
eine Eingabemöglichkeit für Calibration Data gibts auch noch, was genau 
die macht, weiß ich aber nicht. 0x1000 ist doch das Info-Mem, das bleibt 
erhalten, wenn du nur den Program Flash löschst.

Autor: Texi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja so sollte es wohl sein. Ist aber leider nicht so, er löscht trotzdem 
das ganze Flash.

Ich hab jetzt allerdings eine Möglichkeit gefunden:

Im Instatllationsordner von Olimex gibts eine "mspprog-cli-v2.exe" und 
mit der funktioniert das wunderbar:

mspprog-cli-v2.exe /p=USB /d=MSP430<device> /li /e /f=hexfile.hex /w 
/post=hr

Ne hilfe gibts mit mspprog-cli-v2.exe /h:
=============================================================================
================================ O L I M E X ================================
=============================================================================

Usage:
    mspprog-cli-v2 [ARGUMENTS]

Arguments:
   /p=<PORT>            JTAG probe port (LPT1, LPT2, USB)
   /d=<DEVICE>          Device name (e.g. MSP430F1211)
   /f=<FILE>            File to read/write to/from (*.hex, *.txt)
   /rc                  Read Code Memory and store to file
   /ri                  Read Information Memory and store to file
   /e                   Erase memories
   /w                   Read file, erase and write to memories
   /v                   Verify file write operation
   /ei                  Erase Information Memory with Code Memory write/erase
   /bc                  Check whether Code Memory is blank
   /bi                  Check whether Information Memory is blank
   /li                  Prevent locked Information Memory erase/writes
   /post=<s|h|v>[r]     Actions to perform after programming (defaults to "s"):
                           s - Soft (PUC) reset
                           h - Hardware reset using the RST/NMI pin
                           v - Use VCC to power cycle device
                           r - Let the device run after reset
   /s                   Use SpiBiWire
   /blowjtag            Blow JTAG fuse (FUSE IS NOT REVERSIBLE)
   /l                   Display list of supported devices
   /h                   Display this brief help

=============================================================================

Vielen Dank trotzdem an alle.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schreib doch den Bug mal an Olimex, der Support antwortet schnell. 
Da können sie das in der nächsten Version beheben.

Autor: Heino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ================================ O L I M E X ================================
> ======================================================================== =====
>
> Usage:
>     mspprog-cli-v2 [ARGUMENTS]
>
> Arguments:
>    /w                   Read file, erase and write to memories
>    /v                   Verify file write operation
>    /ei                  Erase Information Memory with Code Memory write/erase

Gibt es einen Befehl, ähnlich wie:
/v                   Verify file write operation
der aber auch den "Information Memory" mit vergleicht?
Dieser Befehl scheint nur den "Code Memory" zu vergleichen.

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.