Forum: Compiler & IDEs Erweiterung/Änderung des ASF - elegante Lösung gesucht


von Adam P. (adamap)


Lesenswert?

hallo zusammen,

da das ASF z.b. im sd_mmc & hsmci Modul nicht den vollen Funktionsumfang 
bietet, suche ich einen eleganten Weg dies nachzuimplementieren.

Info:
ASF Ver. 3.30.1
MCU: SAM4E

Speziell:
- Der SD Karten Befehl CMD10 (get CID) fehlt im ASF, durch das Ändern 
der Dateien sd_mmc.h/.c habe ich diesen nachimplementiert.

- Das HSMCI Modul arbeitet zwar mit dem PDC, jedoch bietet es keine 
Möglichkeit dieses im Interruptbetrieb zu nutzen.
Hierfür habe ich die hsmci.c angepasst.

Problem:
Bei einem ASF Update, würde mir das Atmel Studio diese Dateien 
überschreiben.

Wie geht man bei sowas am besten vor?
Ich dachte mir schon - eigene hsmci_ex.c Datei anlegen, in die die 
originale hsmci.c includen und dann erweiterte zusätzliche Fkt. 
implementieren...?!
Dabei muss jedoch die originale .c Datei aus dem Kompilevorgang entfernt 
werden.

Vllt. habt ihr eine Idee, oder wisst wie Atmel sich das gedacht hat.

Gruß
Adam

von Jay (Gast)


Lesenswert?

Entweder:

Eigene Version, am besten mit eigenen Funktionsnamen, separat speichern 
und warten.

Oder:

Mit einem Tool wie diff einen Patch zwischen original ASF-Code und 
eigenem Code erzeugen (gern über eine Versionsverwaltung mit Branches, 
diffs, etc.). Bei neuer ASF-Version tief Luft holen, drei Kreuze machen 
und den Patch auf die neue Version anwenden. Je nach Änderungen in der 
neuen Version ist das Ergebnis irgendwas zwischen wunderbar und 
katastrophal.

Dritte Version:

Outsourcen, also den Job einem Werkstudenten oder Hiwi überlassen, der 
das bei einer neuen Version irgendwie zurechtzubasteln hat.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jay schrieb:
> Mit einem Tool wie diff einen Patch zwischen original ASF-Code und
> eigenem Code erzeugen (gern über eine Versionsverwaltung mit Branches,
> diffs, etc.).

Schon zu CVS-Zeiten ließ sich sowas auch über vendor branches
halbwegs automatisieren, sollte auch mit aktuellen VCSen genauso
gehen.  Aktualisierungen gehen dann zuerst auf den Branch, von da
in die eigenen Quellen.  Das VCS kümmert sich darum, die eigenen
Ergänzungen beizubehalten.

von Adam P. (adamap)


Lesenswert?

Ah... an die Lösung hab ich noch gar net gedacht.
Also sollte es z.B. mit "VisualSVN" und "TortoiseSVN" funktionieren?

Werd ich mir mal durch den Kopf gehen lassen.

Kann man solche Erweiterungen nicht auch an Atmel übermitteln?
Muss ja nicht sein, dass andere das Rad neu erfinden müssen, wenn sie 
vor dem gleichen Problem stehen - ASF unvollständig in der 
Funtionalität.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Adam P. schrieb:

> Also sollte es z.B. mit "VisualSVN" und "TortoiseSVN" funktionieren?

Vermutlich, aber so richtig kenne ich mich mit diesen Frontends nicht
aus.  SVN selbst kann es.

> Kann man solche Erweiterungen nicht auch an Atmel übermitteln?

Kannst du ja versuchen, da ein Ticket zu öffnen.

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.