Hi, wie Programmiert Ihr Euere (Hobby-)Projekte ? Wie machen es die Profis ? Nutzt Ihr Routinen von Anderen oder entwickelt Ihr alles selbst ? Wie ist Euere Erfahrung bzgl. Resourcenbedarf (Programmgröße, Laufzeit etc.) beim Einsatz von "fremden" Code-Teilen? Ein Beispiel ist m.E. printf(). Das kann mehr als ich jeh brauchen werde. Nutzt Ihr solche Routinen (mit allen Nachteilen, wie Codegröße, RAM-Verbrauch etc.) bei Eueren Projekten? Was ist mit LCD-Libraries, TCP-Stacks etc dies es hier gibt ? Das würde mich sehr interessieren, wie Ihr damit umgeht .... Gruß Andreas
Im Normalfall schreibe ich das meiste selbst: Dann verstehe ich den Code, und kann ausschließen, dass der Fehler von jemand anderem verursacht wurde. Und ich habe keine Probleme mit den Lizenzen. Allerdings gibt es durchaus einiges an sehr guten Code wie z.B. das Dateisystem von ELM Chan, oder so manch eine Routine von Peter Danegger. Besser bekommen es die meisten nicht hin, und vor allem nicht in kurzer Zeit.
Ich nehme printf(), wenn es Sinn hat, weil ich damit z. B. einfach eine kürzere Entwicklungszeit erreichen kann. Atmel hat mir bislang noch nicht angeboten, für nicht genutzten Flash Geld zurück zu zahlen. ;-)
"Wenn man sich auf andere verlässt ist man verlassen." Beitrag "Re: Breitband-NF-Phasenschieber, DSP mit AVR"
Beispiel printf: wenns mehr kann als Du brauchst - wieso nimmst Du dann nicht das "zuviel" raus und behältst denn Rest? Ist dann sicher nicht größer und mindestens so robust wie selbtsgeschriebenes.
Hi, ich habe in einem Projekt nun auch fremden Code benutzt. Der Code ist jeweils für einen bestimmten Fall geschrieben, der (ist meine Beobachtung) nicht 100%ig passt. Dies führt entweder dazu, dass ich größeren/langsameren Code bekommen oder dass die Änderungen soviel Zeit benötigen, dass ich es (vielleicht) gleich hätte schreiben können. Daher frage ich mich wie ihr das macht. Das Rad jedesmal neu zu erfinden ist sicherlich nicht sinnvoll... Ein größeres Beispiel: Wenn ich jetzt einen Web-Server bauen wollte, würde ich wahrscheinlich monate benötigen bis ich TCP/IP und die Implementierung verstanden hätte - Allerdings bin ich mir nicht sicher, ob ich irgendwelche fremde Stacks zum laufen bekommen würde ..... Nochmal: Wie geht Ihr damit um ? Gruß Andreas
Also müsste ich was mit TCP/IP machen würde ich es selbst machen. Nicht weil es andere schlechter machen (wohl eher das Gegenteil), aber am Ende bin ich dann stolz, dass ich alles selber gemacht habe und ich habe dann wirklich Ahnung von der Materie. Wer nicht so viel Zeit da reinstecken will kann natürlich fremden Code nehmen, jedoch wirds bei Firmen dann kritisch mit den Lizenzen wenn z.B. ein Codeteil und GPL steht und die Firma den Code z.B. nicht veröffentlichen will. Bis jetzt habe ich immer alles selbst programmiert. Dabei habe ich das meiste gleich so gemacht, dass ich es ohne großen Aufwand in ein anderes Projekt integrieren kann. Z.B. ne Debug-Schnittstelle etc.
Ausser der C-Standardbibliothek nutze ich recht selten fremden Code. Und wenn, dann nur in Fällen, wo selber-schreiben ausserhalb der Möglichkeiten bzw. des Sinnvollen liegt und es sich um qualitativ sehr guten Code handelt. Ein paar dutzend Zeilen Copy-und-Pasten lohnt sich meistens nicht, auch wenn es manchmal schneller ginge.
Andreas, Fuer Peripherieschaltungen aller Art baue ich mir immer gepruefte Bibliotheken die ich dann bei Bedarf immer wieder verwende. Spart eine Unmenge Zeit und man kann sich darauf verlassen dass es funktioniert. Wenn man guten Beispielscode findet, dann befasse ich damit bis ich den Code richtig verstehe und passe ihn dann auf meinen Bedarf an. (AVR,PIC, ARM7) Hersteller haben oft gute Application Notes und Beispielcode als Anfangspunkt. Auch habe ich mir komplette Application Templates geschaffen. Wenn zum Beispiel ein RS232 command interpreter notwendig ist, habe ich das fix und fertig als Anfangspunkt. In diesem Template habe ich auch schon Support fuer EEPROM, TIMERS, UARTs, buffered RS232 Senden, ADC, etc Damit kann man neue Anwendungen oft in ganz kuerzer Zeit auf die Beine stellen Bis jetzt habe ich Standard AVR/PIC Peripheriebibliotheken fuer: LCDs (HD44780, SD1530, KS0108) DS1302, DS1307, DS1306 24CXXXX EEPROMs DAC LTC1257, LTC1669, LTC2408 AD5262 TMP101, LM75, LM71, DS1820 PCF8574A, PCA9698, PCA9554, MAX7301,MAX6957 74HC164, 74HC595, 75HC589 LMX2316, ADF4106 PCF8577, MAX7219 MS5534A SHT75 CMP03, VECTOR 2X Gruss, Gerhard "If you must steal, then steal only from the best"; -) - Unbekannter Herkunft
Also das hängt von der Architektur ab: Unter Linux benutz ich selbstverständlich die C-Bibliotheken, wär ja auch blöde, wenn ich alles nochmal neu erfinden würde. Speicherplatz würde das denn auch nicht sparen, da besagte Bibliotheken zumeist sowieso schon geladen sind, weil fast alle anderen Programmierer genauso denken^^ Aufm AVR erübrigt sich das Problem, weil ich fast ausschließlich Assembler programmiere. Was ich bisher an fertigem C-Code benutzt hab, ging ausnahmslos immer in die Hose.
Hallo gerade im beruflichen Bereich, versuche ich möglichst den Code slbst zu schreiben. Aber nicht weil meiner dann besser ist, sondern da es je nach vorliegendem Code sehr viel Zeit in Anspruch nimmt diesen zu verstehen bzw. ich ja auch zukünftig eine Verantwortung bzw. die Wartung des Gesamtproduktes habe. Sollte z.B. ein Fremdcode einen Fehler im Feld hervorrufen, so wird die Aussage :"Das hab ich aber nicht gemacht" nicht akzeptiert vielmehr wird dann verlangt, den Fehler sehr schnell zu beheben. Ich verspreche mir halt von meiner Vorgehensweise dann doch eine schnellere Fehlersuche und eine bessere Modifiktion auf neue Gegebenheiten. Das Obige soll aber nicht heißen, das ich völlig gegen die Verwendung von fremden Code bin. Dennoch sollte jeder für sich abschätzen, wann und wie man eigenen bzw. fremden Code einsetzt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.