mikrocontroller.net

Forum: FPGA, VHDL & Co. tl866cs GAL22v10d mit Linux Software minipro brennen


Autor: Andreas R. (daybyter)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GAL-Assembler zur Erzeugung von JEDEC-Dateien
http://www.sh-elektronik.de/service/index.html

Beispiele:
http://www.sh-elektronik.de/service/demo/ispGDS%20Tutorium%202009.pdf

Gruss Holger.
Kannst du die Chip -ID wenigstens mit dem Progger da lesen?

Normal wird der file mit *.jed geladen.
Erase Chip... Prog Verify ,,bingo.

Autor: Andreas R. (daybyter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du dir die miniprohex angesehen?
Kann die mit der *.jed umgehen und in eine bin wandeln?

Autor: Holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?!?"

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch die C source + Jedec Files zum Testen.
https://github.com/daveho/GALasm

Gruss Holger.

Autor: Andreas Rückert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Johann Klammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
Used Program:   GALasm 2.1
GAL-Assembler:  GALasm 2.1
Device:         GAL22V10

*F0
*G0
*QF5892


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

einfach mal das QF feld vor die F/G und nochmal probieren....

Autor: Andreas Rückert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johann Klammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, stimmt. Da scheint kein .jed parser dabei zu sein. k.A. wie du das 
am einfachsten konvertieren kannst. Das .bin file scheint auch nicht 
wirklich binaer zu sein, weil er mit ftell() die bytes zaehlt....
Ist aber schnell geschrieben...

<https://github.com/klammerj/jed2bit/releases/tag/v0>;

ob die endianness passt, weiss ich nicht...

Autor: Johann Klammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Andreas Rückert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Jo, das könnte eine sinnvolle Lösung sein. Aber ich hab jetzt erstmal 
noch den Autor nach seiner Meinung gefragt:

https://github.com/vdudouyt/minipro/issues/58

Vielleicht mach ich ja was falsch. Kommt von ihm nix, muss man halt 
selbst mal schauen.

Danke nochmal,
Andreas

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht 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

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.