Forum: FPGA, VHDL & Co. Lattice Diamond - Parallel-Programmer unter Ubuntu


von Manuel U. (muml)


Lesenswert?

Hallo zusammen,

bei der Inbetriebnahme von Lattice Diamond unter Ubuntu 11.10 32 Bit 
habe ich das Problem, dass mein Programmer am Parallelport nicht erkannt 
wird. Da die Programmierung unter Windows XP funktioniert, scheint der 
Port (0x0378) und die Einstellungen im BIOS i.O. zu sein.
In der Logdatei ~/.config/LatticeSemi/programmer.log meldet er:

[...]
Error Reading Current LPT Port 0x378.
Error Reading Current LPT Port 0x278.
Error Reading Current LPT Port 0x3bc.
[...]

Da Diamond offiziell nur RedHat unterstützt, tippe ich darauf, dass 
Ubuntu den Zugriff systemintern anders regelt. Die Schnittstelle taucht 
unter /dev/parport0 auf aber ich kann keine Möglichkeit finden, dies 
Diamond mitzuteilen (oder wird das gar nicht benötigt?).
In der ~/.config/LatticeSemi/programmer.ini steht folgendes:

[General]
Cable=LATTICE
Port=0x0378
PhysicalPort=
[...]

Ist die fehlende Angabe PhysicalPort vielleicht des Rätsels Lösung?
Ich würde mich riesig freuen, wenn jemand einen Tipp für mich hätte!

Schönen Abend, Manuel

von hp-freund (Gast)


Lesenswert?


von Manuel U. (muml)


Lesenswert?

Hi hp-freund, danke für den Tipp. Leider hatte ich in meinem 
Eingangspost vergessen zu erwähnen, dass ich die Rechte bereits (nach 
jedem Neustart) auf 666 gesetzt habe.

x@y:~/.config/LatticeSemi$ ls -al /dev/parport0
crw-rw-rw- 1 root lp 99, 0 2012-02-04 11:00 /dev/parport0

Trotzdem findet er das ispDOWNLOAD cable nicht:

Error Reading Current LPT Port 0x378.

In der programmer.ini von Windows steht an der Stelle PhysicalPort 
übrigens:

[...]
PhysicalPort=DL3
[...]

Aber das hat wahrscheinlich nichts zu bedeuten?

Grüße, Manuel

von hp-freund (Gast)


Lesenswert?

Hast Du mal versucht das Programm als root auszuführen?

von Manuel U. (muml)


Lesenswert?

Ich hatte Diamond mal als Root ausgeführt. (Dann hat der Programmer, der 
von Diamond gestartet wird, automatisch auch Root-Rechte, oder?)
Das hat leider nichts gebracht - gleiche Fehlermeldung.

In der programmer.log unter XP steht noch der Hinweis, dass man den Port 
am besten im SPP-Modus betreiben sollte (war auf ECP). Aber auch das hat 
unter Ubuntu nichts verändert.

von hp-freund (Gast)


Lesenswert?

Was sagt ein lsmod? Greift neben dem lp treiber noch ein anderer auf dem 
Port zu?

von Manuel U. (muml)


Lesenswert?

x@y:~/.config/LatticeSemi$ lsmod | grep par
parport_pc             32114  1
parport                40930  3 ppdev,parport_pc,lp

ppdev, parport_pc und lp benutzen den Port? Ist das so in Ordnung?

von hp-freund (Gast)


Lesenswert?

Ich denke das ist i.O. wenn nicht andere Prozesse auf den Port 
zugreifen.
Als nächste würde ich mir mit strace weitere Infos holen.

von Manuel U. (muml)


Lesenswert?

Okay, ich habe Diamond einfach mal mit strace gestartet und alles in 
eine Logdatei geschrieben (hehe, die ist 40MB groß geworden). Die 
Strings parport, lp0, 0x0378 oder auch pgr_programer (das ruft Diamond 
laut Log aus seiner GUI auf um den Programmer zu starten) kommen nicht 
darin vor.
Das einzige, was ich finden konnte:

x@y:~$ grep pgr strace.log
getpgrp()                               = 30455
open("/usr/local/diamond/1.4/bin/lin/libpgr_tclwrapper.so", O_RDONLY) = 
12
writev(7, 
[{"\22\0\r\0\n\0\340\4>\1\0\0y\1\0\0\10on/\34\0\0\0pgr_prog"..., 96}, 
{NULL, 0}, {"", 0}], 3) = 96
writev(7, 
[{"\22\0\r\0\n\0\340\4>\1\0\0y\1\0\0\10\0\0\0\34\0\0\0pgr_prog"..., 96}, 
{NULL, 0}, {"", 0}], 3) = 96
writev(7, 
[{"\22\0\r\0\n\0\340\5>\1\0\0y\1\0\0\10\1\24\0\34\0\0\0pgr_prog"..., 
96}, {NULL, 0}, {"", 0}], 3) = 96

Naja, aber ich bezweifle, dass das weiterhilft, oder? Auf jeden Fall 
vielen Dank für deine Bemühungen!

von hp-freund (Gast)


Lesenswert?

Ok. Als letzter Versuch:
such mal in deiner log nach error bzw. warning vom Ende der Datei 
rückwärts.

von Manuel U. (muml)


Lesenswert?

Habe gerade gesehen, dass es den Programmer auch als Stand-alone von 
Lattice gibt. Hab den noch installiert und strace direkt auf den 
Programmer losgelassen. Aber das Ergebnis ist das gleiche. Es wird nur 
ein tclwrapper aufgerufen. Warnings gibts keine nur eine Error-Zeile:

read(11, "t -nocomplain ::errorCode\n\t    }"..., 4096) = 4096

Schade, dann werde ich wohl in den sauren Apfel beißen müssen und mir 
einen Workflow einrichten, bei dem ich für die Programmierung und 
JTAG-Debugging meinen XP-Laptop verwenden muss.
Aber trotzdem danke!

von hp-freund (Gast)


Lesenswert?

Dann muss ich leider passen.
Bleibt nur noch der Hinweis auf das Forum. Z.B.:

http://www.latticesemi.com/support/faqs/details.cfm?id=209

Vielleicht findest Du dort die Lösung.

Viel Glück ....

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
Noch kein Account? Hier anmelden.