Forum: FPGA, VHDL & Co. xilinx xucks!


von Frank B. (fbergemann)


Lesenswert?

Jetzt muss ich mal meinen Frust etwas Luft machen.
Seit Wochen versuche ich meine ersten Schritte mit einem S3AN Board.
Und die einzige Erkenntnis, die ich erlange, ist das Xilinx von 
anwenderfreundlichen Software wohl keine Ahnung hat.
Die Krönung von allem ist das Lizenz-Handling. Da sind wohl keine 
Software-Experten mit einem Hauch von Gespür für Kunden am Werke, 
sondern Sadisten mit einem Hauch von Programmiererfahrung.
Nach etlichem hin & her bin mit der neuesten ISE Version 14.7 und 
zusätzlichen Paketen wie Active-HDL (siehe meinen thread "xilinx newbie 
und microblaze") habe ich mir sogar noch mal das nexys 2 an's Bein 
gebunden.
Und weil das noch unterwegs ist, wollte ich mal das ZPU Projekt mit dem 
S3AN ausprobieren. Aber da versucht ISE 14.7 eine automatische Migration 
der Projekt-Files, die nicht funktioniert.
Also - dachte ich mir -  sollte ich vielleicht mal die im ZPU Projekt 
vorgeschlagene ISE 10.1 installieren. Die Version hat ein anderes 
Lizenzmanagement. Dafür bekommt man auf japanisch(!) Unterstützung hier: 
http://taoist29.tistory.com/entry/xilinx-WebPack%EA%B3%BC-ModelSim-students-Edition-%EC%84%A4%EC%B9%98. 
Das funktioniert aber auch nicht, weil es kein Tab "Legacy Licensing" 
auf der Lizenz-Management Seite von xilinx gibt.

H I L F E !!!

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann schrieb:

> H I L F E !!!

Don't panic,

Regel nummer 1 - das problem nicht vergrößern - also vergiß das mit ISE 
10.1.

Was du zuerst machen musst ist ein simples design synthetisieren und auf 
das board laden. Versuch mal die LEd auf dem 3an board ans blinkcnen zu 
bekommen.

ich hab auch so ein board hier or mir liegen. Hast du die erwähnte Häcks 
mit der schritt anweisung für die ISE? Wenn nicht, kann ich dir scannen 
und per email schicken.

MfG,

von Christian R. (supachris)


Lesenswert?

Immer mit der Ruhe. Nimm nur eine Version, die 14.7 kann alles was du 
brauchst. Vergiss Active HDL für den Anfgang, das verwirrt nur noch viel 
mehr. Für die ISE 14.7 brauchst du halt eine Lizenz, ob nun kostenlos 
Webpack oder halt kostenpflichtig. Anmelden bei Xilinx musst du dich in 
beiden Fällen, das ist etwas mühsam, muss man zugeben. Dann kmmst du 
irgendwann in den Lizenzmanager auf der Homepage, und kannst dir die 
Lizenz erstellen und mit dem Lizenzmanager im Xilinx Programmordner 
einstzellen. Ohne Lizenzfile geht halt überhaupt nix, auch keine 
kostenlose Webpack.

von Frank B. (fbergemann)


Lesenswert?

Okay, ich lass dann die ISE 10.1 erst mal draussen vor.
Und für ISE 14.7 hab' ich die Lizenz schon - soweit so gut.
Soll ich jetzt als erstes den ISE Project Navigator starten und da mit 
"Open Example" ein Example anlegen?

von Josef G. (bome) Benutzerseite


Lesenswert?

Falls es dir darum geht, erst einmal irgendwie eine Konfiguration
auf dem Spartan-3AN Starter Kit zum laufen zu kriegen:

Warum versuchst du nicht mal, dieses Projekt zu realisieren?
http://www.mikrocontroller.net/articles/8bit-Computer:_bo8h

Du müsstest in ISE mit "NEW PROJECT" ein neues Projekt anlegen,
mit "COPY TO PROJECT" die fünf Textdateien von meiner Website
ins Projekt einbinden, und "Unused IO-Pins => Pullup"
einstellen. Siehe Seite Hawa meiner Website.

Mehr wäre nicht zu tun. Nichts mit Device-Migration oder so.

Du könntest ja erst mal schauen, ob die Synthese läuft,
da kannst du auf dem Board noch nichts kaputt machen.

: Bearbeitet durch User
von Fpgakuechle K. (Gast)


Lesenswert?

Josef G. schrieb:
> Falls es dir darum geht, erst einmal irgendwie eine Konfiguration
> auf dem Spartan-3AN Starter Kit zum laufen zu kriegen:
>
> Warum versuchst du nicht mal, dieses Projekt zu realisieren?
> http://www.mikrocontroller.net/articles/8bit-Computer:_bo8h

Das ist keine schlechte Idee um die ISE erstmal  kennenzulerenen.
Aber wenn ich recht geschaut habe, schreibt Josef auf der Seite vom 3A 
und nicht vom  3AN-Board.
Also richtigen FPGA auswählen und checken ob das ucf passt.

MfG,

von Josef G. (bome) Benutzerseite


Lesenswert?

Fpga Kuechle schrieb:
> vom 3A und nicht vom  3AN-Board.

Der UG334 gilt sowohl für das S3A als auch für das S3AN
Starter Kit. Offensichtlich sind die 100% kompatibel.

von Frank B. (fbergemann)


Lesenswert?

ok, ich hab' mir die passenden Files heruntergeladen und mit den ISE 
Project Navigator ein Projekt "bo8h" erstellt. Dann diese Files nach 
./bo8h/ipcore_dir/ kopiert. Und schließlich mit dem Button "Implement 
Top Module" soweit vorbereitet

Ergebnis
1
Process "Generate Post-Place & Route Static Timing" completed successfully

Da kamen unterwegs allerdings einige Warnungen hoch - s.u.
Ich nehme an, weil ich

> [...] und "Unused IO-Pins => Pullup" einstellen.

nicht gemacht habe.
Wo kann ich diese Einstellung vornehmen (ich hab's nicht gefunden).

Warnings:

    Related source file is 
"D:/xilinx-workspace/bo8h/ipcore_dir/ks3a.vhd".
WARNING:Xst:737 - Found 1-bit latch for signal <wart>. Latches may be 
generated from incomplete case or if statements. We do not recommend the 
use of latches in FPGA/CPLD designs, as they may lead to timing 
problems.
WARNING:Xst:737 - Found 1-bit latch for signal <init>. Latches may be 
generated from incomplete case or if statements. We do not recommend the 
use of latches in FPGA/CPLD designs, as they may lead to timing 
problems.

[...]

    Related source file is 
"D:/xilinx-workspace/bo8h/ipcore_dir/ps3a.vhd".
WARNING:Xst:646 - Signal <adx<0>> is assigned but never used. This 
unconnected signal will be trimmed during the optimization process.

[...]

======================================================================== 
=
*                       Advanced HDL Synthesis 
*
======================================================================== 
=

WARNING:Xst:1426 - The value init of the FF/Latch ini hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch enab4 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab5 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab6 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab7 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wst hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant 
cleaning in the block wart.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant 
cleaning in the block init.
   You should achieve better results by setting this init to 0.

[...]

======================================================================== 
=
*                         Low Level Synthesis 
*
======================================================================== 
=
WARNING:Xst:1426 - The value init of the FF/Latch ini hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch enab4 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab5 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab6 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab7 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wst hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wart hinder the 
constant cleaning in the block display.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch init hinder the 
constant cleaning in the block display.
   You should achieve better results by setting this init to 0.
INFO:Xst:2261 - The FF/Latch <p1eava> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewa0>
INFO:Xst:2261 - The FF/Latch <p1ebvb> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewb0>
INFO:Xst:2261 - The FF/Latch <p1ebbv> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewb7>
INFO:Xst:2261 - The FF/Latch <qhopan> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <q1opz>
WARNING:Xst:2040 - Unit ps3a: 24 multi-source signals are replaced by 
logic (pull-up yes): adrbus<0>, adrbus<10>, adrbus<11>, adrbus<12>, 
adrbus<13>, adrbus<14>, adrbus<15>, adrbus<1>, adrbus<2>, adrbus<3>, 
adrbus<4>, adrbus<5>, adrbus<6>, adrbus<7>, adrbus<8>, adrbus<9>, 
datbus<0>, datbus<1>, datbus<2>, datbus<3>, datbus<4>, datbus<5>, 
datbus<6>, datbus<7>.
WARNING:Xst:2042 - Unit cpu: 24 internal tristates are replaced by logic 
(pull-up yes): adrbus<0>, adrbus<10>, adrbus<11>, adrbus<12>, 
adrbus<13>, adrbus<14>, adrbus<15>, adrbus<1>, adrbus<2>, adrbus<3>, 
adrbus<4>, adrbus<5>, adrbus<6>, adrbus<7>, adrbus<8>, adrbus<9>, 
datbus<0>, datbus<1>, datbus<2>, datbus<3>, datbus<4>, datbus<5>, 
datbus<6>, datbus<7>.

[...]

Process "Translate" completed successfully

Started : "Map".
Running map...
Command Line: map -intstyle ise -p xc3s700an-fgg484-4 -cm area -ir off 
-pr off -c 100 -o ps3a_map.ncd ps3a.ngd ps3a.pcf
Using target part "3s700anfgg484-4".
Mapping design into LUTs...
WARNING:LIT:176 - Clock buffer is designated to drive clock loads. 
BUFGMUX
   symbol "physical_group_dckp_OBUF/ibg" (output signal=dckp_OBUF) has a 
mix of
   clock and non-clock loads. The non-clock loads are:
   Pin I1 of oclk1
   Pin I1 of ducn_not00011
Running directed packing...
WARNING:Pack:266 - The function generator adrbus<2>LogicTrst1 failed to 
merge
   with F5 multiplexer i08/neuctr<2>_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator adrbus<3>LogicTrst1 failed to 
merge
   with F5 multiplexer i08/neuctr<3>_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<0>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<1>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<2>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
Running delay-based LUT packing...
Running related packing...
Updating timing models...
WARNING:PhysDesignRules:739 - Unexpected DCM feedback loop. The signal
   GLOBAL_LOGIC0 on the CLKFB pin of comp idm is not driven by an IOB or 
BUFGMUX
   therefore the phase relationship of output clocks to CLKIN cannot be
   guaranteed.

von Guest (Gast)


Lesenswert?

Frank Bergemann schrieb:
> Jetzt muss ich mal meinen Frust etwas Luft machen.
> Seit Wochen versuche ich meine ersten Schritte mit einem S3AN Board.
> Und die einzige Erkenntnis, die ich erlange, ist das Xilinx von
> anwenderfreundlichen Software wohl keine Ahnung hat.
> Die Krönung von allem ist das Lizenz-Handling. Da sind wohl keine
> Software-Experten mit einem Hauch von Gespür für Kunden am Werke,
> sondern Sadisten mit einem Hauch von Programmiererfahrung.
> Nach etlichem hin & her bin mit der neuesten ISE Version 14.7 und
> zusätzlichen Paketen wie Active-HDL (siehe meinen thread "xilinx newbie
> und microblaze") habe ich mir sogar noch mal das nexys 2 an's Bein
> gebunden.

Also ganz ehrlich, wenn du Software benutzt die nicht mehr 
weiterentwickelt wird auf einem FPGA der schon uralt ist dann brauchst 
du dich nicht beschweren wenn nur scheiße dabei rauskommt.
Kauf dir halt nen 7er FPGA und nimm Vivado dann hast du ne vernünftige 
Toolchain. So teuer sind die jetzt auch nicht mehr (muss ja kein Virtex 
sein) und dafür kannst du dich dann nicht mehr beschweren.
Andernfalls benutz wenigstens planAhead.
Das Licence Managing von Xilinx ist übrigens auf zahlende Kunden 
zugeschnitten, wer hätte es gedacht...

von juju (Gast)


Lesenswert?

> nimm Vivado dann hast du ne vernünftige
> Toolchain

Rofl - immer dieser Sarkasmus im Forum ^^

Im Ernst: Auch mit ISE kann man hervorragend arbeiten ;) Man sollte halt 
mal ein kleines Tutorial durcharbeiten und eine LED ein oder 
ausschalten. Das ist doch wirklich kinderleicht. Immer schön klein 
anfangen...

von Guest (Gast)


Lesenswert?

juju schrieb:
>> nimm Vivado dann hast du ne vernünftige
>> Toolchain
>
> Rofl - immer dieser Sarkasmus im Forum ^^
>
> Im Ernst: Auch mit ISE kann man hervorragend arbeiten ;) Man sollte halt
> mal ein kleines Tutorial durcharbeiten und eine LED ein oder
> ausschalten. Das ist doch wirklich kinderleicht. Immer schön klein
> anfangen...

Naja die ISE ist halt voll von Bugs und Problemen, dafür fehlen Features 
an allen Ecken. Vivado und PA machen einiges besser, PA nutzt halt 
leider noch den alten Xst und kann deswegen kein VHDL 2008 und so 
Späßchen...

von juju (Gast)


Lesenswert?

> Naja die ISE ist halt voll von Bugs und Problemen, dafür fehlen Features
> an allen Ecken.

Das stimmt auf jeden Fall. Allerdings gilt das gleiche auch für Vivado. 
Ich habe zB. nicht schlecht gestaunt, als ich erfolglos nach einer 
Möglichkeit in Vivado suchte eine Testbench (Grundgerüst) automatisch 
für eine Komponente zu erstellen. Das geht in ISE, aber in Vivado 
scheinbar nicht (oder ich habe es nicht gefunden). Darüber hinaus hat 
Vivado noch einige Kinderkrankheiten (leider).

Man muss leider sagen, dass Xilinx nicht der Hit in Sachen Software ist. 
Aber man kann schon damit arbeiten, wenn man die Fallstricke kennt.

lg

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich würde da einfach mal ganz kleine Brötchen backen und die 
Schritt-für-Schritt Anleitung dort abarbeiten:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Da kamen unterwegs allerdings einige Warnungen hoch - s.u.

>> [...] und "Unused IO-Pins => Pullup" einstellen.

> Wo kann ich diese Einstellung vornehmen (ich hab's nicht gefunden).

Die Warnungen hatte ich auch alle (31 waren es bei mir).
Lass dich davon nicht irritieren. Warnings sind keine errors.

Die Einstellung mit den Unused Pins wird unter
"Create Programming File" - "Edit Process Properties" gemacht.

von Weltbester FPGA Pongo (Gast)


Lesenswert?

Christian R. schrieb:
> Immer mit der Ruhe. Nimm nur eine Version, die 14.7 kann alles was du
> brauchst.

Und sie hat gegenüer der 14.6 einige nette bugs, die nicht mehr gefixed 
werden, weil nun Vivado im FOkus ist. Es wird keine neue ISE mehr geben.

Und: Die wissen warum. Das Xilinx Gedöhns ist voller bugs und 
Inkompatibilitäten der einzelnen Komponenten zueinander, sodass es 10 
Jahre dauern würde, das zu Homogenisieren und zu Fixen.

Also bauen sie was neues.

Vivado kommt natürlich mit ähnlichen Problemen daher, von daher kämpfe 
ich seit unmehr 2 Jahren, damit ich kein Xilinx mehr machen muss und bei 
Altera bleiben kann. Damm hat man nur einen Müllhaufen zu pflegen und 
der Müll in Altera ist um 3 Nummern kleiner.

Das grosse Problem der Firma Xilinx ist, dass sie keine strategische 
Softwareentwicklung betrieben hat und betreibt von daher sind Probleme 
in der Migration und Pflege von vorn herein eingebaut. Da rein spielt 
auch die Personalpolititk der häufig wechselnden Entwickler, die um eine 
immer kleiner werdene Gruppe von alten Hasen versucht, am Chao zu 
flicken. Man kann es an den Dokumenten sehen: Vieles ist inkonsitent und 
passt nicht zu den Beispielen, viele Examples laufen nicht , dasselbe 
gilt für die halbduchdachten Appnotes.

Inwischen ist es so, dass viele Entwickler hergehen, eine Weile beim 
grossen X arbeiten, um damit etwas Knowhowvorsprung gegenüber den 
normalen Entwicklern zu haben, den sie dann teuer versilbern, weil viele 
Firmen einfach darauf angewiesen sind, mit ihren Systemen zu arbeiten 
und da stecken halt überwiegend Xilinx-FPGAs drin.

Die zahlen dann einem Xilinx-Affiliance-Experten praktisch jeden Preis, 
um ihr Zeug ins Laufen zu bekommen.

Was da von Xilinx und den "Experte" her läuft ist eben genau das 
Gegenteil dessen, was immer progiert wird:

Einfache Entwicklung, die leichter kontrollierbar wird und u.a. auf 
vereinheitlichten Komponenten basiert. Tatsächlich wird alles komplexer 
und fehleranfälliger. Baue Dir einfach mal mit dem System Generator 
einen Signalverarbeitungs-FPGA und warte auf die nächste Vivado oder 
MATLAB Version. Da läuft NICHTS mehr! Überhaupt nichts mehr.

Und das Methode! Keine andere Firma investiert so wenig in Nutzbarkeit 
und Wiederverwendbarkeit. Alles sind temporärer Insellösungen, die 
letztlich wieder ersetzt werden müssen. Und damit wird eben viel Geld 
verdient.

Xilinx verdient nicht an der Software, sondern an den Schulungen und 
Lizenzen für die Schulungsprogramme.

Das ist im Prinzip so, wie wenn Merceds Autos bauen würde, die immer 
unfahrbarer sind, damit sie die Fahrlehrer kostenpflichtig schulen 
können.

von Fpgakuechle K. (Gast)


Lesenswert?

Guest schrieb:

> Also ganz ehrlich, wenn du Software benutzt die nicht mehr
> weiterentwickelt wird auf einem FPGA der schon uralt ist dann brauchst
> du dich nicht beschweren wenn nur scheiße dabei rauskommt.
> Kauf dir halt nen 7er FPGA und nimm Vivado dann hast du ne vernünftige
> Toolchain.

Fanboy-gedöhns
- ISE ist wenn auch nicht perfekt dann doch eine gereifte Software die 
in der Community inzwischen gut verstanden ist. Vivado hat weit weniger 
Experten die produktiv damit arbieten können. Ebenso Spartan3A das ist 
eine etablierte FPGA-Familie, die 7er bringen nur in Details 
Leistungsverbesserungen die es aber dem Einsteiger auch nicht die Mühe 
abnehmen sich hart die Grundlagen der programmierbaren Loguk zu 
erarbeiten.

MfG,

von Fpgakuechle K. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Ich würde da einfach mal ganz kleine Brötchen backen und die
> Schritt-für-Schritt Anleitung dort abarbeiten:
> http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

Hm VHDL-Schnipsel helfen beim Verständnis des ISE-Workflows nur bedingt 
weiter. Einer Anfrage wie "Hilfe mein Word für Windows" ist mit einem 
Link auf "Deutsche Rechtschreibung" auch nicht beantwortet. was hier 
gebraucht wird ist eine "KlickKlackie anleitung. Da seh ich unter dem 
angegeben Link gerade nichts.

Es gibt auch ein paar Video Tutorials auch von einigen Forums-Kollegen. 
Schau mal unter:

Lehrvideos
*Beitrag "Meine FPGA videotutorials für Einsteiger"

Ich hab zwar jetzt dabei auf die schnelle nur Altera-workshops gefunden, 
vielleicht bast aber doch was zu ISE. Und über die Qualität kann man 
auch streiten - ist aber immer noch besser als garnichts.

MfG,

PS:

Lothar meinte wohl diese Links:
http://www.lothar-miller.de/s9y/uploads/Tutorial_Xilinx_ISE13.pdf
http://www.lothar-miller.de/s9y/categories/41-Xilinx-ISE

von Frank B. (fbergemann)


Lesenswert?

@Josef:
hab' die Einstellung gefunden.
Sie ist i.d. "Design" Tab nur sichtbar, wenn man i.d. "Hierarchy" 
ps3a.vhd anwählt - das muss man ja wissen...

Mit "Generate Programming File" bin ich jetzt durch.
"Configure Target Device" geht auch.

Aber bei der Anwahl von "Generate Target PROM/ACE File" bekomme ich die 
Meldung: "An iMPACT Project File exists, but there is no information 
about PROM file or SystemACE. [...]"

Wie geht's da jetzt weiter?

von klausro (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> Hm VHDL-Schnipsel helfen beim Verständnis des ISE-Workflows nur bedingt
> weiter. Einer Anfrage wie "Hilfe mein Word für Windows" ist mit einem
> Link auf "Deutsche Rechtschreibung" auch nicht beantwortet. was hier
> gebraucht wird ist eine "KlickKlackie anleitung. Da seh ich unter dem
> angegeben Link gerade nichts.

Genauer lesen, ca. in der Mitte der Seite ist der Link:
http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html

Ist aber für ISE-13

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> "Configure Target Device" geht auch.

Heisst das, dass du das FPGA bereits programmiert hast?

> Aber bei der Anwahl von "Generate Target PROM/ACE File"

Ich würde erst einmal das FPGA nur flüchtig
im Konfigurations-RAM programmieren.

von Frank B. (fbergemann)


Lesenswert?

> Heisst das, dass du das FPGA bereits programmiert hast?

Hat zwischenzeitig so ausgesehen.
Aber das board führt immer noch das Ab-Werk-Demo aus(?)

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Aber das board führt immer noch das Ab-Werk-Demo aus(?)

Sind die 3 Config-Jumper in Stellung JTAG?

von Frank B. (fbergemann)


Lesenswert?

jetzt ja :-)

Muss ich jetzt in iMPACT mit der rechten Maustaste auf's xc3s700an und 
dann "Program Flash and Load FPGA..." auswählen?

Dann wird programmiert - aber am Ende kommt dann:
1
[...]
2
INFO:iMPACT - Address 0x00000000 is in sector 0.
3
INFO:iMPACT - Address 0x0005364B is not located at the start of a sector boundary. The whole sector will be erased.
4
INFO:iMPACT - Address 0x0005364B is in sector 6.
5
INFO:iMPACT - Address 0x00000000 is in sector 0.
6
INFO:iMPACT - Address 0x0005364B is not located at the start of a sector boundary. The whole sector will be erased.
7
INFO:iMPACT - Address 0x0005364B is in sector 6.
8
INFO:iMPACT - Address 0x00000000 is in page 0.
9
INFO:iMPACT - Address 0x0005364B is in page 1293.
10
'1': Programming Flash...done.
11
'1': Programming completed successfully.
12
INFO:iMPACT - Address 0x00000000 is in page 0.
13
INFO:iMPACT - Address 0x0005364B is in page 1293.
14
'1': Verifying device...done.
15
'1': Verification completed successfully.
16
'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and spi mode settings.
17
PROGRESS_END - End Operation.
18
Elapsed time =     96 sec.

Nachtrag:
Bei J26 ist jetzt nur M1 gebrückt.
Für J46 ist das setting egal?

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> dann "Program Flash and Load FPGA..." auswählen?

Ich verwende ISE 11.1. Da ist offenbar einiges anders als bei dir.

"Programm Flash" würde ich nicht wählen.

Bei meiner Version muss ich nur das FPGA anklicken und
das .bit -File auswählen. Der Rest wird übersprungen.

Setting J46 kann ich auf die Schnelle nicht beantworten.
Müsste alles im UG334 stehen.

von Josef G. (bome) Benutzerseite


Lesenswert?

PS: J46 ist bei mir in der "oben"-Stellung
(mittlerer Pin mit oberem (Done-)Pin verbunden).

von Frank B. (fbergemann)


Lesenswert?

Ja - jetzt passiert doch schon mal was :-)

Sollten danach 2 von 8 LEDs an sein?
Und mit dem SW0 (ganz rechts) kann man LED0 (ganz recht) schalten.
Mit dem Schaltern SW1 und SW2 kann man (OR'ed) LED6 schalten.
Schalter SW3 ist ohne Wirkung(?)
Auf VGA sehe ich eine Art Testbild (gelb/schwarzes Muster auf blauen 
Untergrund).

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Und mit dem SW0 (ganz rechts)

SW0 sollte in Stellung Null bleiben.
(Siehe Seite Hawa meiner Website: Erweiterungs-Schnittstelle)

Drücke mal Taster EAST (rechter Taster). Startet die CPU?

von Josef G. (bome) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Startet die CPU?

Das wäre daran zu erkennen, dass Text auf dem Bildschirm erscheint.
Falls sich nichts tut: sicherheitshalber ausschalten.

von Frank B. (fbergemann)


Lesenswert?

ja, das klappt.
Ich seh' jetzt ein Bild mit "CMD" links unten.
und ein blinkender Cursor darüber
Erfolgt die Eingabe über die PS2 Tastatur?
(hab' ich probiert - es passiert aber nix)

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Erolgt die Eingabe über die PS2 Tastatur?
> (hab' ich probiert - es passiert aber nix)

Hast du eine echte PS2 Tastatur oder eine USB-Tastatur mit Adapter?
Falls letzteres: Es soll angeblich rein mechanische Adapter geben
ohne Elektronik. Mit einem solchen würde es nicht funktionieren.

von Frank B. (fbergemann)


Lesenswert?

Ich hab' einen USB Tastatur mit einem grünen Adapter an den PS/2 
Anschluss angeschlossen. Der ist wohl nur passiv.
Hab' auf die schnelle keine sichere aktive Variante im Netz finden 
können.
Ich seh' mal zu, dass ich eine PS/2 Tastatus auftreibe.

- Danke, schon mal für die Hilfe!

von Josef G. (bome) Benutzerseite


Lesenswert?

Bitte auch berücksichtigen: PS2-Tastaturen nur an das
ausgeschaltete Gerät anstecken, sonst kann was kaputtgehen.
(Hab ich mal irgendwo gelesen.)

von Josef G. (bome) Benutzerseite


Lesenswert?

Ach ja, das noch: Falls du eine Tastatur eigens für diesen Zweck
anschaffst: Wäre günstig, wenn sie Power/Sleep/WakeUP -Tasten hätte.

von Duke Scarring (Gast)


Lesenswert?

@Frank Bergemann:
Auch wenn Josef Code jetzt bei Dir läuft, er ist kein Vorbild, wie man 
VHDL verwenden sollte, auch wenn Josef mit Sicherheit was anderes 
behauptet.
Uneingeschränkt kann ich bisher nur die Seite von Lothar Miller 
empfehlen:
http://www.lothar-miller.de/s9y/categories/1-VHDL

Duke

von mhm (Gast)


Lesenswert?

Duke Scarring schrieb:
> @Frank Bergemann:
> Auch wenn Josef Code jetzt bei Dir läuft, er ist kein Vorbild, wie man
> VHDL verwenden sollte, auch wenn Josef mit Sicherheit was anderes
> behauptet. Uneingeschränkt kann ich bisher nur die Seite von Lothar
> Miller empfehlen:
> http://www.lothar-miller.de/s9y/categories/1-VHDL
>
> Duke

Da muss ich Duke zustimmen. Am Besten das jetzt als einsteigendes 
Erfolgserlebnis verbuchen, dann den Code von Josef aber schnell wieder 
vergessen und mit den Basics auf Lothar Millers Seite anfangen, dort ist 
alles schön dokumentiert.

von Josef G. (bome) Benutzerseite


Lesenswert?

@ Frank Bergemann

Da ich gerade deinen neuen Thread "S3AN restaurieren" gesehen habe:

Falls du bei obigen Programmier-Versuchen versehentlich die
Original-Konfiguration im Flash zerstört hast, so sehe ich die
Schuld dafür nicht direkt bei mir. Zum Testen meiner Konfiguration
war nur das Schreiben ins Konfigurations-RAM erforderlich, ohne
Änderung eines Flash-Speichers.

Da du einen neuen Thread angefangen hast: Haben meine beiden
Vor-Poster dich tatsächlich davon abgebracht, dich weiter mit
meinem Projekt zu befassen? Falls ja: Ist dir aufgefallen,
dass sie nur geschrieben haben, mein Projekt sei Mist,
aber keinerlei Begründung dafür genannt haben?

von Frank B. (fbergemann)


Lesenswert?

@Josef:
Nee, damit hat das nix zu tun. Ich will bloss prinzipiell sehen, ob 
ich's wieder zurückgesetzt bekomme.
Morgen müßte mein nexys-2 ankommen. Dann will ich das damit auch noch 
mal probieren. Und ich werde mir dann noch mehr von Deiner CPU ansehen. 
Da war in dem urspr. thread über Deine CPU von einer Art Testprogramm 
die Rede, das ungefähr was über die Leistungsfähigkeit aussagen sollte 
(waren's um die 12,5 MIPs?). Ich hab' allerdings noch nicht überblickt, 
welche Programme schon verfügbar sind und wie man sie auf's board bringt 
und startet. Kann ich z.B. das send.c und rece.c auch unter 
windows-cygwin compilieren und laufen lassen?

von Da D. (dieter)


Lesenswert?

Josef G. schrieb:
> Da du einen neuen Thread angefangen hast: Haben meine beiden
> Vor-Poster dich tatsächlich davon abgebracht, dich weiter mit
> meinem Projekt zu befassen? Falls ja: Ist dir aufgefallen,
> dass sie nur geschrieben haben, mein Projekt sei Mist,
> aber keinerlei Begründung dafür genannt haben?

Och komm schon Josef, die Gründe sind doch zur genüge in deinem Thread 
unter "Projekte&Code" durchgekaut. Ich finde es echt nicht fair, einem 
Anfänger, der die Qualität des Codes noch nicht beurteilen kann, dein 
Projekt vorzusetzten!

von Xilinx Incontinention (Gast)


Lesenswert?

zumal der Code vpn Josef auf nicht zu den Paradebeispielen gut 
durchdachter Software zaehlt.

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Kann ich z.B. das send.c und rece.c auch unter
> windows-cygwin compilieren und laufen lassen?

Die PC-seitig für die RS232-Übertragung erforderlichen Programme
gibt es bisher nur für Linux. Von Windows habe ich Null Ahnung.

Beitrag "Re: 8bit-Computing mit FPGA"
http://www.fpga-talk.de/forum/viewtopic.php?p=1250#p1250

von Fpgakuechle K. (Gast)


Lesenswert?

Da Dieter schrieb:
> Josef G. schrieb:

> Och komm schon Josef, die Gründe sind doch zur genüge in deinem Thread
> unter "Projekte&Code" durchgekaut. Ich finde es echt nicht fair, einem
> Anfänger, der die Qualität des Codes noch nicht beurteilen kann, dein
> Projekt vorzusetzten!

Also neines Erachtens sind die postings hier von Josefs 1000x 
hilfreicher als der Shitstorm gegen sein Project der hier immer wieder 
am schwappen gehalten wird.

Dank Joseph kennt Frank die Downloadfunktion seines Boards besser und 
hat sein board überhaupt erst an spielen gebracht.

Und das ist nicht nur fair sondern so auch so wie eine community 
funktionieren sollte - man hilft mit dem was man hat.

MfG,

von Frank B. (fbergemann)


Lesenswert?

@josef & @fpgakuechle:
Heute ist mein nexys2 board angekommen.
Das habe ich mir noch geholt (ebay) wg. des Hinweis' mit dem Lehrbuch 
http://www.digilentinc.com/Data/Textbooks/Intro_to_Digital_Design-Digilent-Verilog_Online.pdf 
(thread "xilinx newbie und microblaze").
Dann kann ich die darin enthaltenen Beispiele durchexerzieren.

Das nexys2 ist ein schnuckliges kleines board!
Die CPU von Josef hab' ich darauf auch schon mal soweit zum Laufen 
bekommen, wie ich es mit eurer Hilfe vorher auf dem S3AN geschafft habe 
:-)

Jetzt will ich erst noch mal sehen, dass ich das S3AN zurückgesetzt 
bekomme (thread "S3AN restaurieren - ohne DirectSPI mode?")

Danach werde ich mir dann die Demo Programme zur bo8h CPU vornehmen.

Und ich hab' gesehen, dass "fpgakuechle" an dem "xilinx newbie und 
microblaze" dran ist :-)

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> INFO:Xst:2261 - The FF/Latch <p1eava> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewa0>
> INFO:Xst:2261 - The FF/Latch <p1ebvb> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewb0>
> INFO:Xst:2261 - The FF/Latch <p1ebbv> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewb7>
> INFO:Xst:2261 - The FF/Latch <qhopan> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <q1opz>
Diese Doppelungen hatte ich übersehen. Ist geändert.

Josef G. schrieb:
> Wäre günstig, wenn sie Power/Sleep/WakeUP -Tasten hätte.
Die Aussage gilt nicht mehr. Tastaturbelegung geändert.

Frank Bergemann schrieb:
> Ich hab' einen USB Tastatur mit einem grünen Adapter an den PS/2
Grüner Adapter ist für die Maus. Der belegt
andere Kontakte der PS/2-Buchse als die Tastatur.

von W.S. (Gast)


Lesenswert?

Josef G. schrieb:
> Warum versuchst du nicht mal, dieses Projekt zu realisieren?

Manchmal stimmt mich das Leben traurig.

Ich sehe sehr wohl, daß Josef sich hier ziemlich tief in seine Materie 
gekniet hat und dabei ganz sicher ne Menge Arbeitsstunden draufgegangen 
sind. Aber was macht man damit? O ja, ich weiß, im Prinzip ist es das 
"Sich Freuen, daß es geht", etwa genau so wie die elektrische Eisenbahn 
oder ein Radio zu bauen oder per Raspberry sein Haus zu 
"elektronifizieren". Hobby eben.

Bloß wo sollte unsereiner die dafür benötigte Zeit hernehmen? In der 
Woche: gar keine Zeit, am Wochenende: alles nachholen, was seit vorigem 
Wochenende so aufgelaufen ist, folglich auch bloß keine Zeit. Wäre ich 
im ÖffD. dann eventuell anstelle des Büroschlafes, aber so..

Wo nehmt IHR bloß die Zeit her für derartige Projekte?

W.S.

von Christian R. (supachris)


Lesenswert?

W.S. schrieb:
> Wäre ich
> im ÖffD. dann eventuell anstelle des Büroschlafes, aber so..

Naja, ich arbeite in öD aber Zeit für so einen Schnickschnack hab ich 
trotzdem keine. Bei uns gibts leider keinen Büroschlaf :( Irgendwas mach 
ich dann wohl falsch, wenn deine zahlreichen Vorurteile stimmen würden.

von Fpgakuechle K. (Gast)


Lesenswert?

So, der Artikel zu Xilinx Microblaze MCS Workflow ist gestartet, 
einiges an screenshots und Text ist schon "reingeklatscht". Als 
"Brauchbar" halte ich den Instanzierungsschnipsel für den Core, das 
LED-Testprogramm und die links am Schluß. An der Beschreibung des 
workflows selbst fehlt noch einiges bis es verwendbar ist. Der Weg zum 
laufenden microblaze ist Fallgruben und irreführenden Fehlermeldungen 
gepflastert ...

Jetz programmier ich ein wenig mit dem Mikroblaze herum und musste dabei 
feststellen das mir das FPGA-Design leichter von der Hand ging.

Bei den Bibliotheksfunktionen fehlt mir eine Übersicht in welcher .h 
welche Funktion/Kosntante zu finden ist. Und die Funktionen knappsen 
selbst bei simple stuff wie led-blinken erheblich am Speicher, 4k 
reichen nicht aus.
wahrscheinlich kann man da mit dem linker noch was drehen. Und ob es 
wirklich ein ELF-header sein muß wie die Anleitungen suggeriert will 
sich mir auch nicht erschließen. Aber: Versuch mach kluch ;-)

MfG,

von Frank Bergemann (as guest) (Gast)


Lesenswert?

@fpgakuechle:
Für die Übersetzung das microblaze Testprogramms wird eine gcc toolchain 
verwendet - oder?
Check mal, ob bei Dir die compile option -Os verwendet wird

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html:
-Os
Optimize for size. -Os enables all -O2 optimizations that do not 
typically increase code size. It also performs further optimizations 
designed to reduce code size.

Ausserdem sollte -g nicht verwendet werden, sondern -g0.

Aus der gcc manpage:

       -g  Produce debugging information in the operating system's 
native format (stabs, COFF, XCOFF, or DWARF 2).  GDB can work with this 
debugging information.

later:
       [...]Thus, -g0 negates -g.

Wenn man auf's debuggen verzichten kann, dann werden keine debugger 
infos mit eingepackt, wenn man -g0 verwendet.

Das könnte den "Platzbedarf" verringern.
(liegt das executable denn im internen RAM des FPGAs?)

von Frank Bergemann (as guest) (Gast)


Lesenswert?

eine linker option hab' ich noch vergessen:
-s  Remove all symbol table and relocation information from the 
executable.

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann (as guest) schrieb:
> eine linker option hab' ich noch vergessen:
> -s  Remove all symbol table and relocation information from the
> executable.

Ja alles aktiv:
strip symbols, Optimize for size, no debug ; dennoch viel zu große für 
die Handvoll register zugriffe:

   text     data      bss      dec      hex  filename
   1934      268     2084     4286     10be  lets_blink_cp.elf

Morgen werd ich mal das linkerscript "dechiffrieren" - mal schauen wer 
die Übeltäter im text-segment sind.

MfG,

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann (as guest) schrieb:

> (liegt das executable denn im internen RAM des FPGAs?)

Ja beim (kostenlosen) microblaze MCE kann im Unterschied zum 
(kostenpflichtigen) microblaze nur BRAM (FPGA interner RAM) genutzt 
werden, deshalb ist da bei 128kB Schluß.

MfG,

von Frank B. (fbergemann)


Lesenswert?

Wie gross sind den heap und stack size? (Linker Script)
Nehmen die evtl. unnötig viel RAM in Anspruch?

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann schrieb:
> Wie gross sind den heap und stack size? (Linker Script)
> Nehmen die evtl. unnötig viel RAM in Anspruch?

heap und stack sind jeweils 1kByte - das ist sicher zuviel für den 
Kleinkram, insbesonders bei Heap ist mir unklar ob der überhaupt bei 
plain-c ohne Malloc überhaupt genutzt wird.

Aber für mich ist das angesicht der 2k code für simples setzen von bits 
im Ausgangsport nebensächlich.

Wahrscheinlich wird eine Standard-ISR dazugelinkt, die ich eigentlich 
nicht brauche. Und dann wohl auch noch StartUp-code von dem ich auch 
gern wüsste wie der ausschaut.

MfG,

von Frank B. (fbergemann)


Lesenswert?

auf http://www.xilinx.com/tools/mb_mcs.htm steht für's Microblaze MCS:
1
Memory   
2
 4kB-64kB Local memory only (Block RAM)   
3
 Local or External through virtual memory management up to 4GB

Kommt das 4kB limit jetzt vom S3A?

Laut http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf 
sollte mein 3SAN (XC3S700AN) 360kb (kbits) haben - also 45kB (kbytes).

von Josef G. (bome) Benutzerseite


Lesenswert?

Da Dieter schrieb:
> Och komm schon Josef, die Gründe sind doch zur genüge
> in deinem Thread unter "Projekte&Code" durchgekaut.

Wo zB. ? Kannst du mal einen Grund zitieren?

Sorry, das hier ist natürlich Frank Bergemann's Thread.
Aber wenn jemand so eine Tatsachenbehauptung aufstellt
und ich nicht widerspreche, wird sie womöglich geglaubt.

: Bearbeitet durch User
von Fpgakuechle K. (Gast)


Lesenswert?

Josef G. schrieb:
> Da Dieter schrieb:
>> Och komm schon Josef, die Gründe sind doch zur genüge
>> in deinem Thread unter "Projekte&Code" durchgekaut.
>
> Wo zB. ? Kannst du mal einen Grund zitieren?
>
> Sorry, das hier ist natürlich Frank Bergemann's Thread.
> Aber wenn jemand so eine Tatsachenbehauptung aufstellt
> und ich nicht widerspreche, wird sie womöglich geglaubt.

Moin miteinander,

könnt ihr das bitte in einem anderen thread diskutieren?!
Persönlich finde ich Josephs Anliegen völlig berechtigt, aber ich glaube 
jeder der sich erntshaft mit FPGA-Entwicklung beschäftigt ist gut in der 
Lage
zwischen Pöbelein primitivster Denkweise( Formulierung wie "Das ist 
Projekt ist Mist das haben wir schon durchgekaut" zähle ich dazu) und 
sachliche Ratschläge zu unterscheiden.

MfG,

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann schrieb:
> auf http://www.xilinx.com/tools/mb_mcs.htm steht für's Microblaze MCS:
>
1
> Memory
2
>  4kB-64kB Local memory only (Block RAM)
3
>  Local or External through virtual memory management up to 4GB
4
>
>
> Kommt das 4kB limit jetzt vom S3A?

Njein. So wie ich das html sehe kann der kostenlose MCS nur local 
memory,
dagegen der (meist) kostenpflichtige µB ohne MCS auch externen Memeroy 
nutzen. Es ist also weniger ein Typ den ein Lizenzproblem.

Nebenbemerkung: Das Xilinx gerade für die Zynq-reihe die einen festen 
ARM-Core an Board hat den Microblaze freigibt ist schon bezeichnent. 
Letzlich gibt ja Xilinx nicht den µB frei sondern das Platformstudio mit 
dem man sich SoC-Controllersysteme (CPU+Peripheriecontroller wie 
SPI+Coprozessoren (FPU/DMA/MMU) zusammenklicken kann.

>
> Laut http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf
> sollte mein 3SAN (XC3S700AN) 360kb (kbits) haben - also 45kB (kbytes).

Das sollte sich in Praxis auf 40 kByte und damit 10 000 Instructionsword 
für den 32bit Controller reduzieren. Der ARM kennt den platzsparenden 
Thumb-Befehlssatz, der µB nicht. Deshalb stören mich auch der Xtra Code 
den der Linker anfügt.
Inzwischen hab ich ein Map-Report vom Linker erstellen lassen. Da wird 
viel extra stuff zum main.o hinzugelinkt (interupt/Exception-handler 
Init-stuff). Spielen mit den commandline optionen wie default/standard 
libs nicht verwenden brachte leider keine zufriedenstellnden Ergebnisse. 
Entweder die Codegröße bleibt identisch oder das gesamte Codesegment 
bleibt leer (also auch kein main.o).

MfG,

von Duke Scarring (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> brachte leider keine zufriedenstellnden Ergebnisse.
Womit wir wieder beim Thema wären. Xilinx eben...

von Frank Bergemann (as guest) (Gast)


Lesenswert?

Hast Du schon die command line option -nostdlib ausprobiert?
- siehe hier:
https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Bergemann (as guest) schrieb:
> Hast Du schon die command line option -nostdlib ausprobiert?
> - siehe hier:
> https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free

Ja, damit gab es nur heap und stack aber kein code -nicht mal der von 
main.o . Erwartet habe ich das nur main.o verwendet würde ...
Mein nächster Versuch wäre also an dem generierten Linkerscript zu 
hacken.

MfG,

von Frank Bergemann (as guest) (Gast)


Lesenswert?

uner dem link, auf den ich oben verwiesen habe, erstellt jmd. sein 
eigenes minimales stubstart.S - um es anstelle des crt1.o zu verwenden.

von Frank Bergemann (Gast)


Lesenswert?

ich hab' das "Hello from a libc-free world!" 
(https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free) mal 
ausprobiert:
1
==============
2
=== cygwin ===
3
==============
4
5
$ cat test.c
6
int main(int argc, char** argv)
7
{
8
        return 0;
9
}
10
11
12
$ cat stubstart.S
13
.globl __main
14
15
__main:
16
    call main
17
    movl $1, %eax
18
    xorl %ebx, %ebx
19
    int $0x80
20
21
22
$ gcc -o testy test.c -O2 -s
23
24
$ gcc -o testx test.c stubstart.S -nostdlib -O2 -s
25
26
$ ls -ltr
27
[...]
28
-rwxr-xr-x  1 FBE None    8704 Mar  8 17:55 testy.exe
29
-rwxr-xr-x  1 FBE None    4096 Mar  8 17:56 testx.exe

Noch größer ist der Unterschied unter linux
1
=============
2
=== linux ===
3
=============
4
5
frank@frank-PC:~$ cat test.c
6
int main(int argc, char** argv)
7
8
{
9
10
        return 0;
11
12
}
13
14
15
frank@frank-PC:~$ cat stubstart.S
16
.globl _start
17
18
_start:
19
    call main
20
    movl $1, %eax
21
    xorl %ebx, %ebx
22
    int $0x80
23
24
$ gcc -o testy test.c -O2 -s
25
26
$ gcc -o testx test.c stubstart.S -nostdlib -O2 -s
27
28
$ ls -ltr
29
[...]
30
-rwxrwxr-x 1 frank frank     6232 Mar  8 19:03 testy
31
-rwxrwxr-x 1 frank frank      984 Mar  8 19:04 testx

Ist das beim MCS auch anwendbar - um Speicher zu sparen?

von Frank B. (fbergemann)


Lesenswert?

-O2 ist falsch - hätte -Os sein sollen

von Josef G. (bome) Benutzerseite


Lesenswert?

Frank Bergemann schrieb:
> Danach werde ich mir dann die Demo Programme zur bo8h CPU vornehmen.

Interessieren würde es mich ja schon, was daraus geworden ist.

Beitrag #5047856 wurde von einem Moderator gelöscht.
Beitrag #5162715 wurde von einem Moderator gelöscht.
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.