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
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
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
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
Schade unterstüzt leider den Olimex Adapter nicht in der free-version :/ Jemand noch eine andere Idee?
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.
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:
1 | ============================================================================= |
2 | ================================ O L I M E X ================================ |
3 | ============================================================================= |
4 | |
5 | Usage: |
6 | mspprog-cli-v2 [ARGUMENTS] |
7 | |
8 | Arguments: |
9 | /p=<PORT> JTAG probe port (LPT1, LPT2, USB) |
10 | /d=<DEVICE> Device name (e.g. MSP430F1211) |
11 | /f=<FILE> File to read/write to/from (*.hex, *.txt) |
12 | /rc Read Code Memory and store to file |
13 | /ri Read Information Memory and store to file |
14 | /e Erase memories |
15 | /w Read file, erase and write to memories |
16 | /v Verify file write operation |
17 | /ei Erase Information Memory with Code Memory write/erase |
18 | /bc Check whether Code Memory is blank |
19 | /bi Check whether Information Memory is blank |
20 | /li Prevent locked Information Memory erase/writes |
21 | /post=<s|h|v>[r] Actions to perform after programming (defaults to "s"): |
22 | s - Soft (PUC) reset |
23 | h - Hardware reset using the RST/NMI pin |
24 | v - Use VCC to power cycle device |
25 | r - Let the device run after reset |
26 | /s Use SpiBiWire |
27 | /blowjtag Blow JTAG fuse (FUSE IS NOT REVERSIBLE) |
28 | /l Display list of supported devices |
29 | /h Display this brief help |
30 | |
31 | ============================================================================= |
Vielen Dank trotzdem an alle.
Dann schreib doch den Bug mal an Olimex, der Support antwortet schnell. Da können sie das in der nächsten Version beheben.
> ================================ 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.
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.