Hallo liebe Forum Gemeinde,
ich bin vor 2 Monate von Arduino auf "direktes AVR" programmieren
umgestiegen - daher ggf. ist meine Frage für euch offensichtlich:
Wo finde ich getestete relativ professionell oft benutzte libs für
Funktionen, die sicherlich jeder von euch immer wieder braucht?
Also zum Beispiel für HD44780, TWI, die vielen Kleinsensoren etc.
Hintergrund:
Ich komme aus der Linux-Welt, wo man sehr oft sehr gute "standard libs"
bekommt und sich auf den "Kern" des Programms fokussieren kann.
Bei Arduino IDE war das ähnlich - mit Wire.h "läuft" einfach TWI ohne
Probleme, mit Lcd lib ein LCE etc.
Z.B. habe ich hier ein I2C LCD Beispiel gefunden:
Beitrag "I2CLCD Library für HD44780 LCDs"
Dies baut auf einem Code i2cmaster.h von * Author: Peter Fleury
<pfleury@gmx.ch> http://jump.to/fleury auf - die Seite gibt es nicht
mehr
Daher:
Gibt es nicht für die AVR (ATMEGA) Community irgendwo einen "Hafen" für
lib im Sinne einer open-source community mit ranking von "gutem" und
"alpha-status" code?
Vielen Dank!
Tom
Hallo Danke für die Antwort:
Die Lib war nur als Beispiel genannt - die Frage war allg. gemeint.
Die Atmel chips werde ja auch im professionellen Bereich benutzt - es
ist für mich schwer vorstellbar, dass hier immer "vom weißen Papier" neu
entwickelt wird bzw. auf nicht durch die Community gecheckten Code
aufgesetzt wird.
Tom schrieb:> es ist für mich schwer vorstellbar, dass hier immer> "vom weißen Papier" neu entwickelt wird bzw. auf nicht> durch die Community gecheckten Code aufgesetzt wird.
Es gibt nur diese beiden Möglichkeiten:
a) Du entwickelst deinen Code selber neu
b) Du verwendest Open Source Code
Deine Annahme, dass b) nicht durch die Community gecheckt sei, ist
allerdings in vielen Fällen sicher nicht zutreffend. Die meisten
Open-Source Entwickler veröffentlichen ihren Kram nämlich genau
deswegen. Sie haben Interesse an Feedback und Verbesserungen, was man
anhand der Release Notes und ggf. Historie im Source Repository
nachvollziehen kann.
Es gibt von Atmel eine Blibliothk namens ASF, ich weiß allerdings nicht,
in welchem Zustand sie ist. Bei ST heisst das Pendant dazu Cube HAL. So
etwas gibt es aber nicht für alle Mikrocontroller Serien.
Eine allgemeine Bibliothek die auf alle Mikrocontroller passt, kann es
nicht geben. Arduino ist ein Versuch in diese Richtung, allerdings mit
vielen Nachteilen behaftet.
Ich habe Möglichkeit c vergessen:
c) Du verwendest closed-source Bibliotheken
Diese sind in der Regel nicht kostenlos und eben nicht durch die
Community getestet. Da musst du dem Anbieter vertrauen, dass er sich
ausreichend darum kümmert und ggf. Support leistet.
Angebot und Nachfrage regeln das doch automatisch. Du bekommst Libs mit
Support, die kosten dann aber Geld. Das möchten viele für das Hobby
nicht ausgeben, da bedient man sich lieber bei Open Source Code (und
Werkzeugen).
Hier ist die Qualität nun mal sehr unterschiedlich, jeder darf seinen
Kram anbieten. Da ging bisher viel über Foren und hörensagen, jetzt
finde ich das mit github und co. weseentlich besser organisiert als die
z.B. hier im Forum hingeworfenen Brocken. Natürlich gibt es auf github
auch viel Müll, aber mit dem Bewertungssystem und den Labels hat man
schon mehr Möglichkeit etwas vorab zu filtern. Und es ist eben Quellcode
den man selber ansehen kann.
AVR benutze ich sogut wie gar nicht mehr, Cortex-M sind besserer Ersatz
mit viel grösserer Bandbreite im Angebot. Und da bin ich Fan von
Mbed-os, das wird professionel von ARM entwickelt und kostenlos zur
Verfügung gestellt. Incl. RTOS und USB, Ethernet, SD Support was auch
mal viel Geld gekostet hat. Bzw. noch viel Geld kostet, man kann ja
immer noch Keil oder Segger oder IAR Compiler und Middleware kaufen.
ARM als Lizenzgeber kann das darüber finanzieren, bei anderen muss man
immer fragen wie sich das tragen soll. Wenn eine Lib gut ist, dann
kommen viele User und die wollen auch Support haben und haben Wünsche.
die Wire Lib ist ein gutes Beispiel, die User wurden so unverschämt das
der Entwickler die Brocken hingeworfen und den Support eingestellt hat.
Tom schrieb:> Bei Arduino IDE war das ähnlich - mit Wire.h "läuft" einfach TWI ohne> Probleme, mit Lcd lib ein LCE etc.
Es ist durchaus möglich, sich die Arduino-Bibliotheken auf plain C
umzuschreiben. Sicher wird das z.B. bei der universellen Adafruit
Grafik-Lib etwas schwieriger sein, aber sowas wie Text-LCD, Sensoren,
I2C, SPI u.ä. dürfte für jemand mit Deinem Kenntnisstand (Arduino,
Linux) machbar sein.
Johannes S. schrieb:> Und da bin ich Fan von> Mbed-os, das wird professionel von ARM entwickelt und kostenlos zur> Verfügung gestellt. Incl. RTOS und USB, Ethernet, SD Support was auch> mal viel Geld gekostet hat. Bzw. noch viel Geld kostet, man kann ja> immer noch Keil oder Segger oder IAR Compiler und Middleware kaufen.
Bei SEGGER kann man fast alles unter der "SEGGER’s Friendly License"
benutzen, was im Prinzip nichts anderes heißt als das man es für nicht
kommerzielle Projekte kostenlos einsetzen darf.
Das gilt z.B. für die IDE/Compiler, RTOS, Middleware, usw.
Es gibt also heutzutage für Hobbyisten eine Menge "Standard Libs" und
Tools (egal ob von Kei/ARM, SEGGER oder jemand anderen).
https://www.segger.com/purchase/licensing/license-sfl/
Hilft jetzt leider nicht bei AVR aber für Cortex-M ist ES Pro ganz
interessant:
https://www.segger.com/products/development-tools/embedded-studio/editions/pro-cortex-m/
*
*kann Spuren von Werbung enthalten, zu Risiken und Nebenwirkungen lesen
Sie die Manuals und fragen Sie Ihren Kollegen oder Chef