wie verwaltet man FPGA,- µC Firmware Version?

Gast #3127203
Lesenswert?

Hallo zusammen,

ich bin gerade an einem Projekt, das einen FPGA(altera) und einen µC auf 
einer Rechnerkarte erhaltet.

Meine Frage ist, wie man die Versionen von beiden verwaltet?
So habe ich mir vorgestellt: Quartus erzeugt mir Jic-File(Format: 
projectname.jic) für PROM-Speicher. Kann man ihm sagen, das er sowas wie 
projectname_versionX_Y.jic austomatisch erzeugen soll, wobei 
"versionX_Y" wird vorher als Makro definiert.

vielen Dank im voraus und schönes WE an Euch alle :-)

lg
#3127551
Lesenswert?

Naja, besonders kompliziert ist das nicht. Aber man muss schon etwas 
Handarbeit anlegen, ganz von alleine können das die Tools nicht. Wir 
verwenden z.B. einen TeamCity Build Server, der vergibt automatisch 
Versionsnummern, die sich aus den SVN Versionen und der Build Nummer 
zusammen setzen. Die werden dann in ein VHDL File als Constant durch das 
Build Script geschrieben, und somit ist jede Version eindeutig 
zurückverfolgbar und auch wieder herstellbar.
Lokal geht das natürlich wie oben schon geschrieben auch recht einfach 
mit z.B. den SVN Revisions. Irgendwo müssen die Versionsnummern ja 
herkommen, wenn du die manuell vergibst, kommst früher oder später 
Quatsch raus, weil man da immer mal Fehler macht. Und was bringen 
Versionsnummern, wenn man die Quellcode Stände dazu nicht hat?
Gast #3127616
Lesenswert?

Andreas B. schrieb:
> Was hällst du z.B. von SVN, GIT, oder ähnlichem?

Bei prof. Produktion im 20 Mann Team macht das Sinn aber darunter?

Meiner einer macht Unterverzeichnisse mit #1, #2 die bei Bedarf im 
Verzeichnisnamen kommentiert werden. Geht mit Tools wie Total Commander 
in Sekunden und sogar beim compilieren.

Rollouts kommen in ein freeze Verzeichnis und da gibt es dann auch eine 
Versionsnummer.
Gast #3127725
Lesenswert?

Christian R. schrieb:
> Im einfachsten Fall reicht ein file-Repository auf einem
> Netzlaufwerk.

Das ist m.E. gerade für Privatanwender eine Hürde, Netzlaufwerke mit 
SVN-Server sind in Privathaushalten nicht besonders verbreitet und 
seinen Quellcode mag nicht jeder einem SVN-Provider anvertrauen. Zwar 
kann man SVN auch local aufsetzen und betreiben, das ist aber nicht 
gerade selbst- erklärend. RCS ist da Neuling- und 
Single-User-freundlicher; mit Einschränkungen auch CVS.

MfG,
Gast #3127752
Lesenswert?

Fpga Kuechle schrieb:
> Christian R. schrieb:
>> Im einfachsten Fall reicht ein file-Repository auf einem
>> Netzlaufwerk.
>
> Das ist m.E. gerade für Privatanwender eine Hürde, Netzlaufwerke mit
> SVN-Server sind in Privathaushalten nicht besonders verbreitet und
> seinen Quellcode mag nicht jeder einem SVN-Provider anvertrauen. Zwar
> kann man SVN auch local aufsetzen und betreiben, das ist aber nicht
> gerade selbst- erklärend. RCS ist da Neuling- und
> Single-User-freundlicher; mit Einschränkungen auch CVS.

Mit dem oben schon erwähnten TortoiseSVN unter Windows ist es wirklich 
sehr einfach: rechtsclick in einem leeren Verzeichnis -> Create 
Repository Here.
Gast #3127767
Lesenswert?

Aloha,

ich nutze git und SVN immer kombiniert, und zwar git fürs Tracken der 
Änderungen während der Entwicklung, SVN fürs Einfrieren/Release.
Mit 'svnversion' kann man sich die Tags per Makefile beliebig in Sources 
ausgeben, oder die $Rev:$ Tags nutzen (Siehe dazu Stichwort 
'svn:keywords' zur Aktivierung des Tagging). Bei git ist das Revisioning 
grundsätzlich anders und nicht wirklich mit fortlaufenden Versionnummern 
kompatibel, müsste man sich also das Tagging auch selber stricken.
Die Dinos wie RCS und CVS würde ich nicht mehr empfehlen, die haben so 
einige Limitierungen und Probleme mit grossen Projekten.
svn und git sind ansich ohne grosses Gefuddel aufzusetzen, so dass die 
Repositories auf lokalen Laufwerken liegen.
Gast #3127867
Lesenswert?

Lattice User schrieb:
> Fpga Kuechle schrieb:

>> Das ist m.E. gerade für Privatanwender eine Hürde, Netzlaufwerke mit
>> SVN-Server sind in Privathaushalten nicht besonders verbreitet und
>> seinen Quellcode mag nicht jeder einem SVN-Provider anvertrauen. Zwar
>> kann man SVN auch local aufsetzen und betreiben, das ist aber nicht
>> gerade selbst- erklärend. RCS ist da Neuling- und
>> Single-User-freundlicher; mit Einschränkungen auch CVS.
>
> Mit dem oben schon erwähnten TortoiseSVN unter Windows ist es wirklich
> sehr einfach: rechtsclick in einem leeren Verzeichnis -> Create
> Repository Here.

OK, hab ich grad ausprobiert. Es werden mehrere Verzeichnisse 
(hooks,locks,...) angelegt. Damit habe ich immer nocht nicht die Sourcen 
in Ihren verzeichnissen unter Versionskontrolle. Wie gehts weiter mit 
SVN local unter Windows?
Gast #3127897
Lesenswert?

Fitzebutze schrieb:
> Aloha,
>
> ich nutze git und SVN immer kombiniert, und zwar git fürs Tracken der
> Änderungen während der Entwicklung, SVN fürs Einfrieren/Release.
> Mit 'svnversion' kann man sich die Tags per Makefile beliebig in Sources
> ausgeben, oder die $Rev:$ Tags nutzen (Siehe dazu Stichwort
> 'svn:keywords' zur Aktivierung des Tagging). Bei git ist das Revisioning
> grundsätzlich anders und nicht wirklich mit fortlaufenden Versionnummern
> kompatibel, müsste man sich also das Tagging auch selber stricken.
> Die Dinos wie RCS und CVS würde ich nicht mehr empfehlen, die haben so
> einige Limitierungen und Probleme mit grossen Projekten.
> svn und git sind ansich ohne grosses Gefuddel aufzusetzen, so dass die
> Repositories auf lokalen Laufwerken liegen.

Der Fragesteller Django bemerkt oben das svn kompliziert ist, da hilft 
es m.E. nicht ihn mit Fachchinesisch wie 
Tags/TaggingAktivierung/$Rev:$/Einfireren/Release/Repositories ihn vom 
Gegenteil überzeugen zu wollen. RCS ist zwar limitiert  aber kein 
behäbiger, schwer kontrollierbarer Dino. Für globale Teams die an x 
Modulen werkeln ist eben eine komplexer Struktur und verschiedene 
Prozesse (Freeze/RollOut/ConfigManagment) notwendig die im 
Einzelkämpfermodus die Versionsverwaltung unnötig aufblähen.

Meines Erachtens liegt das problem am Aufsetzen des SVN etc an den 
eigenwilligen Begriffen die es erst mal zu klären gilt Und das jede 
Versionsverwaltung alles anders bennent und geringfügig anders umsetzt.
Da heisst es mal Depot/Repository/VOB/sandbox oder
trunk/main/baseline oder label/tag/etc.

Dabei will man doch nur verschiedene versionen abspeichern, die 
Änderugen zwischen diesen sehen und ggf. auf eine ätere Version 
zurückspringen.

MfG,
Gast #3128006
Lesenswert?

Das Entscheidende jeder Versionsverwaltung, Teamarbeit, 
Autoaktualisierung, Branching, Seitenentwicklung und Zusammenführung von 
Dokumenten ist Ordnung im Kopf und eine geeignete Strategie, an die sich 
alle halten.

Mit welchem tool das passiert, ist eigentlich zweitrangig.

Wenn ich mir ansehe, wie in deutschen Stuben gebastelt wird, ist jedes 
Versinostool nutzlos. Meistens dient es nur zum Archivieren.
#3128023
Lesenswert?

Fpga Kuechle schrieb:
> OK, hab ich grad ausprobiert. Es werden mehrere Verzeichnisse
> (hooks,locks,...) angelegt. Damit habe ich immer nocht nicht die Sourcen
> in Ihren verzeichnissen unter Versionskontrolle. Wie gehts weiter mit
> SVN local unter Windows?

Die versteckten Verzeichnisse interessieren erst mal nicht. Das was du 
jetzt hast, ist das Repository, quasi eine Datenbank.

Jetzt kannst du da rechte Maustaste -> Tortoise -> Repo Browser machen 
und die Adresse aus dem Feld oben kopieren.

Dann gehst du in deinen Quellcode-Ordner und machst rechte Maustaste -> 
SVN Checkout und dann die Adresse reinkopieren. Und schon steht der 
Ordner zunächst mal formell untere Versionskontrolle. Wenn du dann SVN 
Commit machst, werden alle Dateien (die man anhakt) erstmalig 
hinzugefügt und versioniert. Ab dann gehts einfach in dem 
Quellcode-Ordner immer mit Commit und Update.
Gast #3128351
Lesenswert?

Christian R. schrieb:

> Jetzt kannst du da rechte Maustaste -> Tortoise -> Repo Browser machen
> und die Adresse aus dem Feld oben kopieren.
>
> Dann gehst du in deinen Quellcode-Ordner und machst rechte Maustaste ->
> SVN Checkout und dann die Adresse reinkopieren. Und schon steht der
> Ordner zunächst mal formell untere Versionskontrolle. Wenn du dann SVN
> Commit machst, werden alle Dateien (die man anhakt) erstmalig
> hinzugefügt und versioniert. Ab dann gehts einfach in dem
> Quellcode-Ordner immer mit Commit und Update.

Machn wir nen Artikel fürs wiki draus? Mit Screenshots? Ich hab die 
deutchsprachige Schildkröte am Laufen, da heist das alles etwas anders.
Gast #3141251
Lesenswert?

wir setzten hier anstelle von SVN Mercurial an. Für Windows findest Du 
es als TortiseHG, es gehört zu den dezentralen Versionsverwaltungen und 
eignet sich auch gut als Einzelentwickler.
Ist meiner Meinung nicht so kompliziert wie SVN, aber das ist immer 
Geschmackssache.

Wichtig ist jedoch immer, dass auch regelmäßig die Versionsstände 
gespeichert werden. Evtl. innerhalb von Branches.
Gast #3141373
Lesenswert?

Einfache Lösung ohne Tools:

1. Im Code hat man eine Versionsinformation, die man im System auslesen 
kann (z.B. beim µC über RS232). Diese Versionsinfo sollte ausführlich 
genug sein, um die einzelnen Entwicklungszwischenschritte anzuzeigen 
(also nicht nur "1.0" sondern z.B. "1.0.1223" für den 1223 
Entwicklungsschritt).

2. Wenn Du mit einem Entwicklungsschritt zufrieden bist, kopierst Du das 
ganze Projektverzeichnis und erweiterst den Namen um die Versionsinfo 
(z.B. "MeinProjekt_1.0.1223"). Darin änderst Du dann nie mehr 
irgendetwas!!!
Mit der Zeit bekommst Du dann jede Menge Verzeichnisse, was aber dank 
großer HD heute kein Problem ist.
(Hier hilft auch ZIP)

3. Wenn Du Deinen aktuelles Projektstand mit einen alten vergleichen 
willst, kannst Du einfach die Projektverzeichnisse per "WinMerge" 
vergleichen.

Mit einer Versionsverwaltung wie ClearCase geht das alles viel besser, 
aber ist halt auch etwas aufwändiger.
Gast #3142394
Lesenswert?

Kopfschüttel...

Bronco schrieb:
> 1.
> 2.
> 3.
Das ist echt ein Haufen Handarbeit und genau dafür lassen sich (ohne 
Wertung) svn, git und mercurial super einsetzen. Einmal ein passendes 
Tutorial durchgeackert und man braucht kein manuelles Kopieren und 
hochzählen. Ist viel zu umständlich...

Duke
Gast #3142464
Lesenswert?

Duke Scarring schrieb:
> Das ist echt ein Haufen Handarbeit und genau dafür lassen sich (ohne
> Wertung) svn, git und mercurial super einsetzen. Einmal ein passendes
> Tutorial durchgeackert und man braucht kein manuelles Kopieren und
> hochzählen. Ist viel zu umständlich...

Keine Frage!
Wahrscheinlich muß jeder für sich selbst die Erfahrung machen, wie toll 
ein Versionierungssystem ist, wenn man's mal verstanden hat.
Allerdings ist meiner Meinung nach alles besser als Chaos... ;)

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