tl866cs GAL22v10d mit Linux Software minipro brennen

OP #4696350
Lesenswert?

Hallo!

Ich habe mir ein pld File für ein Lattice 22v10d geschrieben, und mit 
galasm übersetzt. Nun versuche ich das GAL unter Linux mit der Software 
minipro zu beschreiben, aber ich bekomme immer nur einen Fehler 
'incorrect filesize'.
Kann man das jedec File direkt in der Kommandozeile angeben, oder muss 
es erst nach hex (o.ä.) konvertiert werden? Ich konnte dafür bisher 
leider kein Beispiel finden.

Vielen Dank im Voraus für eure Antworten und das Lesen meiner 
Problembeschreibung,
Andreas
Gast #4698859
Lesenswert?

Andreas R. schrieb:
> Hab mal die Minipro Sources studiert. Der vergleicht wohl einfach
> Filegrösse mit Chipgrösse. Bei nem EPROM Bin File klappt das wohl, aber
> nicht bei nem jedec File. Ich denke, dass die Sources da geändert werden
> müssen.

There is one issue with GALasm: the JEDEC files generated by GALasm use 
bare newline characters to terminate lines.
My programmer (Wellon VP-190) requires a CRLF (carriage return, newline) 
sequence to terminate
 lines in JEDEC files; otherwise, the file is rejected with a cryptic 
error message.
So, I modified the GALasm source to always output CRLF for line 
termination in JEDEC files

Anhang mit einen Jed File zum Testen, ob der Progger den einlesen kann.


Gruss Holger.
Den Gal Compiler als zip.
Beitrag "JEDEC Dateien erstellen?!?"
Angehängte Dateien:
Gast #4700815
Lesenswert?

Den modifizierten GALasm hab ich benutzt, um meine jedec Files unter 
Linux zu erstellen. Gebrannt hab ich sie dann unter Win7. Im Moment 
probier ich gerade mal wieder unter Linux rum, bekomm aber schon beim 
Lesen eines Chip einen Gleitkommafehler.

Hab jetzt auch miniprohex probiert:

=============
andreas@Elektronik2:~/pal_gal/c64_z80/gal$ miniprohex -p GAL22V10D -w 
z80logic.jed
Found Minipro TL866CS v03.2.72
Incorrect file size: 1764 (needed 5892)
andreas@Elektronik2:~/pal_gal/c64_z80/gal$
=============

Das Problem liegt aus meiner Sicht hier:

https://github.com/vdudouyt/minipro/blob/master/main.c#L410

Da vergleicht er ja die grösse des ICs (also des möglichen Inhalts) mit 
der Filegrösse. Mein Programm belegt nun halt nicht das ganze ICs, also 
sind die Werte unterschiedlich.

Hier ist das, was ich gebrannt hab, bzw. unter Linux brennen wollte:

https://github.com/vdudouyt/minipro/blob/master/main.c#L410

Vielen Dank für eure Antworten!

Ciao,
Andreas
Gast #4701028
Lesenswert?

galasm gibt die
anzahl fuses nach den F und G feldern aus
PALASM (und vmtl die meisten anderen) tun das ganz am anfang.
Ich vermute dass die meisten parser nich mit galasms variante koennen.

galasm:
1
Used Program:   GALasm 2.1
2
GAL-Assembler:  GALasm 2.1
3
Device:         GAL22V10
4

5
*F0
6
*G0
7
*QF5892


Andere:
1
QP24*  Number of pins*
2
QF5892*  Number of fuses*
3
F0*  Note: Default fuse set to 0*
4
G0*  Note: Security fuse NOT blown.*

einfach mal das QF feld vor die F/G und nochmal probieren....
Gast #4702363
Lesenswert?

Hi!

Hab den Brenner gerade nicht zur Hand, aber schau mal in main.c Zeile 
135.

Dort ist die Funktion get_file_size . Der macht einfach ein Seek ans 
Fileende und nimmt die Position dort als Filegrösse. Weiter geparsed 
wird da wohl nix. Also wird einfach die Filegrösse in Bytes genommen. 
Das funktioniert aber nur bei einem Eprom und einem bin File, welche 
halt genau soviele Bytes hat, wie das Eprom gross ist.
#4703643
Lesenswert?

Wenn das Problem tatsächlich "nur" im fehlenden Padding der Datei liegt 
(filesize <> GAL-Size) könnte objcopy hilfreich sein.

Das kann nicht nur mit Compiler-Objektfiles umgehen, sondern auch mit 
allgemeinen Binärfiles. Wenn Du also nur ein Padding auf eine bestimmte 
Dateigröße brauchst, sollte ein einfaches

objcopy -Ibinary xxx.bin out.bin --pad-to 0x100 --gap-fill 0xff

helfen. Dasselbe geht auch mit Intel-Hex- und .srec-Dateien.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren