Forum: Mikrocontroller und Digitale Elektronik Quelle für "gestestete Standard Libs" für TWI etc.


von Tom (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Tom schrieb:
> 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

Fleury ist umgezogen:
http://www.peterfleury.epizy.com/avr-software.html?i=1
Ich benutze die LCD und I²C Lib sehr gerne.
twimaster.c für die Hardware TWI und i2cmaster.S für AVRs ohne TWI 
Hardware.

von Tom (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von alles fuer nen appl und ein ei (Gast)


Lesenswert?

Tom schrieb:
> Wo finde ich getestete  relativ professionell  oft benutzte  libs für
> Funktionen, die sicherlich jeder von euch immer wieder braucht?

Du hast den Zweck von Test resp. Verifikation nicht verstanden. Du 
kommst nicht umhin die Bibliothek resp. die Einbindung derselben durch 
Dich selbst zu testen, egal wie die Lib als 'getestet von dritten' 
angepriesen wird.

Du kannst aber nach libs suchen, die für den Test vorbereitet sind resp. 
eine gescheite Implentierungs-test Umgebung mitbringen. Mach Dich mal 
zum Thema DFT -> 'Design for Testability' schlau.

https://www.elektronikpraxis.vogel.de/die-wichtigsten-design-for-test-regeln-fuer-elektronische-baugruppen-a-95416/

https://medium.com/@proteusinvents/development-of-firmware-test-processes-4726d88307b0

'Testautomatisierung' solltest du dir auch anschauen:
https://www.embedded-testing.de/files/embeddedtesting/site/vortraege2019/tag2/Di1.3-Nikles.pdf

von Stefan F. (Gast)


Lesenswert?

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.

von Johannes S. (Gast)


Lesenswert?

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.

von Uwe G. (scd)


Lesenswert?

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.

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

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

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.