Forum: Mikrocontroller und Digitale Elektronik Weg von Arduino - Beratung


von Ghostrider1911 (Gast)


Lesenswert?

Hallo Miteinander,

ich habe in Bascom angefangen zu programmieren und bin dann auf Arduino 
umgestiegen.

Genutzt habe ich dort Atmega 8  328  2560

programmiert entweder über den Bootloader ( Arduino) oder über 
mysmartusb light (stk500)

Nun möchte ich gerne auf eine anständige Entwicklungsumgebung umsteigen.
Vorallem wegen den Debugging Möglichkeiten.

Natürlich denke ich deshalb darüber nach gleich auf Controller 
umzusteigen die mehr Potential haben.

Da ich mich selbst jedoch als Einsteiger sehe, will ich mir den Umstieg 
möglichst leicht machen.

Folgende Möglichkeiten habe ich für mich gefunden:

Samd21 Controller in Verbindung mit Atmel Studio 7
- Atmel Studio ist kostenlos und weit verbreitet, gefällt mir relativ 
gut.

Funktioniert der Clone J-Link V8 einwandfrei in Verbindung mit Atmel 
Studio?

STM32 Controller in Verbindung mit der STM32Cube IDE
- Diese IDE finde ich ein wenig unübersichtlicher, jedoch sind die 
Controller richtig günstig zu kriegen.


Was würdet ihr einem Anfänger, Umsteiger der weg von der Arduino IDE 
will raten?

Anforderungen die ich an einen Controller habe:
- Integrierte RTC
- Viel Flash für grafik Displays
- 3,3V

von Chris K. (Gast)


Lesenswert?

Nimm STM Nucleo Boards,

gibts in allen möglichen Größenordnungen. Haben einen Debugger mit 
dabei. Läuft mit diversen IDEs und sind aktuelle Controller.

von Sebastian (Gast)


Lesenswert?

Zuerst einmal: Beide Controller sind um einiges komplexer als ein 
Atmega. Das Echtzeitverhalten ist weniger vorhersagbar, man muß sich im 
Zweifel mit DMA und ähnlichen Mechanismen auseinandersetzen, die der AVR 
einfach nicht hat.
Die integrierte Peripherie ist deutlich komplexer. Oft werden 
Bibliotheken eingesetzt, um diese zu bedienen (Stichwort HAL), aber man 
kann auch jedes Register per Hand setzen, wenn man sich durch die sehr 
umfangreichen Datenblätter wühlt. Der Aufwand zur Einarbeitung ist 
erheblich.

Ich denke, STM32 ist weiter verbreitet und hat die größere 
Entwicklergemeinde gegenüber SAMD21, komplex sind beide. STM32Cube ist 
eigentlich nur ein Konfigurationstool; es erstellt ein Grundgerüst, um 
dann z.B. mit "System Workbench for STM32" (basiert auf Eclipse) darauf 
ein eigenes Projekt aufzubauen.

von Löti (Gast)


Lesenswert?

PlatformIO

von Einer K. (Gast)


Lesenswert?

> - Viel Flash für grafik Displays
kendryte k210 ?

von dudu (Gast)


Lesenswert?

Atmega 8  328  2560 und mysmartusb light (stk500)... und Atmel Studio 
sollte doch auch zusammenarbeiten oder ist das doch nicht STK500 
kompatibel?
Für erste Debuggversuche wahrscheinlich nicht schädlich wenn du den µC 
schon kennst.

von Ghostrider1911 (Gast)


Lesenswert?

Danke für die flotten Antworten!
STM32 werde ich mir dann auf jedenfall mal anschauen.

Die Nucleo Boards sind tatsächlich ziemlich interessant! Und preislich 
sogar so günstig das man nicht gleich zu billiger China Hardware greifen 
muss.

Gibt es unter den Nucleo Boards eine spezielle Empfehlung oder ist das 
relativ egal mit welchem man sich beschäftigt? Die Auswahl ist ja recht 
groß und unübersichtlich.

Ist es nicht so das STM32CubeIDE die IDE ist und STM32CubeMX das Tool 
zum Projekt erstellen? Kurz angeschaut hatte ich mir das schonmal.

Das die ARM Controller generell ein gutes Stück komplexer sind gegenüber 
den AVR habe ich nach kurzer Recherche leider bereits feststellen 
müssen.

Aber es hilft ja nichts, und mein Gedanke ist: Wenn ich mich schon in 
die "richtige" Programmierung mit Registern usw. einarbeiten will, dann 
doch gleich in eine Prozessorgeneration die etwas aktueller und 
leistungsstärker ist als die AVR.

PlatformIO hatte ich mir bereits mal angeschaut, also Arduion IDE, hat 
mir jedoch überhaupt nicht zugesagt.

Der Kendryte Chip scheint mir für meine Anwendungszwecke und meine 
Fähigkeiten doch etwas arg übertrieben zu sein. ( Nur kurz gegoogelt, 
habe ich vorher noch nie gehört)

Das man sämtliche AVR´s auch in Atmel Studio nutzen kann ist mir 
durchaus bewusst, aber dann bin ich von den "Möglichkeiten" nicht 
unbedingt weiter als zuvor.

von Stefan F. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Was würdet ihr einem Anfänger, Umsteiger der weg von der Arduino IDE
> will raten?

Für AVR Projekte mit Makefile (Vorlage: 
http://stefanfrings.de/avr_hello_world/index.html) in Kombination mit 
den dort genannten Tools: http://stefanfrings.de/avr_tools/index.html

Momentan gefällt mit Qt Creator als IDE am besten.

Für STM nutze ich inzwischen auch die die STM32 Cube IDE. Ja, die ist 
(wie alle auf Eclipse basierenden IDE) etwas sperrig, dafür aber 
kostenlos. Für drei STM32 Serien habe ich Informationen zusammen 
getragen: http://stefanfrings.de/stm32/index.html

von Hans (Gast)


Lesenswert?

Eclipse (CubeIde) ist ziemlich mächtig. Daher verstehe ich auch, dass es 
unübersichtlich wirkt.

Das schöne ist aber, dass du 50% der kleinen Fenster schließen kannst 
weil sie eher in Ausnahmefällen interessant sind.

Wenn du Hauptsächlich wegen Debugging wechseln willst, hol dir einen 
jlink Edu. Der kostet nicht die Welt und ist noch komfortabler und 
schneller als der in den nucleo-boards integrierte stlink.

Außerdem empfehle ich dann möglichst "kleine" uCs zu verwenden da man 
bei denen z.B den clock-tree einfacher durchschaut.

73

von wendelsberg (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> dann bin ich von den "Möglichkeiten" nicht
> unbedingt weiter als zuvor.

Doch. Ganz sicher.
Die Arduino Bibliotheken beschraenken Vieles.


wendelsberg

von Sebastian S. (amateur)


Lesenswert?

Wenn Du Dich wirklich mit dem Arduino beschäftigt hast, solltest Du 
wissen:
"Was jetzt kommt hängt davon ab was Du BRAUCHST".

Auch wenn Dein Nachfolger mehr Leistung, mehr Peripherie oder mehr 
Speicher bedienen soll, bleibt im Grunde genommen vieles gleich.
Einzige Ausnahme: Du nimmst einen µC mit Betriebssystem (z.B. eine 
Himbeere). Da hast Du dann aber gleich das Problem, dass Du nur noch 
unter Schwierigkeiten an die Pins heran kommst und es auch oft mit der 
Echtzeit nicht weit her ist.

von Frodo (Gast)


Lesenswert?

wendelsberg schrieb:
> Doch. Ganz sicher.
> Die Arduino Bibliotheken beschraenken Vieles.

Man muß sie ja nicht benutzen.
Was hindert einen daran, in C++ zu programmieren?

von Cyblord -. (cyblord)


Lesenswert?

Frodo schrieb:
> wendelsberg schrieb:
>> Doch. Ganz sicher.
>> Die Arduino Bibliotheken beschraenken Vieles.
>
> Man muß sie ja nicht benutzen.
> Was hindert einen daran, in C++ zu programmieren?

Nichts. Aber dann ist es kein Arduino mehr.

von wendelsberg (Gast)


Lesenswert?

Frodo schrieb:
> Was hindert einen daran, in C++ zu programmieren?

Oder direkt in C. Nichts.
Allerdings scheint der TO der Auffassung zu sein, dass
Ghostrider1911 schrieb:
> dann bin ich von den "Möglichkeiten" nicht
> unbedingt weiter als zuvor.

Beitrag "Re: Weg von Arduino - Beratung"

Warum auch immer.

wendelsberg

von Frodo (Gast)


Lesenswert?

Cyblord -. schrieb:
> Nichts. Aber dann ist es kein Arduino mehr.

Was verändert sich an einem Arduino-Board, wenn man es in C++ 
programmiert?
Wieso ist es dann kein Arduino mehr?

von Stefan F. (Gast)


Lesenswert?

Frodo schrieb:
> Was verändert sich an einem Arduino-Board, wenn man es in C++
> programmiert? Wieso ist es dann kein Arduino mehr?

Ich denke, dass die allermeisten hier schon zwischen Hardware und 
Software differenzieren können. Wenn hier jemand von Arduino (ohne den 
Zusatz "Modul", "Board", "Shield" oder "IDE") schreibt, kannst du davon 
ausgehen, dass er das Software-Framework meint.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> kannst du davon
> ausgehen, dass er das Software-Framework meint.
Selbst darauf kann man vollständig verzichten, und dennoch IDE und Board 
beibehalten.
Wahlweise in C, C++ oder Assembler programmieren.

von Frodo (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Stefan ⛄ F. schrieb:
>> kannst du davon
>> ausgehen, dass er das Software-Framework meint.
> Selbst darauf kann man vollständig verzichten, und dennoch IDE und Board
> beibehalten.
> Wahlweise in C, C++ oder Assembler programmieren.

Genau das Gleiche meinte ich ja auch.

von Cyblord -. (cyblord)


Lesenswert?

Frodo schrieb:
> Cyblord -. schrieb:
>> Nichts. Aber dann ist es kein Arduino mehr.
>
> Was verändert sich an einem Arduino-Board, wenn man es in C++
> programmiert?
> Wieso ist es dann kein Arduino mehr?

Weil "Arduino" das Gesamtpaket aus Hardware, Framework und IDE ist. Alle 
drei Komponenten sind aufeinander abgestimmt.
Lässt man einfach Teile weg, verliert es die wesentlichen Eigenschaften. 
"Arduino" ist also weder die HW, noch die SW sondern eben beides 
zusammen.

von Franz (Gast)


Lesenswert?

Übrigens: Theoretisch kann man in AVR-Studio auch ein Arduino-Scetch 
importieren und dann durch das Framework debuggen wenn man z.B. einen 
Atmel ICE anschließt.

von Frodo (Gast)


Lesenswert?

Cyblord -. schrieb:
> Lässt man einfach Teile weg, verliert es die wesentlichen Eigenschaften.

Also du kannst es nicht beantworten, was sich am Board ändert.

Arduino Fanboy hat es genau beschrieben. Man kann ein Arduino-Board in 
einer nahezu beliebigen Sprache und mit beliebiger IDE programmieren, es 
bleibt trotzdem Ein Arduino-Board. Zum Board gehört NICHT zwingend die 
Arduino-IDE!

von Cyblord -. (cyblord)


Lesenswert?

Frodo schrieb:
> Cyblord -. schrieb:
>> Lässt man einfach Teile weg, verliert es die wesentlichen Eigenschaften.
>
> Also du kannst es nicht beantworten, was sich am Board ändert.

Habe ich beantwortet. Ich habe allerdings auch nie behauptet dass sich 
etwas am Board ändert. Lies meine Behauptung einfach noch mal.

von Einer K. (Gast)


Lesenswert?

Franz schrieb:
> Übrigens: Theoretisch kann man in AVR-Studio auch ein
> Arduino-Scetch
> importieren und dann durch das Framework debuggen wenn man z.B. einen
> Atmel ICE anschließt.

Durchaus!
Wenn man sich auf Atmel Chips fixiert.

Cyblord -. schrieb:
> Weil "Arduino" das Gesamtpaket aus Hardware, Framework und IDE ist. Alle
> drei Komponenten sind aufeinander abgestimmt.
> Lässt man einfach Teile weg, verliert es die wesentlichen Eigenschaften.
> "Arduino" ist also weder die HW, noch die SW sondern eben beides
> zusammen.
Eigentlich hat deine Bemerkung nur einen positiven Aspekt:
--> Die Definitionshoheit liegt nicht in deinen Händen. <--

von Cyblord -. (cyblord)


Lesenswert?

Arduino Fanboy D. schrieb:

> Eigentlich hat deine Bemerkung nur einen positiven Aspekt:
> --> Die Definitionshoheit liegt nicht in deinen Händen. <--

Mag sein. Jede andere Definition wäre allerdings Schwachsinn.

Wer nicht zwischen Arduino-Board (=Arduino HW) und dem "Arduino" als 
System unterscheiden kann, der kann das natürlich nicht verstehen.

Und die Popularität verdankt Arduino ausschließlich diesem Gesamtsystem. 
Nur HW würde keinem Anfänger was bringen. Nur die SW würde auch nichts 
bringen, weil die HW unbekannt wäre, und das automatische Mapping der 
Pins nicht gehen würde. Der Trick liegt also im Gesamtsystem.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Nun möchte ich gerne auf eine anständige Entwicklungsumgebung umsteigen.
> Vorallem wegen den Debugging Möglichkeiten.

Ghostrider1911 schrieb:
> - Viel Flash für grafik Displays

Deine Überschrift "weg von Arduino" suggeriert, daß du weg willst vom 
Basteln mit vorgefertigten Shields und Bibliotheken, kurz gesagt "weg 
von den Bauklötzchen".

Aber warum fragst du als allererstes nach einer 'anständigen' 
Entwicklungsumgebung? .. und nach 'vor allem..debugging'? Du willst also 
doch nicht weg von all dem, was Arduino so ausmacht.

Wenn es für dich nur ein Wechsel der IDE ist, dann lade dir alles was in 
Frage kommt herunter und probiere es aus. Das ist besser als hier 
nachzufragen, was andere dazu meinen.

Die eigentlichen Fragen an dich wären: Was hast du denn bsher so 
entwickelt und was willst du künftig entwickeln? Ratschläge zu geben, 
ohne zu wissen, was der Ratsuchende denn EIGENTLICH beabsichtigt, ist 
albern und frustreich.

Und deine Bemerkung "viel Flash für Grafik.." zeigt mir, daß es auch da 
bei dir Lernbedarf gibt. Für Grafik braucht man zu allererst ausreichend 
RAM.

Also schreib mal was über deine bisherigen und künftigen Projektideen. 
Dann sieht man weiter.

W.S.

von Einer K. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Und die Popularität verdankt Arduino ausschließlich diesem Gesamtsystem.
> ...
> Der Trick liegt also im Gesamtsystem.

Klar, mag ein Anfänger mit dem Gesamtsystem starten...
Ist auch richtig und gut so.

Aber ein paar Projekte später.....
Der Trick ist, dass man sich ganz nach belieben aussuchen kann, wie und 
was man davon verwendet.
Existiert frischer Bedarf, z.B. an Copmiler, Libs oder 
(exotischen)Boards, wirds dran geklebt.
Oder auch die IDE entfernt, und der Rest weiterverwendet.

Dein Versuch das anzunageln, ist unzureichend/unangemessen.


Und ja, der fehlende Debugger ist ein Manko.
Aber auch dieses wird in den nächsten Versionen irgendwann gegessen 
sein.

von Cyblord -. (cyblord)


Lesenswert?

Arduino Fanboy D. schrieb:

> Der Trick ist, dass man sich ganz nach belieben aussuchen kann, wie und
> was man davon verwendet.

Ist ja auch ok. Ich sage nur, dass diese Einzelteile dann den Begriff 
"Arduino" (im Sinne des Gesamtsystems) nicht mehr verdienen.
Davon unbeschadet kann man natürlich ein "Arduino-Board" verwenden 
welches auch genau das bleibt.

von Gerhard O. (gerhard_)


Lesenswert?

Obwohl es verständlich ist, daß man sich auf die obengenannten uC 
fokussiert finde ich es irgendwie schade, dam man oft nicht weit über 
den Zaun schaut.

Vor Jahren verbrachte ich einige Zeit mit der Zilog Encore! Familie. Ich 
war positiv überrascht von den Ergebnissen. Ich baute mir einen 
Entwicklungsbord für den 64K Flash Typ. Der uC hat einen Songle wire 
debugger. Die komplette IDE und Compiler, Debugger waren frei. Der uC 
war eine Freude damit zu arbeiten. Und trotzdem kümmert sich scheinbar 
kein Schwein darum.

Die ganze Entwicklungsumgebung funktionierte super, der Debugger war 
responsiv und die Dokus super. Dass ich trotzdem von Zilog abgekehrt bin 
hat andere externe Gründe. Irgendwie ist das schade.

Naja, was solls...

Mit dem STM32 kann man ja auch viel machen und das JTAG Debugging ist 
wirklich angenehm. Im Prinzip läßt sich mit allen uC viel machen sobald 
den Feind kennt.

Ich arbeitete früher mit CooCox V1.74-175. Obwohl es da Gerüchte gibt, 
daß es heimtelefonieren soll, tritt das nicht auf wenn man nur den 
Compiler und den IDE installiert. Mit CC ließ sich damals auch sehr gut 
arbeiten und funktuonierte teilweise besser wie Atollic. Ich 
installierte am Dienstag CC V1.75 um ein altes Projekt zu pflegen und 
alles funktionierte auf Anhieb.

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich denke, dass die allermeisten hier schon zwischen Hardware und
> Software differenzieren können. Wenn hier jemand von Arduino (ohne den
> Zusatz "Modul", "Board", "Shield" oder "IDE") schreibt, kannst du davon
> ausgehen, dass er das Software-Framework meint.

Das Argument war doch aber das Debugging. Das hat nichts mit dem Arduino 
Framework zu tun, sondern mehr mit der IDE, i.e. hier geht es primär um 
die Arduino IDE.

von Christian M. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> PlatformIO hatte ich mir bereits mal angeschaut, also Arduion IDE

Eben nicht!

Gruss Chregu

von Ghostrider1911 (Gast)


Lesenswert?

"Ghostrider1911 schrieb:
> PlatformIO hatte ich mir bereits mal angeschaut, also Arduion IDE

Eben nicht!"


-> Das habe ich anders gemeint. Das PlatformIO und Arduino nicht das 
gleiche ist, weiß ich natürlich.

Das hier so eine Diskussion über Arduino aus bricht, und was es 
eigentlich ist hätte ich nicht gedacht ;)

Aber zurück zu meinem eigentlichen Anliegen:

Was ich bereits gemacht habe? Ja eigentlich schon ein paar Sachen, alles 
werde ich jetzt nicht aufzählen, das letzte war eine Lötkolbensteuerung 
für die Weller RT spitze, mit ADS1115, kleinem OLED Display und einen 
Arduino Nano.

Die Librarys die es für den ADS gibt sind alle nutzlos (weil zu langsam 
und sehr schlecht gemacht), deswegen hab ich das ganze gleich selbst 
geschrieben.

Natürlich will ich mich auf einen µC festlegen der weit verbreitet ist, 
schon alleine weil die "einfachen" Probleme meist mit Google gelöst 
werden können.

Ich werde mir die CUBE IDE mal anschauen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Ghostrider1911 schrieb:
> Das hier so eine Diskussion über Arduino aus bricht, und was es
> eigentlich ist hätte ich nicht gedacht ;)

das gehört eben dazu. ;)
Ich bin da sicher kein Maßstab, nur Hobbyprojekte, keinerlei berufliche 
o.ä. Berührungspunkte (Rentner). Bei der ArduinoIDE bin ich gelandet, 
weil ich keine andere IDE kenne, die mir so problemlos die Nutzung 
mehrerer CPU-Familien erlaubt. AVR, ESP8266, ESP32, W600, irgendein STM, 
auch mal ein nRF.
Ein altes AVR-Studio ist noch installiert, ein  ESP8266 SDK und ein 
ESP32 IDF ist auch noch drauf. Das z.B. unter einen gemeinsamen Hut zu 
bringen wäre für mich zuviel Aufwand bei Einarbeitung, Einrichtung und 
Pflege.
Natürlich hat die ArduinoIDE Mankos, Debugger ist für mich da ein 
kleines Problem, ich bin zum Programmieren gekommen, als man von solchen 
Hilfen höchstens träumen konnte.
Dafür kann ich eben in der ArduinoIDE nunt mischen, wenn ich darunter 
liegende Sachen brauche, z.B. alte AVR C-Sachen weiter nutzen will, ist 
da in wenigen Minuten eingebunden und angepasst. Zugriff auf die 
Systemfunktionen bei den ESPs macht man eben, wenn es keine Arduino 
Wrapperfunktion gibt.
Ist doch egal, einbinden und Aufruf sieht am Ende doch auch nicht anders 
aus als in einer anderen IDE.

Arduino ist, wie schon richtig geschreiben wurde, ein Konzept. Keine 
Boards (ein ESP8266 ist kein Arduino, ein China AVR Nano auch nicht, 
selbst wenn dasselbe drauf ist. Breakoutboards sind Löthilfen für ICS, 
die mir zu klein sind, steht eben meist Arduino-Kompatibel dran.

Das alles ändert sich mit einer anderen IDE sowieso nicht. Ob der 
Umstieg für Dich konkret Vorteile bringst, wirst Du entscheiden müssen. 
Wenn Du Dich auf eine Prozessorfamilie einschießt, kann es das sicher. 
Wenn Du nehmen willst, was gerade passt oder nur interessant aussieht, 
gewinnt für mich immer die ArduinoIDE.

Gruß aus Berlin
Michael

von Veit D. (devil-elec)


Lesenswert?

Hallo,

sehe ich ähnlich.

Die Arduino IDE gewinnt bei mir durch ihre Einfachheit. Die bedient man 
blind. Für paar ganz wenige µC nehme ich Atmel Studio, geht auch wenn 
man es gewohnt ist, aber ansonsten immer wieder gern die Arduino IDE. 
Was ich hier noch vermisse und in AS toll finde ist mit Mausklick in den 
µC Header springen zur Implementation. Viel mehr brauche ich nicht zum 
programmieren.

Und wegen debuggen Freunde. Ich weiß nicht was ihr alle so geil am 
Hardware Debugging findet. Das Programm bleibt doch bei jeden Breakpoint 
stehen. Das will ich nicht. Da lasse ich mir lieber Seitenweise Daten 
über die Serielle ausgeben und schau live zu was wann passiert und ziehe 
meine Schlüsse. Serieller Datalogger eben. Ich kann mir immer den 
gesamten Ablauf anschauen und zeitlich nachverfolgen nicht nur punktuell 
paar Bits die dann schon wieder anders und damit verschwunden sind.

von M. K. (sylaina)


Lesenswert?

Ich würde mir einen Wechsel der IDE auch genauestens überlegen. Ich 
benutze auch AVRs, als IDE hab ich aber was Richtung Eclipse am Start. 
Ich hab auch schon öfters mal überlegt mir auch andere Mikrocontroller 
und andere IDEs anzuschaun. Bisher konnte ich aber stets alle meine 
Mikrocontroller-Projekte mit irgendeinem AVR (von Attiny bis Atxmega) 
erschlagen. Und da ich dieses System gut kenne komme ich auch recht 
zügig voran. Switch auf eine andere IDE und/oder anderen Mikrocontroller 
wäre mit extremen Aufwand für mich verbunden und das lohnt sich einfach 
nicht in meinem Fall.
Und das muss man sich IMO immer überlegen: Inwieweit lohnt sich ein 
Wechsel. Deshalb, finde ich, kann man da auch schlecht jemand anderen, 
den man ggf. nicht mal kennt, wirklich einen anderen Tipp geben außer 
"Schaus dir mal an und überlege es dir". Solche Frage haben IMO immer 
was von der Marke "Mag ich Schnitzel oder soll ich besser ein Spiegelei 
braten? Ein Salat ist ja auch ganz lecker."

von Unfassbar (Gast)


Lesenswert?

Veit D. schrieb:
> Und wegen debuggen Freunde. Ich weiß nicht was ihr alle so geil am
> Hardware Debugging findet. Das Programm bleibt doch bei jeden Breakpoint
> stehen. Das will ich nicht. Da lasse ich mir lieber Seitenweise Daten
> über die Serielle ausgeben und schau live zu was wann passiert und ziehe
> meine Schlüsse.

Du bist halt ein Anfänger.

von Chris K. (Gast)


Lesenswert?

Du könntest auch damit Anfangen den Arduino erstmal von seinen Fesseln 
zu befreien. Jeder Arduino hat eigentlich gleich den passenden ISP 
Programmierstecker drauf. Damit kann man schonmal den Bootloader löschen 
und den Chip direkt programmieren. Je nach Typ von Arduino hat man dann 
auch in der Regel Debug Wire oder JTAG zur Verfügung und kann wirklich 
Debuggen.

Die Arduino HW ist ja erstmal okay und erfüllt ihren Zweck, alles was es 
bräuchte wäre also Atmel Studio und ein passender Debugger als ICE oder 
MK3

von Michael U. (amiga)


Lesenswert?

Hallo,

Unfassbar schrieb:
> Veit D. schrieb:
>> Und wegen debuggen Freunde. Ich weiß nicht was ihr alle so geil am
>> Hardware Debugging findet. Das Programm bleibt doch bei jeden Breakpoint
>> stehen. Das will ich nicht. Da lasse ich mir lieber Seitenweise Daten
>> über die Serielle ausgeben und schau live zu was wann passiert und ziehe
>> meine Schlüsse.
>
> Du bist halt ein Anfänger.

mir ist bisher noch kein Debugger begegnet, der die Programmierfehler 
selber beseitigt hat. Dafür habe ich auch bei kommerzieller Software 
öfter den Eindruck, das hilflos probiert wurde, bis der Debugger das 
gewünschte Ergebnis ausgab.

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Du bist halt ein Anfänger.

Ich stimme ihm zu. Ich programmiere beruflich seit 20 jahren.

von Cyblord -. (cyblord)


Lesenswert?

Stefan ⛄ F. schrieb:
> Unfassbar schrieb:
>> Du bist halt ein Anfänger.
>
> Ich stimme ihm zu. Ich programmiere beruflich seit 20 jahren.

Das heißt gar nichts. Man kann auch 20 Jahre frickeln. Ein ordentlicher 
Debugger gehört zum prof. Werkzeug dazu.

von Johannes S. (Gast)


Lesenswert?

es gibt auch noch Mbed. Ist zwar nur für Cortex-M, aber bei der 
Bandbreite die die Abdecken habe ich schon seit vielen Jahren keinen AVR 
mehr vermisst. Das Mbed API ist in den letzten 2-3 Jahren enorm 
gewachsen, RTOS oder BareMetal, USB, Ethernet, einfache Sachen wie GPIO, 
Analog, serial, I2C, SPI usw. gibt es schon lange. Alles als eine 
getestete Einheit die auch mit dem eingebauten RTOS zusammenarbeitet.
Über das mbed-cli lassen sich die Programme auch in der Kommandozeile 
einfach kompilieren, oder in einen Editor wie VSCode integrieren. Mit 
den 'Mbed enabled' Boards wie z.B. nahezu alle STM Nucleos oder Discos 
ist dann auch debuggen sehr einfach, USB Kabel reicht. Da ist 
Mbed-Studio mittlerweile eine 1-Klick Installation incl. ARM Toolchain.
Als Hardware für grössere Projekte haben die STM32F4 im Moment sehr viel 
'Bang for Bucks'. Die Chinaboards im Bluepill Format mit F401/F411 
kosten <5€ , haben reichlich mehr Flash/RAM und noch Platz für ein SPI 
Flash, nur halt relativ wenige Pins rausgeführt. Für 2-3€ mehr gibts die 
F407 in verschiedenen Varianten, 168 MHz, 192 kB RAM, 512 oder 1024 kB 
Flash. Z.T. haben die Boards schon MicroSD Slot drauf, SPI Flash, RTC 
und Steckplatz für TFT Displays. Oder mit fast nix drauf, dafür alle 
Pins rausgeführt. Für diese low cost Boards muss man nur einen ext. 
STLink oder z.B. Bluepill mit BMP als Programmier/Debug Adapter 
anklemmen. Aber auch diese Einrichtung ist kein Hexenwerk mehr und wird 
mit ordentlicher Debugmöglichkeit belohnt.

von Unfassbar (Gast)


Lesenswert?

Veit D. schrieb:
> Da lasse ich mir lieber Seitenweise Daten
> über die Serielle ausgeben und schau live zu was wann passiert und ziehe
> meine Schlüsse. Serieller Datalogger eben. Ich kann mir immer den
> gesamten Ablauf anschauen und zeitlich nachverfolgen nicht nur punktuell
> paar Bits die dann schon wieder anders und damit verschwunden sind.

Stefan ⛄ F. schrieb:
> Ich stimme ihm zu. Ich programmiere beruflich seit 20 jahren.

Michael U. schrieb:
> mir ist bisher noch kein Debugger begegnet, der die Programmierfehler
> selber beseitigt hat. Dafür habe ich auch bei kommerzieller Software
> öfter den Eindruck, das hilflos probiert wurde, bis der Debugger das
> gewünschte Ergebnis ausgab.

Wer ernsthaft meint, sich zum debuggen über eine serielle Schnittstelle 
schöne bunte Texte ausgeben zu lassen, diese extra in die Software 
reinprogrammieren muss und mit Hilfe von hohen 
Interpretationsfähigkeiten sein Programm damit meint besser debuggen zu 
können, als mit einem Hardwaredebugger, der hat sich komplett, aber 
wirklich komplett disqualifiziert und als Frickler geoutet.

Wer eben nicht weiß, wie man wirklich mit einem Hardwaredebugger 
effektiv debuggt, der greift halt zu solchen Mitteln. Und meint dann, 
dass ein Hardwaredebugger eh nur Spielerei ist. Totaler Bullshit. Wenn 
ich Chef wäre und mein Angestellter fängt mit sowas an, dann gibts zwei 
Möglichkeiten: Mach es richtig oder verschwinde.

Auch wenn man seit 20 Jahren so arbeitet wird man deswegen nicht zum 
guten Softwareentwickler.

von TippsUndTricks (Gast)


Lesenswert?

Unfassbar schrieb:
> er ernsthaft meint, sich zum debuggen über eine serielle Schnittstelle
> schöne bunte Texte ausgeben zu lassen

Das was die Leute so unter Arduino schreiben oder eher zusammen copy 
pasten, dafür reicht auch so ein Speilzeugdebugger :)

Das ganze wird später riesen Schaden verursachen, weil die Leute nicht 
wissen werden, wie man etwas richtig debuggen kann. Und dass man sowas 
überhaupt machen kann!

von Unfassbar (Gast)


Lesenswert?

TippsUndTricks schrieb:
> Das was die Leute so unter Arduino schreiben oder eher zusammen copy
> pasten, dafür reicht auch so ein Speilzeugdebugger :)

Nochmal: Texte über die serielle Schnittstelle ist kein Debugger. Das 
wolltest du aber vermutlch auch ausdrücken. So habe ich auch in den 
erste Monaten, als ich damals anfing gearbeitet.

Aber da wusste ich es noch nicht besser. Eine uart zum debuggen führe 
ich grundsätzlich nicht mehr heraus - zumindest nicht für hier genannten 
Anwendungsfall.

von Roland F. (rhf)


Lesenswert?

Hallo,
Unfassbar schrieb:
> Auch wenn man seit 20 Jahren so arbeitet wird man deswegen nicht zum
> guten Softwareentwickler.

Du solltest vielleicht nicht von deinen Bedürfnissen auf die Bedürfnisse 
andere schließen. Es ist ein Unterschied ob ein Hobbyist im Jahr ein, 
zwei "Projekte" bearbeitet (und sich jedes mal wieder in eine 
Arbeitsumgebung eindenken muss), oder ob ein Profi Tag aus, Tag ein 
hochkomplexe, kommerzielle Software schreibt.
Da stellt sich dann natürlich schon die Frage wie viel Aufwand man in 
die Beherrschung einer Entwicklungsumgebung steckt.

rhf

von Unfassbar (Gast)


Lesenswert?

Roland F. schrieb:
> Du solltest vielleicht nicht von deinen Bedürfnissen [...]

Man kann die Menschen aber an die Hand nehmen und den Leuten früh 
klarmachen, dass man so nicht debuggt. Wofür ist so ein Forum da? Möchte 
man nichts lernen? Wozu liest und schreibt man dann hier? Wenn jedoch 
alle auf dem selben Irrweg bestehen, wird dieser Umstand an die 
folgenden Generationen weitergegeben.

Und ich glaube schon, dass einige der zitierten Authoren sich als Profis 
bezeichnen...

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Wenn jedoch alle auf dem selben Irrweg bestehen, wird dieser
> Umstand an die folgenden Generationen weitergegeben.

In der Regel befinden sich gerade die Leute auf dem Irrweg, die meinen, 
es gäbe nur einen richtigen und das ist ihrer.

Ich besitze Debugger und kann damit umgehen. Ich benutze sie täglich. 
Log-Meldungen benutze ich mit großem Abstand am häufigsten, weil sie mir 
am meisten nutzen bringen. Bei anderen Entwicklern und/oder Projekten 
mag das anders sein.

Ich freue mich darüber, dass die SWD Schnittstellen aller (?) ARM 
Controller nach wie vor eine SWO Leitung haben.

Spätestens wenn du als Softwareentwickler Fehler an Anlagen untersuchen 
musst, auf die du keinen Zugriff hast, wirst du über jede Protokolldatei 
froh sein, die du bekommen kannst.

von Unfassbar (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Spätestens wenn du als Softwareentwickler Fehler an Anlagen untersuchen
> musst, auf die du keinen Zugriff hast, wirst du über jede Protokolldatei
> froh sein, die du bekommen kannst.

Unterscheide hier bitte zwischen geplanten Logausgaben komplexerer 
Systeme und "ich programmiere hier mal eine wirre pollende Textausgabe 
über die serielle Schnittstelle, um mir die Variable 'komischerName' 
ununterbrochen ausgeben zu lassen, aus 10 Milliarden Zeilen pro 
Sekunde".

Logs sind geplant. Dann gibt es Schnittstellen, um diese auszulesen und 
ggf. sogar Tools, um diese darstellen zu können. Das hat dann aber in 
der Regel weniger mit Softwarefehlern zu tun, sondern mit äußeren 
Einflüssen die den Abauf stören können. Natürlich kann man damit auch 
Softwarefehler finden, ist dafür aber eigentlich nicht vorgesehen. Wenn 
ein Gerät rausgeht und beim Kunden steht, darf dieser nicht mehr das 
Versuchskanienchen sein und die Software muss vollumfänglich geprüft 
sein. Wenn dann ein offensichtlicher SOftwarefehler auftritt, dann ist 
das bei allen Geräten so. Das wird dann im Haus mit Debugger untersucht.

Stefan ⛄ F. schrieb:
> In der Regel befinden sich gerade die Leute auf dem Irrweg, die meinen,
> es gäbe nur einen richtigen und das ist ihrer.

Gewiss gibt es noch mehr Möglichkeiten. Aber im Bereich Mikrocontroller 
ist der Hardwaredebugger erste Wahl.

von W.S. (Gast)


Lesenswert?

Unfassbar schrieb:
> Wer eben nicht weiß, wie man wirklich mit einem Hardwaredebugger
> effektiv debuggt, der greift halt zu solchen Mitteln. Und meint dann,
> dass ein Hardwaredebugger eh nur Spielerei ist. Totaler Bullshit.

Wenn du meinst, hier mit Ausdrücken wie "totaler Bullshit" herumwerfen 
zu müssen, dann disqualifizierst du dich selber.

Merke: Lauter gebrüllt ist noch lange nicht richtiger gesagt.

Mit den üblichen Debug-Möglichkeiten kann man eigentlich nur eines tun: 
Die eigenen Programmierfehler aufdecken, also die Stellen, wo man zu 
vergeßlich oder zu blöd war: Schusselfehler, Manual falsch verstanden, 
falsches Konzept gehabt, Compilerfehler, Klammer an der verkehrten 
Stelle, und so weiter.

Für ganz gewöhnliche Projekte braucht man fast immer keinen Debugger, 
sofern man systematisch planen und programmieren kann.

Für Leute hingegen, die drauflos programmieren (wie viele hier), ist 
jedoch der Debugger ein Segen, weil sie oftmals erstaut sind, was der 
Compiler aus dem gemacht hat, was sie in die Quelle hineingeschrieben 
haben.

Diese Leute programmieren quasi mit dem Debugger und du gehörst 
offensichtlich genau zu dieser Sparte - was man aus deinen vehementen 
Worten ersehen kann.

Nochwas:
Manche Dinge kann man mit einem gewöhnlichen Debugger eher nicht 
debuggen - ich denke grad an sowas wie den USB-Treiber, wo man vom Host 
nach 3 ms bereits rausgeschmissen worden ist. In solchen Fällen ist 
tatsächlich ein gepuffertes Log die bessere Methode.

Wie du erkennen kannst, ist die Wahl der Mittel fallabhängig und dein 
lautes Getöne zeugt nur von einem zu engen Horizont.

Auch ohne Debugger kann man professionell arbeiten. Das kannst du dir 
mal als gesetzt merken.

W.S.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Ghostrider1911 schrieb:
> Das die ARM Controller generell ein gutes Stück komplexer sind gegenüber
> den AVR habe ich nach kurzer Recherche leider bereits feststellen
> müssen.

Wobei man da auch keine "Angst" haben sollte. Die einzelnen 
Funktionsblöcke sind gut gekapselt und niemand zwingt einen, direkt alle 
einzuschalten und zu verwenden. Viele Möglichkeiten ergeben eben ein 
dickes Referenzhandbuch , von denen man dann aber für ein Modul (bspw. 
GPIO oder Zähler) nur einige wenige Seiten benötigt. Und das ist dann 
auch nicht mehr viel mehr als bei den AVRs.

Man muss sich nur wenige wirklich neue Dinge angewöhnen, so bspw. das 
Freischalten der Taktversorgung der Module oder auch die komplexere 
Takterzeugung selbst. Aber dafür erstellt man sich einmal den Code und 
gut ist es.

Wenn Du also schon AVRs außerhalb der Arduino-Umgebung programmiert 
hast, dann wirst Du wenig Umstellungsschwierigkeiten haben und Dir 
vieles bekannt vorkommen.

> Aber es hilft ja nichts, und mein Gedanke ist: Wenn ich mich schon in
> die "richtige" Programmierung mit Registern usw. einarbeiten will, dann
> doch gleich in eine Prozessorgeneration die etwas aktueller und
> leistungsstärker ist als die AVR.

Genau. "Nichts muss, aber alles kann".

Auch wir hier nutzen immer nur einen Bruchteil der Controllerhardware in 
einem Projekt.

(Wir programmieren hier übrigens auch mit eigenen HAL-Bibliotheken und 
direkt auf den Registern. Es ist wirklich nicht schwer, sich das 
aufzubauen)

von Unfassbar (Gast)


Lesenswert?

W.S. schrieb:
> Für ganz gewöhnliche Projekte braucht man fast immer keinen Debugger,
> sofern man systematisch planen und programmieren kann.

Dann haben wir hier einen Überflieger der Kategorie "Ich mache keine 
Fehler". Kannst stolz auf dich sein, jedoch machen 99% der anderen 
Programmierer während der Umsetzung sogenannte Schusselfehler, die du 
selbstverständlich nicht machst. Und auch ich mache diese, obwohl ich 
gut plane (was ich zumindest von mir behaupte).

W.S. schrieb:
> Manche Dinge kann man mit einem gewöhnlichen Debugger eher nicht
> debuggen - ich denke grad an sowas wie den USB-Treiber, wo man vom Host
> nach 3 ms bereits rausgeschmissen worden ist. In solchen Fällen ist
> tatsächlich ein gepuffertes Log die bessere Methode.

Auch hier brauche ich keine Logs. Es gibt einen Punkt im Programmcode, 
an dem der USB versagt. Breakpoints setzen, abfangen, Variableninhalte 
anschauen und Schlüsse ziehen. Ggf. zweimal wiederholen und man hat den 
Problemmacher identifiziert.

Logs als Ausgabe zum Finden von Softwarefehlern eignen sich nur, wenn 
man eine Anwendung mit wirklich großen Datenaufkommen hat. Damit meine 
ich keine Bildverarbeitung etc., sondern wirklich Gigabytes. Aber solche 
Geräte enthalten einen Mikrocontroller allenfalls als Vermittler, 
welcher dann widerum kein eigenes großes Datenvolumen hat. Daher steht 
dan ein Computer, Beaglebone, Linux, Pi, Banana, Beaglebone, phytec - 
was weiß ich.

von Vorname N. (mcu32)


Lesenswert?

W.S. schrieb:
> Auch ohne Debugger kann man professionell arbeiten. Das kannst du dir
> mal als gesetzt merken.
>
> W.S.

Halte ich im Jahr 2020 für absoluten Quatsch. Die Zeiten von Assembler 
und mühsam ausgeklügelten Sprungplänen sind (eigentlich) vorbei. Leider 
gibt es zu viele Leute die meinen, daran fest halten zu müssen. Verstehe 
mich nicht falsch, mit Sicherheit hat Assemblercode auch seine 
Berechtigung aber mit Sicherheit nicht als einzige Sprache in einem 
Projekt.
Und jetzt kommen gleich wieder Opa x bis y und erzählen mir, wie doll 
Assembler ja ist und wie effizient. Ja, das bestreite ich nicht aber für 
ein großes Projekt ist es nicht geeignet weil keine Sau ausser dem Autor 
diesen Wust schnell und einfach nachvollziehen kann.

Um damit zum eigentlichen Thema zurück zu kommen:
Hardwaredebugging bzw. Debugging allgemein ist einer der essentiellsten 
Teile heutiger Programmiermethoden. Allein schon durch den Einsatz 
vieler Frameworks oder Treibern von Anderen oder einem Hersteller hat 
man oft gar keine andere Chance, noch den Überblick zu behalten oder 
nach zu vollziehen, warum der Controller dieses oder jenes gerade tut. 
Das ist übrigens auch der Grund warum ich das mit Assembler angesprochen 
habe, denn dieses "man muss besser schauen was man macht und überlegen 
wo sein eigener Fehler liegt" hat eben noch ganz gut in Assemblerzeiten 
funktioniert, heute absolut veraltetete Sichtweise (meiner Meinung 
nach).

Und zum Schluss noch eine Empfehlung an den TO:
PIC Mikrocontroller von Microchip. IDE und Compiler gibt es gratis von 
der Firma. Die IDE ist sehr anfängerfreundlich, hat alles was man 
braucht und kostet wie bereits erwähnt nichts. Das All-in-One Gerät 
PICkit 3 (bzw. neuer 4) ist ein Hardwaredebugger und Flasher in einem. 
Die benötigten Pins hat jeder PIC und ausser diese richtig mit dem 
PICkit zu verbinden muss man hier quasi nichts tun.
Das Gerät gibts schon ab 10-15€ als Chinaclone. Habe selbst einen Clone 
und hatte damit nie Probleme. Auch das Originale ist mit einem 
einmaligen Preis von 44,88€ (stand mouser 31.1) auch absolut in Ordnung.

In diesem Sinne.

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

habe mal in einem Code für ein Display einen Fehler gesucht weil da 
nicht alle Spalten angezeigt wurden. Mit dem Debugger war das ein Klacks 
den Fehler zu finden. Ja ja, wenn man nicht alles selber schreibt und 
Code von Fremden nimmt.

von Unfassbar (Gast)


Lesenswert?

Vorname N. schrieb:
> PIC Mikrocontroller von Microchip. IDE und Compiler gibt es gratis von
> der Firma. Die IDE ist sehr anfängerfreundlich, hat alles was man
> braucht und kostet wie bereits erwähnt nichts. Das All-in-One Gerät
> PICkit 3 (bzw. neuer 4) ist ein Hardwaredebugger und Flasher in einem.
> Die benötigten Pins hat jeder PIC und ausser diese richtig mit dem
> PICkit zu verbinden muss man hier quasi nichts tun.

Ich finde, der TO sollte eher mit kleinen ARMs anfangen. Ein STM32F0 ist 
nicht komplexer als ein PIC. Aber die Debugger von Microchip empfinde 
ich (meine Meinung) als Katastrophe. Compiler + IDE + Debugger sind auch 
richtig langsam.

Dann lieber NXP, STM32 oder ATSAM. Die übliche Leier: Discoveryboard vn 
ST für < 10€.

von Vorname N. (mcu32)


Lesenswert?

Unfassbar schrieb:
> Vorname N. schrieb:
>> PIC Mikrocontroller von Microchip. IDE und Compiler gibt es gratis von
>> der Firma. Die IDE ist sehr anfängerfreundlich, hat alles was man
>> braucht und kostet wie bereits erwähnt nichts. Das All-in-One Gerät
>> PICkit 3 (bzw. neuer 4) ist ein Hardwaredebugger und Flasher in einem.
>> Die benötigten Pins hat jeder PIC und ausser diese richtig mit dem
>> PICkit zu verbinden muss man hier quasi nichts tun.
>
> Ich finde, der TO sollte eher mit kleinen ARMs anfangen. Ein STM32F0 ist
> nicht komplexer als ein PIC. Aber die Debugger von Microchip empfinde
> ich (meine Meinung) als Katastrophe. Compiler + IDE + Debugger sind auch
> richtig langsam.
>
> Dann lieber NXP, STM32 oder ATSAM. Die übliche Leier: Discoveryboard vn
> ST für < 10€.


Die Geschwindigkeit ist in der Tat im Vergleich zu anderen nicht so 
berauschend (obwohl das Debuggen durch das PICkit4 schon deutlich besser 
wurde).
Allerdings muss man das Zeug nur runterladen und kann ohne großes 
Konfigurieren oder Toolchaingebastele direkt los legen.

Zu den ST:
Gibt ja auch die Bluepill -Boards für 2€ vom Chinamann :)
Und den Cloneflasher /debugger gibts auch schon für 2€ vom selbigen 
(manchmal auch für 20cent mehr mit zu der Bluepill ;)).
ST Mikrocontroller sind auch keine schlechte Wahl, man hat hier auch 
mehr Freiheiten was das individualisieren der IDE und allgemein der 
ganzen Tools betrifft. Der Nachteil ist, man muss sich dann definitiv 
damit Beschäftigen.

Ausserdem ist es wirklich erstaunlich, für wie wenig Geld man 
mittlerweile eine 32bit ARM Architektur hinterher geworfen bekommt.

von M. K. (sylaina)


Lesenswert?

Unfassbar schrieb:
> Dann haben wir hier einen Überflieger der Kategorie "Ich mache keine
> Fehler". Kannst stolz auf dich sein, jedoch machen 99% der anderen
> Programmierer während der Umsetzung sogenannte Schusselfehler, die du
> selbstverständlich nicht machst. Und auch ich mache diese, obwohl ich
> gut plane (was ich zumindest von mir behaupte).

Schusselfehler macht jeder, mir wäre aber neu dass man die durch einen 
Debugger vermeidet. Schusselfehler erkennt man eigentlich immer am 
Ergebnis. Daher muss ich hier W.S. mal recht geben.

von Bernd K. (prof7bit)


Lesenswert?

Hans schrieb:
> und schneller als der in den nucleo-boards integrierte stlink.

Den ST-Link auf den Nucleo-Boards kann man umflashen auf J-Link 
(offizieller Download auf der Segger Webseite), dann hat er damit quasi 
auch schon einen J-Link EDU und kann sich an dessen Vorteilen (keine 
Gesichtslähmung bei Einzelschritt, unlimited Breakpoints, etc.) 
erfreuen.

: Bearbeitet durch User
von Speedy (Gast)


Lesenswert?

Unfassbar schrieb:
> ununterbrochen ausgeben zu lassen, aus 10 Milliarden Zeilen pro
> Sekunde".

Enorm schnell! Welche Hardware hast du denn? Will ich auch haben!

Für Normalos würde ich zu STM32Fxxx mit SWD raten. Gut und günstig siehe 
Nucleo-Boards.

von Unfassbar (Gast)


Lesenswert?

M. K. schrieb:
> Schusselfehler macht jeder, mir wäre aber neu dass man die durch einen
> Debugger vermeidet. Schusselfehler erkennt man eigentlich immer am
> Ergebnis. Daher muss ich hier W.S. mal recht geben.

Nö, mit dem Debugger findest du (unter anderem) deine Schusselfehler. 
Wo habe ich behauptet, dass man mit Debugger keine Fehler macht? Ein 
Debugger soll Fehler finden, nicht verhindern.

Also ich sehe nicht, wenn ich mein Gerät anschalte und es hat eine 
Fehlfunktion: Oh, ich sehe sofort, dass ich da Variable X mit Y 
vertauscht und anschließt x++ statt --x geschrieben habe. Kommt vor, 
aber in der Regel muss man kurz reinschauen.

von Unfassbar (Gast)


Lesenswert?

Speedy schrieb:
> Unfassbar schrieb:
>> ununterbrochen ausgeben zu lassen, aus 10 Milliarden Zeilen pro
>> Sekunde".
>
> Enorm schnell! Welche Hardware hast du denn? Will ich auch haben!
>
> Für Normalos würde ich zu STM32Fxxx mit SWD raten. Gut und günstig siehe
> Nucleo-Boards.

Hardware aus der Zukunft. Da bin ich mit meiner Zeitmaschine hingereist, 
die ich natürlich mit einem STM32 gebaut habe, welche mit der seriellen 
Schnittstelle debuggt habe. Ok, eigentlich war die von Anfang an perfekt 
und hatte keine Fehler, also musste ich nichts debuggen.

von M. K. (sylaina)


Lesenswert?

Unfassbar schrieb:
> Nö, mit dem Debugger findest du (unter anderem) deine Schusselfehler.

Wer mit einem Debugger Schusselfehler findet sollte seine Arbeitsweise 
überdenken und das meinte W.S. und da pflichte ich ihm bei.

Mit einem Debugger findet man die Ursachen für nicht erwartungsgemäßes 
Verhalten.

von Vorname N. (mcu32)


Lesenswert?

M. K. schrieb:
> Unfassbar schrieb:
>> Nö, mit dem Debugger findest du (unter anderem) deine Schusselfehler.
>
> Wer mit einem Debugger Schusselfehler findet sollte seine Arbeitsweise
> überdenken und das meinte W.S. und da pflichte ich ihm bei.
>
> Mit einem Debugger findet man die Ursachen für nicht erwartungsgemäßes
> Verhalten.

Ein Debugger ermöglicht einem einfach, den Code StepByStep 
nachvollziehen zu können. Dabei kann man sowohl syntaktische (aka 
"Schusselfehler") als auch semantische Fehler finden.
Unabhängig davon, welche Fehler man gezielt suchen will:
Ohne Debugger wird es um einiges unangenehmer bis unmöglich. Darum 
sollte ein Debugger heute auch absoluter Standart sein.

von Unfassbar (Gast)


Lesenswert?

M. K. schrieb:
> Mit einem Debugger findet man die Ursachen für nicht erwartungsgemäßes
> Verhalten.

Das auch. Man kann sämtliche Arten von Fehler finden. Aber die serielle 
Schnittstelle ist dafür nur edingt geeignet und zusätzlich äußerst 
umständlich, langsam und selber Fehleranfällig.

von Ghostrider1911 (Gast)


Lesenswert?

Schönen Freitag Mittag miteinander!

Gleich nach der Arduino Diskussion kommt die Debugger Diskussion ;)

Naja ich sehe das so: Bis jetzt "debugge" ich so wie es hier bereits 
geschrieben wurde: Variablen einfach über die UART ausgeben und anzeigen 
lassen.

Natürlich ist das ganze nicht so das gelbe vom Ei, zumindest für mich 
nicht. (Viele hier mögen das anders sehen, ich habe noch nie mit einem 
richtigen Debugger gearbeitet, und bin auf die neuen Möglichkeiten 
gespannt)
Ich mache beim Programmieren viele Fehler, gebe ich auch gern zu, ich 
mache das nur Hobby mäßig und nicht beruflich. Jedoch denke ich mir, das 
gerade mir als Anfänger ein Debugger sehr gut helfen kann.

Ich habe mir gerade einen Nucleo F103RB bestellt, dieser hat den (fast) 
gleichen µC als das Bluepill oder Maple Board drauf.


Ich werde mir das in Verbindung mit der STM32Cube ansehen, bzw. mit der 
STM32 Workbench, auch die mBed Umgebung werde ich mir anschauen. Nach 
meinem aktuellen Wissensstand sind das die aktuell sinnvollsten IDE´s 
die für mich in Frage kommen. Ausserdem bieten sie alles was ich brauch 
in einer kompletten IDE, was für mich denke ich einfacher ist als 
ettliche Einzelprogramme.
Ich möchte mich gleich in einen µC einarbeiten der mir auf jedenfall 
ausreicht und nicht wie vorher vom kleinsten zum größten. (attiny2313 - 
atmega8 - 88 - 168 - 328 - 32 - 2560)

Vom preislichen her ist mir das egal, wenn ich die Preise vergleiche ist 
das kein Weltuntergang... Lieber mit Kanonen auf spatzen schießen, da 
tut sich der Anfänger auch leichter beim programmieren. (Meine Meinung)

Ausserdem: Wie bereits erwähnt wurde muss man die gegebenen funktionen 
ja nicht nutzen. Klar, der Überblick ist schwieriger, aber da muss ich 
eben einmal durch, und wenn ich das kapiert habe wird das schon werden. 
Stefan Frings, der ja auch hier schreibt hat eine schöne Anleitung auf 
seiner Seite, an dieser werde ich mich entlanghangeln.

kleines Beispiel: Ich habe eine Steuerung mit dem atmega328 gebaut, der 
flash ist komplett voll, 1-2 Funktionen müssen noch rein, also habe ich 
mehrere Stunden damit verbracht den Code zu optimieren.

Mein Anspruch ist sicherlich einiges niedriger als der vieler Profis 
hier, ich hoffe das könnt ihr auch verstehen. Ich zähle mich als 
fortgeschrittenen Bastler, der gelegentliche Projekte verwirklichen will 
und aktuell mit den AVR´s an die Grenzen derjenigen kommt.

Ob es sinnvoll ist von den AVR´s weg zu gehen, und ob ich das wirklich 
brauche, ist ein ganz anderes Thema, ich jedenfalls werde mir die STM32 
jetzt anschauen, sollte es nichts werden sind die 20€ für das Nucleo 
eben für die Katz, damit kann ich ehrlich gesagt leben ;)

Ich hätte einfach einen atmega2560 verwenden sollen, die paar Euro mehr 
sind mir sowas von egal, ich muss ja nichts in Serie fertigen..

Meine Projekte wurden bis jetzt alle nur in Einzelausfertigung erstellt.

In diesem Sinne: Fröhliches Diskutieren und allen hier ein schönes 
Wochenende!! ;)

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Ich finde, der TO sollte eher mit kleinen ARMs anfangen.

Wenn schon ARM, dann würde ich auch dazu raten. Bei STM32 halte ich die 
Seriel L0, F0, F1 und F3 für den nächsten logischen Schritt nach 
ATmega328.

Für den F1 findet man mehr Doku im Netz, aber der ist schon sehr alt. 
Der Nachfolger F3 ist sehr ähnlich, nur halt in vielen Punkten etwas 
verbessert. Wer gut englisch kann (um das Referenzhandbuch zu verstehen) 
wird auch damit klar kommen, denke ich.

Bei mir hat das jedenfalls geklappt, und ich bin ausdrücklich kein 
Profi, was Mikrocontroller angeht.

von Michael U. (amiga)


Lesenswert?

Hallo,

Vorname N. schrieb:
> Ein Debugger ermöglicht einem einfach, den Code StepByStep
> nachvollziehen zu können. Dabei kann man sowohl syntaktische (aka
> "Schusselfehler") als auch semantische Fehler finden.

vorweg, ich habe meine Ansicht und den Bereich Hobby ja bereits erwähnt.
Keiner kann ein Programm StepByStep durchgehen, um einen Fehler zu 
finden. Macht auch niemand. Erstmal grenzt man doch die Problemecke ein, 
um zu schauen, wo man überhaupt ansetzen muß.
Da ist doch eher die Unterscheidung "gute und weniger gute 
Programmierer".
Der gute kennt soviel vom Programmablauf, daß er schnell an der 
kritischen Stelle ansetzen kann, der weniger gute stochert mehr rum.
Natürlich kann dann ein Hardwaredebugger das Leben leichter machen, 
Breakpoiunts, Variablentracing usw. usw. geht dann schneller als per 
serieller Ausgabe Variablenwerte beim Funktionsaufruf auszugeben und 
Zwischen ergebnisse.
Letztlich muß man doch selber aus den Prgrammlauf erwartete und falsche 
Werte auswerten und die Ursache weiter eingrenzen. Mir hilft es da meist 
mehr, den Breich im Sourcecode in Ruhe durchzuschauen, 50% der Fehler 
finde ich da bereits. Die anderen 50% sind dann Fehler bei der Nutzung 
von Programmteilen anderer, Doku nicht richtig gelesen, Anmerkungen 
speziell in Datenblättern übersehen usw.
Mich stört es da etwas, daß sowas an einer Debugger-Version festgemacht 
wird.
Ich kenne auch genug Leute, die einen tollen Meßgerätepark haben und 
nicht in der Lage sind, das richtig zu bedienen, die Ergebnisse zu 
interpretieren und vor allem die Grenzen der jeweiligen Technik zu 
kennen.

Gruß aus Berlin
Michael

von wendelsberg (Gast)


Lesenswert?

Unfassbar schrieb:
> Wenn
> ein Gerät rausgeht und beim Kunden steht, darf dieser nicht mehr das
> Versuchskanienchen sein und die Software muss vollumfänglich geprüft
> sein.

Na wer das glaubt, den kann man nicht ernst nehmen.
Das gibt es nicht mal mehr im Flugzeugbau, wie letztes Jahr ans Licht 
kam.

wendelsberg

von Unfassbar (Gast)


Lesenswert?

wendelsberg schrieb:
> Na wer das glaubt, den kann man nicht ernst nehmen.
> Das gibt es nicht mal mehr im Flugzeugbau, wie letztes Jahr ans Licht
> kam.

Du vertehst ganz genau, was ich damit meine.

von wendelsberg (Gast)


Lesenswert?

Unfassbar schrieb:
> Du vertehst ganz genau, was ich damit meine.

s/vertehst/verstehst/

Nein, erklaer es bitte.

wendelsberg

von Unfassbar (Gast)


Lesenswert?

wendelsberg schrieb:
> Nein, erklaer es bitte.

Nain, dass ersparr ech mier. Auf diesen Kinderkram habe ich keine Lust.

von Vorname N. (mcu32)


Lesenswert?

Michael U. schrieb:
> Hallo,
>
> Vorname N. schrieb:
>> Ein Debugger ermöglicht einem einfach, den Code StepByStep
>> nachvollziehen zu können. Dabei kann man sowohl syntaktische (aka
>> "Schusselfehler") als auch semantische Fehler finden.
>
> Keiner kann ein Programm StepByStep durchgehen, um einen Fehler zu
> finden. Macht auch niemand. Erstmal grenzt man doch die Problemecke ein,
> um zu schauen, wo man überhaupt ansetzen muß.
> Da ist doch eher die Unterscheidung "gute und weniger gute
> Programmierer".
>
> Michael


Vielleicht habe ich mich ein wenig unklar ausgedrückt. Natürlich wird 
i.d.R. der zu debuggende Bereich eingegrenzt, logisch.
Aber:
Die generelle Funktion eines Debuggers ist es eben, gezielt in jede 
Zeile eingreifen zu können und das Ergebnis direkt zu erkennen und nach 
verfolgen zu können. Und selbst wenn das keiner macht, theoretisch 
könnte ich mit meinem Debugger durch hunderte Zeilen von Code steppen, 
einfach nur weil er es eben kann :)

von Johannes S. (Gast)


Lesenswert?

Beim Code analysieren geht man meist vom richtigen Ergebnis aus oder 
glaubt zu wissen was in einer Codezeile passiert.  Im Debugger sieht 
man aber was tatsächlich passiert. Und da gibt es sehr oft Unterschiede.
Habe gerade einen 1 qm Papier entsorgt, da waren noch Unterlagen von 
Windriver und QNX drin. Da hat man noch für jeden Handschlag extra 
bezahlen müssen. Heute bekomme ich das alles für Lau, da kann ich nicht 
verstehen warum sich dagegen wehren muss. Es ist nur Faulheit da mal ein 
Tutorial durchzuarbeiten.

von Cyblord -. (cyblord)


Lesenswert?

Man muss halt auch wissen WIE man mit einem Debugger sinnvoll arbeitet. 
Und es ist wie mit so vielem: Was man nicht kennt, braucht man nicht. 
Kennt man es, will man nicht mehr ohne.

Man denke nur an Conditional Breakpoints, Task/OS awareness, Tracing. 
Das sind Dinge die einfach praktisch sind. Die will ich nicht missen.

von Stefan F. (Gast)


Lesenswert?

Gestern sollte ich eine Änderung kontrollieren, wo die Spezifikation 
zwar korrekt aber von der Form her ziemlich verwirrend geschrieben war. 
Mit dem Debugger habe ich den Code für alle geforderten Szenarien Zeile 
für Zeile ausgeführt, so bekam ich einen klaren Endruck davon, was da 
eigentlich abläuft.

Das könnte einen auf die Idee bringen, dass man nicht mehr ordentlich 
dokumentieren muss, weil man ja bequem debuggen kann.

(Duck mich weg)

von Unfassbar (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das könnte einen auf die Idee bringen, dass man nicht mehr ordentlich
> dokumentieren muss, weil man ja bequem debuggen kann.
>
> (Duck mich weg)

Du brauchst dich nicht ducken. Du hast völlig recht damit. Viele planen 
ihre Software überhaupt nicht mehr, also wirklich gar nicht. Dann wird 
einfach wild drauflos programmiert.

Wenn die Spezifikation ziemlich "verwirrend" geschrieben ist, da geht 
die zur Überarbeitung an den Author zurück, basta. Wenn die dann 
ausgebessert wurde, würde ich erst mit der Arbeit beginnen.

von Johannes S. (Gast)


Lesenswert?

Ja, das scheinen die wichtigsten Pragmas beim Programmieren zu sein:
- mit dem Debugger wird man zu faul zum Nachdenken, ist überflüssig
- Doku ist immer veraltet, also auch überflüssig
- Tests sind aufwändig und decken keine 100 % ab, lassen wir das
- Versionsverwaltung ist zu kompliziert, zip mit Datum Uhrzeit reicht.

Ich finde es gut das es andere Ansichten und Projekte gibt von denen man 
wirklich was lernen kann.

von Cyblord -. (cyblord)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das könnte einen auf die Idee bringen, dass man nicht mehr ordentlich
> dokumentieren muss, weil man ja bequem debuggen kann.

Also ehrlich, diesen gedanklichen Bogen von Debugging zu "braucht keine 
Doku" kann ich nicht nachvollziehen. Das sind komplett unterschiedliche 
Dinge.

Es ist trivial dass man jede Software Reengineeren kann (mit oder ohne 
Debugger). Eine Doku erstellt man, damit das eben nicht jedes mal muss, 
sondern am besten gar nie und schlimmstenfalls einmal.

: Bearbeitet durch User
von Roland F. (rhf)


Lesenswert?

Hallo,
Johannes S. schrieb:
> - mit dem Debugger wird man zu faul zum Nachdenken, ist überflüssig
> - Doku ist immer veraltet, also auch überflüssig
> - Tests sind aufwändig und decken keine 100 % ab, lassen wir das
> - Versionsverwaltung ist zu kompliziert, zip mit Datum Uhrzeit reicht.

Obige Punkte sind sicherlich sehr sinnvoll, aber soll jetzt jeder, der 
ein BASCOM-Programm mit 20 Zeilen Code auf einem ATtiny schreibt
- einen Debugger benutzen,
- eine umfangreiche Dokumentation anlegen,
- Testsoftware schreibe,
- und das Ergebnis dann in eine Versionsverwaltung einpflegen?
Konkret: ab welcher Projektgröße ist das alles sinnvoll und ab wann darf 
es auch mal ein bisschen einfacher gehandhabt werden?

rhf

von c-hater (Gast)


Lesenswert?

Roland F. schrieb:

> Obige Punkte sind sicherlich sehr sinnvoll, aber soll jetzt jeder, der
> ein BASCOM-Programm mit 20 Zeilen Code auf einem ATtiny schreibt
> - einen Debugger benutzen,
> - eine umfangreiche Dokumentation anlegen,
> - Testsoftware schreibe,
> - und das Ergebnis dann in eine Versionsverwaltung einpflegen?

Dokumentation: definitiv ja, für genau den Dödel selber. Der weiß 
nämlich nach spätestens einem halben Jahr nicht mehr, was er sich dabei 
gedacht hat, was er da geschrieben hat...

Der Rest ist für Kleinkram unter 10000 Zeilen Code aber mehr oder 
weniger verzichtbar.

> Konkret: ab welcher Projektgröße ist das alles sinnvoll und ab wann darf
> es auch mal ein bisschen einfacher gehandhabt werden?

Also eine Versionsverwaltung betreibe ich sogar privat. Sprich: mit nur 
einem einzigen Entwickler. Ist unwahrscheinlich hilfreich und nimmt 
nebenbei wesentliche Teile der Doku auf. Die besteht nämlich darin, wie 
ich beim Einchecken Änderungen begründe. Aber OK, selbst meine privaten 
Projekte gehen doch immer ganz signifikant über 20 Zeilen hinaus...
Sobald mehr als ein Entwickler beteiligt ist, halte ich aber eine 
Versionsverwaltung für absolut unverzichtbar. Schon um die Schuld 
ordnungsgemäß zuweisen zu können...

Tests hingegen... Naja. Viel Aufwand, relativ wenig Nutzen. So meine 
Meinung. Das Blöde bei Tests ist: es wird immer nur das getestet, woran 
der Programmierer gedacht hat. Aber klar: mit zunehmender Zahl von 
Entwicklern gewinnen Tests immer mehr an Sinn. Sie fangen nämlich dann 
wenigstens das auf, woran der eine Programmierer noch gedacht hat, der 
andere aber nicht, weil er nur die Hälfte des Problems wirklich 
verstanden hatte und garnix vom Code gelesen hat, bevor er seinen 
"Beitrag" zum Gesamtwerk eingecheckt hat. Die typischen YT-Tutorial und 
C&P-Coder halt...

Mit zunehmender Entwicklerzahl wird natürlich auch die Doku immer 
wichtiger. Wobei ich "Doku" im Stil der heute üblichen halb- oder 
vollatomatischen Annotationen verschiedener Coleur für vollkommen 
verzichtbar halte. Das was da drin steht, steht doch schon in der 
Deklaration im Quelltext.
Ordentliche Doku ist eine Darstellung des Konzeptes, nicht eine 
Auflistung dessen, was ohnehin im Quelltext steht, nur in einer anderen 
Metasprache...

Und was nun Debugger betrifft: ja, die können manchmal hilfreich sein. 
Das Problem ist (besonders in Echtzeit-Systemen): wenn im Debugger das 
Problem sichtbar wird, liegt die eigentliche Ursache oft schon weit in 
der Vergangenheit. Hier sind mit Echtdaten gefütterte Simulatoren viel 
hilfreicher. Da kann man nämlich dieselbe Situation beliebig oft 
abspielen und sich sozusagen rückwärts zur Wurzel des Übels 
durchkämpfen...
Der typische blöde Debugger-Benutzer baut aber hingegen oft bloß ein 
try-catch an der Stelle ein, wo's dann wirklich knallt...
Das ist in meinen Augen eine Perversion. Sowas sollte verboten werden.

von Unfassbar (Gast)


Lesenswert?

Roland F. schrieb:
> - einen Debugger benutzen,
> - eine umfangreiche Dokumentation anlegen,
> - Testsoftware schreibe,
> - und das Ergebnis dann in eine Versionsverwaltung einpflegen?

Einen Debugger, wenn er sein Programm nicht zum laufen bekommt, ja.
Es reichen hier Kommentare im Quellcode.
Testsoftware, Blödsinn.
Versionsverwaltung auch blödsinn.

c-hater schrieb:
> Der Rest ist für Kleinkram unter 10000 Zeilen Code aber mehr oder
> weniger verzichtbar.

Auch in Quellcode unter 10.000 Zeilen kann eine Menge arbeit drin 
stecken. Das merkt man dann, wenn man das erste mal aus versehen diesen 
löscht, was mir anfangs einmal passiert ist. Mensch habe ich mich 
geärgert.

c-hater schrieb:
> Also eine Versionsverwaltung betreibe ich sogar privat.

Das hat ja auch absolut nichts mit der Anzahl der Entwickler zu tun.

von Johannes S. (Gast)


Lesenswert?

Roland F. schrieb:
> Obige Punkte sind sicherlich sehr sinnvoll, aber soll jetzt jeder, der
> ein BASCOM-Programm mit 20 Zeilen Code auf einem ATtiny schreibt

Der TO hat schon mit Arduino 'gespielt' und wollte jetzt mehr, es geht 
also nicht um den kleinsten Tiny. Trotzdem wird man, wenn man sich z.B. 
in git eingearbeitet hat, nicht mehr ohne diese Hosenträger arbeiten 
wollen. Ich jedenfalls nicht, habe vor kurzem noch versehentlich Dateien 
überschrieben. Ein Klick auf den Angelhaken (Revert) im VSCode, und 
schon war alles wieder repariert. Also nur eine Frage wie gut man sich 
selber organisieren kann/will, das hat nix mit Hobby zu tun. Da darf man 
soviel Chaos veranstalten wie man will, man ist König auf seiner eigenen 
Insel. Aber man kann das auch als Übung und Weiterbildung betrachten.
Gilt genauso für die anderen Punkte. Kostet natürlich alles 
Einarbeitung, aber es ging ja um besser machen. Mit einem großen µC und 
Fortsetzen meterlanger Sketche kann man das Chaos zum Quadrat 
weiterleben.
Tests überlasse ich gerne anderen :) Zum Glück gibt es Leute die auch 
daran Spaß haben, noch ein Grund warum ich github genial finde.

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Testsoftware, Blödsinn.
> Versionsverwaltung auch blödsinn.

In den Firmen wo ich bisher gearbeitet habe, würdest du nach so einer 
Äußerung zum persönlich Gespräch geladen werden. Wenn du dabei bleibst: 
Kündigung.

Unfassbar schrieb:
> Auch in Quellcode unter 10.000 Zeilen kann eine Menge arbeit drin
> stecken. Das merkt man dann, wenn man das erste mal aus versehen diesen
> löscht, was mir anfangs einmal passiert ist. Mensch habe ich mich
> geärgert.

Den Fehler hätte TestSoftware frühzeitig gemeldet und mit Hilfe der 
Versionsverwaltung hättest du genau nachvollziehen (und reverten) 
können, was verändert wurde.

Johannes S. schrieb:
> Trotzdem wird man, wenn man sich z.B.
> in git eingearbeitet hat, nicht mehr ohne diese Hosenträger arbeiten
> wollen.

Für Einzelkämpfer empfehle ich Subversion anstelle von GIT, weil man da 
ein paar Bedienschritte weniger hat. Subversion geht auch ohne Server, 
wenn man möchte.

von Unfassbar (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> In den Firmen wo ich bisher gearbeitet habe, würdest du nach so einer
> Äußerung zum persönlich Gespräch geladen werden. Wenn du dabei bleibst:
> Kündigung.

Wenn das bei einem 20 Zeilen Programm gefordert wird - dann kündige ich 
gerne. Man muss die Verhältnismäßigkeit bewahren. Aber ja, vermutlich 
waren deine Firmen im ISO9001 Sumpf versunken und es wären wirklich 
Dokumentation + Testfälle erforderlich gewesen...

Stefan ⛄ F. schrieb:
> Den Fehler hätte TestSoftware frühzeitig gemeldet und mit Hilfe der
> Versionsverwaltung hättest du genau nachvollziehen (und reverten)
> können, was verändert wurde.

Nein. Ich habe aus Versehen in eclipse ein Projekt in einem bereits 
bestehenden eclipse Projekt erstellt. Das habe ich dann wieder gelöscht, 
dabei hat eclipse aber ALLES unwideruflich entfernt, ohne es in den 
Windoof Papierkorb zu packen. Es hat also auch das andere rojekt als 
Projektdateien betrachtet und vernichtet. Selbst ein .git Ordner wäre 
dann vernichtet worden. Auch recuva etc. konnte nichts retten. Aber wie 
gesagt, das war ein Anfängerfehler damals...

von Unfassbar (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn du dabei bleibst:
> Kündigung.

Achja, eine Kündigung wäre hier natürlich unwirksam.

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Aber ja, vermutlich
> waren deine Firmen im ISO9001 Sumpf versunken und es wären wirklich
> Dokumentation + Testfälle erforderlich gewesen...

Ohne diesen "Sumpf" dürften wir nicht Daten von Personalausweisen, 
Biometrische Informationen und Finanz-Transaktionen verarbeiten. Und das 
ist gut so, ein gewisses Maß an Vorgaben muss sein, auch wenn diese ab 
und zu mal übertrieben erscheinen.

Die Daten-Lecks, die in den letzten 12 Monaten durch die Medien gingen, 
zeigen die Notwendigkeit allzu deutlich.

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Selbst ein .git Ordner wäre dann vernichtet worden.

Nein, wäre er nicht. Wenn du damit richtig arbeitest, liegt das Source 
Repository ganz woanders.

> Achja, eine Kündigung wäre hier natürlich unwirksam.

Ein Arbeitgeber kann seine Angestellten kündigen, wann es ihm beliebt. 
Innerhalb der Probezeit sogar fristlos. Und wenn du nicht tust, was dein 
Chef von Dir verlangt, dann auch fristlos. Daran kannst du mit deiner 
arroganten Einstellung nichts ändern.

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Ein Arbeitgeber kann seine Angestellten kündigen, wann es ihm beliebt.

Nur bei Winz-Buden mit weniger als 10 Beschäftigten. Bei allem was 
größer ist, greifen mehr und mehr die Zügelungen des reinen Kapitalismus 
in Form des staatlich verordnete Abeitsrechts und darin inbegriffen die 
Mitbestimmungsrechte der "Arbeitnehmer".

(Euphemismus: eigentlich sind die das, die die Arbeit geben, der 
"Arbeitgeber" krallt nur die Erträge der Arbeit ein und gibt denen, die 
dieses Arbeit leisten, ein wenig davon ab, wenn er halbwegs clever ist, 
nicht zu wenig...)

von Einer K. (Gast)


Lesenswert?

c-hater schrieb:
> und darin inbegriffen die
> Mitbestimmungsrechte der "Arbeitnehmer".

Mitbestimmungsrechte?

Das geht in etwas so:
Ein erfahrenes Team bekommt recht schnell mit, ob ein Neuling kompatibel 
ist, bzw. sein können wird.
Der Arbeitgeber wird, im eigenen Interesse, der Teamempfehlung folgen.

von Unfassbar (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ohne diesen "Sumpf" dürften wir nicht Daten von Personalausweisen,
> Biometrische Informationen und Finanz-Transaktionen verarbeiten. Und das
> ist gut so, ein gewisses Maß an Vorgaben muss sein, auch wenn diese ab
> und zu mal übertrieben erscheinen.

Ja, aber häufig holen sich vor allem Klitschen dieses "Ziertifikat", um 
gut organisiert zu wirken. Und weil andere Firmen es verlangen. Dabei 
ist die Realität dann aber, dass zwei Wochen vorm Audit alle Mitarbeiter 
etwas geschult werden und danach wieder alles aus dieser Zertifizierung 
ignoriert wird.

Stefan ⛄ F. schrieb:
> Nein, wäre er nicht. Wenn du damit richtig arbeitest, liegt das Source
> Repository ganz woanders.

Soll ich mir jetzt einen Server hinstellen oder meine gits irgendwo im 
Internet hochladen? Ich habe ja nie behauptet, dass ich richtig mit git 
umgehe ;). Aber privat habe ich tatsächlich keinen Server, so ein Nerd 
bin ich nicht. Einmal pro Woche Backup reicht aus (samt allen Git Repos 
im Umkehrschluss).

Stefan ⛄ F. schrieb:
> Ein Arbeitgeber kann seine Angestellten kündigen, wann es ihm beliebt.

Woah, gewagte These.

von Unfassbar (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ein erfahrenes Team bekommt recht schnell mit, ob ein Neuling kompatibel
> ist, bzw. sein können wird.

Das ist dann in der Probezeit. Aber danach kannst du nicht mal eben so 
jemand kündigen... da musst du größere Geschütze aufziehen.

von M. K. (sylaina)


Lesenswert?

Stefan ⛄ F. schrieb:
> In den Firmen wo ich bisher gearbeitet habe, würdest du nach so einer
> Äußerung zum persönlich Gespräch geladen werden. Wenn du dabei bleibst:
> Kündigung.

Wenn er in einer Firma in diesem Bereich arbeiten würde, würde er sich 
nicht zu so einer Aussage hinreissen lassen sondern wüsste um die 
unschätzbaren Vorteile dieser Werkzeuge eines Entwicklers ;)

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Mitbestimmungsrechte?
>
> Das geht in etwas so:
> Ein erfahrenes Team bekommt recht schnell mit, ob ein Neuling kompatibel
> ist, bzw. sein können wird.

Ja. Das sollte dann aber in der Probezeit passieren, denn genau dafür 
ist die da. Danach wird's schwierig. Und das ist gut so!

von F. F. (foldi)


Lesenswert?

Gerhard O. schrieb:
> Im Prinzip läßt sich mit allen uC viel machen sobald den Feind kennt.

Moin Gerhard!
So ist es. Alle springen auf Cortex, aber wozu?
Sicher brauchen nur die wenigsten diese Leistung.
In irgendeinem Forum las ich über Roboter auf ATtiny85 Basis.
Ich persönlich finde es viel spannender zunächst alles aus einem 
Controller raus zu holen und dann evtl. mehrere kleine Controller als 
System zusammen arbeiten zu lassen. Vielleicht sogar mit einem eigenes 
entwickelten Datenaustausch.
Das hatte ich schon einmal vor und vielleicht spielt mein Kopf doch 
wieder irgendwann komplett mit. Dann würde ich so etwas einmal 
versuchen.
Aus 1000 PS 100 PS zu nutzen ist leicht, aus einem PS gefühlte 5 PS zu 
machen (früher beim Frisieren war das so; mein Mokick lief 100 km/h), 
macht für mich den größeren Reiz aus.

von Unfassbar (Gast)


Lesenswert?

F. F. schrieb:
> evtl. mehrere kleine Controller als
> System zusammen arbeiten zu lassen. Vielleicht sogar mit einem eigenes
> entwickelten Datenaustausch.

Das ist aber eine Fehlerquelle zusätzlich. Ein ARM M4 kostet genausoviel 
wie ein Xmega oder Atmega. Da stellt sich mir die Frage nicht mehr, was 
ich nutze..

von Johannes S. (Gast)


Lesenswert?

Display ansteuern mit tiny Cluster? Nein Danke.

von c-hater (Gast)


Lesenswert?

F. F. schrieb:

> So ist es. Alle springen auf Cortex, aber wozu?
> Sicher brauchen nur die wenigsten diese Leistung.

Doch, sie brauchen die, um ihre programmiererische Unfähigkeit 
aufzufangen. Mit genug Hardwarepower kann man fast jede Inkompetenz 
wegretuschieren...

> Ich persönlich finde es viel spannender zunächst alles aus einem
> Controller raus zu holen

Privat habe ich da auch sehr viel Spaß dran. Kommerziell funktioniert 
das aber nicht. Leistungsfähige Hardware ist einfach viel zu billig 
geworden. Und gute Programmierer wachsen halt nicht auf Bäumen...

Naja, dadurch gibt allerdings auch genug C&P-ler, die auch diese 
Hardware mit ihrer Inkompetenz zum Ächzen bringen. Es ist ein 
Geschäftsfeld meines Brötchengebers, solche aus dem Ruder gelaufene 
Projekte doch noch zu retten. Das darf ich dann tun. Und ich finde das 
richtig geil. Da gibt es immer sehr viel zu lachen...

Darf ich meinem Cheffe natürlich nicht verraten. Sonst kommt der auf die 
Idee, dass er mir kein Gehalt zahlen müsste, sondern im Gegenteil 
Eintrittsgeld oder sowas fordert, weil ich ja so viel Spaß an der Arbeit 
habe...

von F. F. (foldi)


Lesenswert?

Ja klar, im Geschäftsleben gelten andere Regeln.
Ich meinte natürlich nur den privaten Bereich.
Und zum Display, den absoluten Blödsinn in dieser Richtung habe ich bei 
einer Taschenlampe (hier im Forum) gesehen.
Für mich ist eine perfekte Lösung die, die ich nicht sehe und sogar nach 
einiger Zeit vordergründig vergesse, weil alles klaglos und so gut seine 
Arbeit verrichtet, dass mir auch keine Verbesserung einfällt.

von Stefan F. (Gast)


Lesenswert?

Unfassbar schrieb:
> Soll ich mir jetzt einen Server hinstellen oder meine gits irgendwo im
> Internet hochladen

Wie gesagt geht das mindestens bei SVN auch ohne Server. Ein Verzeichnis 
irgendwo auf irgendeinem Speichermedium genügt.

von M. K. (sylaina)


Lesenswert?

F. F. schrieb:
> Ich persönlich finde es viel spannender zunächst alles aus einem
> Controller raus zu holen und dann evtl. mehrere kleine Controller als
> System zusammen arbeiten zu lassen.

Du bindest dir lieber freiwillig einen Klotz ans Bein? Früher hat man so 
etwas gemacht weils da einfach ein Leistung fehlte aber heute wo es 
Leistung ohne Ende gibt, warum sollte man einen µC benutzen, der kaum 
mit kommt wenn es zum gleichen Preis, ja nicht selten sogar noch 
preiswerter, deutlich potentere µCs gibt?

von Zeno (Gast)


Lesenswert?

c-hater schrieb:
> Tests hingegen... Naja. Viel Aufwand, relativ wenig Nutzen. So meine
> Meinung. Das Blöde bei Tests ist: es wird immer nur das getestet, woran
> der Programmierer gedacht hat.

Endlich mal einer der das genauso sieht wie ich - speziell das nach dem 
Doppelpunkt. Leider glauben nach wie vor viele das nach einen 
erfolgreichen Testlauf alles in Ordnung ist. Leider ist dem nicht so, 
wenn ich mit meinen Testfällen die Realität nicht korrekt abbilde. Die 
Crux dabei ist, wenn ich die Realtät nicht richtig kenne kann ich sie 
auch nicht abbilden. Merke ich gerade beruflich - da will einer meine 
Software neu implementieren und frickelt da seit 6 Jahren dran rum. Die 
Tests laufen halt durch, dennoch ist Software an vielen Stellen nicht 
praxistauglich.

von Unfassbar (Gast)


Lesenswert?

Zeno schrieb:
> und frickelt da seit 6 Jahren dran rum

Seit 6 Jahren? Da wäre ich schon lange in der Irrenanstalt gelandet..

von M. K. (sylaina)


Lesenswert?

Zeno schrieb:
> Merke ich gerade beruflich - da will einer meine
> Software neu implementieren und frickelt da seit 6 Jahren dran rum.

Seit 6 Jahren? Hochschulbereich? In der freien Wirtschaft kann man sich 
das doch nicht erlauben 6 Jahre an einer Neuimplementierung 
rumzufrickeln.

Und ja, Test durchzuführen, die nicht die Realität abbilden, sind 
ziemlich sinnbefreit.

von Zeno (Gast)


Lesenswert?

Unfassbar schrieb:
> Seit 6 Jahren? Da wäre ich schon lange in der Irrenanstalt gelandet..

Ach der darf meinetwegen auch noch länger daran rum frickeln, wenn man 
ihn läßt. Man hat ihm jetzt noch einen an die Seite gestellt. Das 
Problem hierbei der hat noch weniger Ahnung davon worum es geht und was 
Ende herauskommen sollte.
Fairerweise muß man sagen programmieren können beide, wahrscheinlich 
sogar besser als ich, aber sie haben halt keinerlei Ahnung von dem was 
sie programmieren sollen.

von Zeno (Gast)


Lesenswert?

M. K. schrieb:
> In der freien Wirtschaft kann man sich
> das doch nicht erlauben 6 Jahre an einer Neuimplementierung
> rumzufrickeln.

Doch kann man - sehe ich ja gerade. Man muß sich nur entsprechend 
verkaufen. Ist in größeren Konzernen auch kein Problem.

von M. K. (sylaina)


Lesenswert?

Zeno schrieb:
> Doch kann man - sehe ich ja gerade. Man muß sich nur entsprechend
> verkaufen. Ist in größeren Konzernen auch kein Problem.

Ist dann aber doch sicher ne wesentlich größere Sache. Ansonsten könnte 
ich mir das bei weitem nicht vorstellen. Ich bin nur beim Mittelstand 
aber bei uns, rund 1000 Mitarbeiter, wäre das ein absolutes NoGo an 
einer Neuimplementierung 6 Jahre lang dran rumzufrickeln.

von Ghostrider1911 (Gast)


Lesenswert?

Mahlzeit miteinander!

Ich habe gestern schonmal ein wenig mit dem Nucleo 103RB rumgespielt, 
leider komme ich schon bei den ersten Schritten nicht wirklich weiter.

Das Programm lässt sich auf den µC spielen (Download verified 
successfully) , aber wenn ich zur Debug perspetive wechsle und Resume 
(F8) drücke, kann er sich scheinbar nicht verbinden.
Target is not responding... (10 mal ca)
Target is not responding, retrying...
Error! Failed to read target status
Debugger connection lost.
Shutting down...

Hatte das schonmal jemand so?

Der ST-Link kann sich ja scheinbar verbinden, sonst würde er das 
Programm ja nicht drauf gespielt kriegen, also kann ich das ganze nicht 
so wirklich nachvollziehen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Hast du im Programm die Pin Config von PA13/PA14 verändert?
Das sind die Pins der SWD (Debug) Schnittstelle und wenn du die 
umkonfgurierst, dann is aus mit Verbinden bis zum Reset.

von Ghostrider1911 (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die Antwort! Das Pinout von PA13/14 habe ich nicht geändert.

Leider habe ich keinen Schimmer woran das liegen könnte.

von W.S. (Gast)


Lesenswert?

M. K. schrieb:
> Ist dann aber doch sicher ne wesentlich größere Sache.

Ach, wenn man's durch die Mitarbeiterzahl dividiert, sieht es garnicht 
so schlimm aus ..hehehe ;-)

Ich kenne das auch, daß der Chef Leute rausgeworfen hatte, nachdem sie 
ihn mehr als 2 Jahre lang Geld gekostet hatten und kein Ergebnis rumkam. 
Und das in einer weitaus kleineren Firma als bei deinen rund 1000 MA. 
Versuche mal, dir vorzustellen, wie sowas bei Firmengrößen unter 30 MA 
aussieht.

Aber Fälle solcher Art gibt's immer wieder und offenbar überall. 
Allerdings sehe ich es durchaus, daß Backpfeifen es in größeren 
Unternehmen leichter haben, sich durchzumogeln, als in kleineren Firmen. 
Dort gibt es nämlich weniger Leute, auf die man die Schuld abwälzen kann 
und die Gesamt-Rückkopplung 
(Entwickeln->Fertigen->Verkaufen->Gehaltszahlung) ist weitaus kürzer und 
direkter.



und hier schreibt so ein Überflieger zum Thema USB:

Unfassbar schrieb:
> Auch hier brauche ich keine Logs. Es gibt einen Punkt im Programmcode,
> an dem der USB versagt. Breakpoints setzen, abfangen, Variableninhalte
> anschauen und Schlüsse ziehen. Ggf. zweimal wiederholen und man hat den
> Problemmacher identifiziert.

Kopfschütteln meinerseits über solche Worte. Aber du Unfassbarer hast ja 
schon weiter oben mit "Bullshit" und dergleichen herumgeworfen.

Aber vielleicht bist du ja der Superguru. Also schreib doch mal meinen 
USB-VCP-Treiber für die STM32F103xx oder dessen von anderen gemachte 
Version für die STM32F3xx um auf den STM32F105. Das sollte für so einen 
großartigen Kerl wie dich doch ein Klacks sein. Breakpoints setzen, 
abfangen, zweimal wiederholen - und der Rest des Forums wird dir 
DANKBAR sein für einen weiteren gut benutzbaren USB-VCP Treiber.

Mach mal.

W.S.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

W.S. schrieb:
> Also schreib doch mal meinen
> USB-VCP-Treiber für die STM32F103xx oder dessen von anderen gemachte
> Version für die STM32F3xx um auf den STM32F105.

Du bist immer noch so lernresistent wie eh und je.
Der F105 hat einen völlig anderen USB als der F103.
Das habe ich dir in einem anderen Thread aber schon geschrieben!
Für den USB OTG darf man den komplett neu schreiben.

von W.S. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Leider habe ich keinen Schimmer woran das liegen könnte.

Ja. Soviel zum Thema Debuggen. Du hat also einen ST-Link, über den du 
zwar (wie du annimmst) den Maschinencode in den µC hineinbekommst, aber 
den Debugger kriegst du trotzdem nicht gestartet.

Unschöne Situation, gelle?

Hast du einen Oszi? Wenn ja, dann schau dir damit die diversen Signale 
an: also Takt, Portpins usw. - vielleicht kann man dort ja etwa 
Wichtiges sehen.

Ich würde an deiner Stelle zuerst mal den Systemtakt an ein Portpin 
herausführen. Bei den STM32 gibt es mE dafür das Signal MCO. Damit 
kannst du wenigstens sehen, ob du überhaupt einen Systemtakt hast.

Oder vielleicht klebt dein µC in irgend einem Fault und kommt da trotz 
SWD nicht heraus? Vermutungen solcher Art gibt es zuhauf. Wenn garnichts 
geht, dann kommt leicht Panik auf - bis hin zu der Überlegung, ob man 
den Chip demoliert haben könnte...

W.S.

von W.S. (Gast)


Lesenswert?

Mw E. schrieb:
> Für den USB OTG darf man den komplett neu schreiben.

Exakt.
Und genau DAS war mein obiger Vorschlag.
Du solltest verstehendes lesen lernen, mein Lieber.

Einen Vorteil hat das Ganze: Es reicht aus, ein Manual zu lesen und 
nicht zwei lesen zu müssen. Sollte dir entgegen kommen.

W.S.

von Johannes S. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Der ST-Link kann sich ja scheinbar verbinden, sonst würde er das
> Programm ja nicht drauf gespielt kriegen, also kann ich das ganze nicht
> so wirklich nachvollziehen.

Eventuell ist die STLink Firmware veraltet, hast du mal ein Update im 
STUtility probiert?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

W.S. schrieb:
> Exakt.
> Und genau DAS war mein obiger Vorschlag.
> Du solltest verstehendes lesen lernen, mein Lieber.

Ich hab dich schon verstanden.
Du willst ihm was schwereres aufzwingen als du geschafft hast.

von Ghostrider1911 (Gast)


Lesenswert?

@Johannes S.

Ja ein Update der Firmware habe ich bereits gemacht, das war laut der 
CubeIDE auch notwendig.

Dennoch tut sich jetzt nicht mehr als vorher.

Gibt es irgendwelche wichtigen Einstellungen die ich noch machen muss?

von Stefan F. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Danke für die Antwort! Das Pinout von PA13/14 habe ich nicht geändert.

Cube MX deaktiviert SWD standardmäßig.

Für den Anfang würde ich empfehlen, auf Cube MX und HAL zu verzichten, 
um die Hardware und das Referenzhandbuch besser kennen zu lernen. Danach 
wird es Dir sehr viel leichter fallen, die HAL richtig zu benutzen.

Wir vertiefen dieses Thema besser in einem neuen Thread, dann müssen wir 
uns nicht ständig unter den Hitzköpfen weg ducken.

von Compix12 (Gast)


Lesenswert?

Ich konnte mich nicht mal dazu durchdringen HAL zu lernen. Immer wieder 
mal angeschaut und jedes mal einfach nur den Kopf geschüttelt. Viel zu 
komplex, viel zu wenig Lernmaterial bzw. Lernmaterial dass sich an 
Experten richtet.
Und dann soll man damit rechnen dass das Zeug in paar Jahren durch eine 
andere lib ersetzt werden kann.

Boa ne... wenn man nicht gezwungen ist bloß weg damit :D

Man sollte das wirklich nicht unterschätzen, es kostet recht viel 
Lebenszeit sich in diesen Zeug einzuarbeiten. Und es kann in paar Jahren 
auch schon im Müll landen. Und ich glaube das machen nur wenige Menschen 
aus Spaß und Hobby.

Wer so was annehmbar findet der hat schon eine Grundlage von Jahren sich 
erarbeitet. Das ist meiner Meinung nach nichts für den typischen Arduino 
Entwickler.

von Ghostrider1911 (Gast)


Lesenswert?

Danke an Stefan frings für den Tipp das man zuerst das Debuggen 
aktivieren muss!

Für alle hier die das durch google finden:
Ihr müsste in der STM32CubeMX ansicht (in der .ioc Datei im Project 
Explorer) unter Pinout & Configuration bei System Core unter SYS , Debug 
auf Serial Wire umstellen, dann klappt das!

Für mich ein absolutes Rätsel warum das nicht standartmäßig auf den Wert 
gestellt ist, vorallem weil in den Tutorials die ich bis jetzt gelesen 
habe, das nie in einem Wort erwähnt wird. (Ich habe ein neues Projekt 
erstellt und da direkt das Nucleo Board ausgewählt)

Naja, Einsteigerfreundlich ist das ganze überhaupt nicht, soviel hab ich 
schon gemerkt mittlerweile. Ich hoffe nur das wird besser wenn ich mich 
ein bisschen damit beschäftigt habe. Ob ich das HAL nun nutzen werde 
oder nicht? Puh, die Meinungen diesbezüglich sind ja sehr verschieden. 
Muss ich mir noch genauer anschauen. Für den Anfang werde ich mich durch 
ein paar Tutorials hangeln.

Was ich auch probiert habe: So flashen wie Stefan Frings in seiner 
Anleitung "Einblick in die moderne Elektronik ohne viel Theorie" 
geschrieben hat, sprich über Serial. Aber das ist so umständlich und 
dauert ewig, da finde ich im Vergleich das Programmieren über ISP bei 
den 8bit Atmel Controllern, oder auch den Arduino Bootloader über UART 
wesentlich besser. So kommt für mich eigentlich nur flashen und debuggen 
per ST-Link in Frage, oder eventuell auch J-Link (später). Aber das ist 
denke ich für den Anfang egal.

Ich denke die jenigen die hier schreiben "Das ist nix für Arduino 
Bastler" haben warscheinlich Recht, dennoch werde ich das ganze jetzt 
nicht so schnell wieder verwerfen und mich trotzdem damit beschäftigen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Ghostrider1911 schrieb:
> Für mich ein absolutes Rätsel warum das nicht standartmäßig auf den Wert
> gestellt ist

In Hardware nach dem Reset ist der SWD auch aktiv.
Das ist in den Defaultwerten der PORTA GPIO Register so vorgesehen.
Also die HAL (der vom MX erzeugte Code) schaltet das dann aktiv aus.

Da warten bei der HAL noch mehr solche Fallstricke ;)
Daher stimme ich da stefans Vorschlag voll zu.
Er hat da auch auf seiner Webseite viel dazu geschrieben: 
http://stefanfrings.de/stm32/
Aber die haste ja eh schon gefunden ;)

Den CubeMX kannste dazu nutzen um zu gucken welche Peripherie an welchen 
Pins rausguckt.
Denn da gibts durchaus mehrere Möglichkeiten.

Wenn Fragen aufkommen zur Peripherie auf Registerebene biste bei mir 
richtig.
Mit einem UART und Hello World kannste ja mal anfangen und dann gehts 
weiter.
Erst Polling, dann IRQ und wenn du willst DMA.

von Christopher J. (christopher_j23)


Lesenswert?

Ghostrider1911 schrieb:
> Naja, Einsteigerfreundlich ist das ganze überhaupt nicht, soviel hab ich
> schon gemerkt mittlerweile.

Na immerhin ;)

Man muss das auch nicht direkt in der .ioc abändern, sondern kann das 
direkt im Pinout konfigurieren. Was die Programmierer von ST sich dabei 
gedacht haben weiß kein Mensch.

Ich schließe mich daher Stefan und fritzler an und schlage vor, erstmal 
ohne HAL einzusteigen. Grundsätzlich würde ich einem Einsteiger ein 
F072-Nucleo empfehlen und dann dazu dieses Tutorial (was auch auf 
Stefans Seite verlinkt ist): http://www.pomad.fr/node/5

Wenn du das Schritt für Schritt durcharbeitest (und nebenbei immer 
wieder mal ins Reference Manual schaust), weißt du nachher schon 
ziemlich gut über die STM32 Bescheid. Für die F0- und die L0-Serie gibt 
es direkt von ST auch die sogenannten "Snippets". Das ist ordentlich 
kommentierter Beispielcode für die jeweilige Peripherie, der nur mit den 
Registern arbeitet.

Wenn du jetzt keine Lust hast gleich das nächste Board zu bestellen und 
das F103 in die Ecke zu werfen, dann kannst du natürlich auch versuchen 
das Tutorial mit Hilfe des Refman mit dem F103 durchzuarbeiten aber da 
musst du dann halt aufpassen, weil sich die Peripherie des F103 in 
mancherlei Hinsicht eben doch vom F072 unterscheidet. Genauer gesagt ist 
die Peripherie der F0-Serie besser, weil neuer, d.h. alte Hardwarebugs 
wurden behoben (z.B. I2C beim F1).

Wünsche dir wie auch immer viel Erfolg.

: Bearbeitet durch User
von Unfassbar (Gast)


Lesenswert?

W.S. schrieb:
> Mach mal.

Um dir irgendwas zu beweisen? Kein Interesse. Vielleicht, wenn ichs mal 
benötige.

von M. K. (sylaina)


Lesenswert?

Ghostrider1911 schrieb:
> Ich denke die jenigen die hier schreiben "Das ist nix für Arduino
> Bastler" haben warscheinlich Recht, dennoch werde ich das ganze jetzt
> nicht so schnell wieder verwerfen und mich trotzdem damit beschäftigen

Ich denke, das ist nicht verkehrt sich so etwas auch mal anzusehen. 
Diejenigen, die schreiben, dass das nix für Arduino-Baster ist, 
pauschalisieren mir ja zu viel, es kommt halt immer auf den Bastler an.

von Ghostrider1911 (Gast)


Lesenswert?

Guten Morgen miteinander!

Scheinbar war es ein Irrglaube, das die HAL ähnlich zu den Libraries 
beim Arduino funktioniert und einiges erleichtert.

Ich werde mir nun auch noch die Atollic True Studio IDE besorgen und 
nach dem Tutorial von PoMAD vorgehen. (Oder die STM32Cube ohne MX 
nutzen, was ja auch funktionieren sollte).

Ich werds nun mal mit dem 103RB probieren, für Projekte würde ich 
schließlich auch gerne die F103 nutzen, weil die eben sehr günstig zu 
bekommen sind. (Blackpill z.B.)

von Cyblord -. (cyblord)


Lesenswert?

Ghostrider1911 schrieb:
> Guten Morgen miteinander!
>
> Scheinbar war es ein Irrglaube, das die HAL ähnlich zu den Libraries
> beim Arduino funktioniert und einiges erleichtert.

Natürlich erleichtern HAL (und auch StdPeriphLib) bestimmte Dinge. Nur 
das ganze mit Arduino zu vergleichen ist halt Unsinn.
Es scheint Arduino Nutzer sind bereits zu verdorben um nochmal die Kurve 
hin zu irgendwas zu bekommen.

> Ich werde mir nun auch noch die Atollic True Studio IDE besorgen und
> nach dem Tutorial von PoMAD vorgehen. (Oder die STM32Cube ohne MX
> nutzen, was ja auch funktionieren sollte).

Als ob die IDE irgendwas damit zu tun hat.

von F. F. (foldi)


Lesenswert?

Cyblord -. schrieb:
> Es scheint Arduino Nutzer sind bereits zu verdorben um nochmal die Kurve
> hin zu irgendwas zu bekommen.

Sei doch nicht so hart!

Manche brauchen einige Zeit (daher auch oft die teils so naiv anmutenden 
Kommentare) und anderen reicht es eben was sie damit erreichen können.

So viele Menschen fahren Auto, aber außer Ölstand checken (nicht einmal 
das können alle) fahren sie eben nur.
Hand hoch, wer schon mal eine Kopfdichtung an seinem Auto gemacht hat.
Gut, mache ich auch nicht gerne, aber wenn es sein musste, dann schon.
Beruflich habe ich das schon oft gemacht. Genau wie du "in den 
Eingeweiden des Controllers" rum gräbst.
Es müssen doch nicht alle Profis werden. Und schön, dass sie überhaupt 
die Möglichkeiten haben, im gewissen Rahmen, mit Arduino ihre eigenen 
Projekte umzusetzen.

von vn nn (Gast)


Lesenswert?

Unfassbar schrieb:
> W.S. schrieb:
>> Für ganz gewöhnliche Projekte braucht man fast immer keinen Debugger,
>> sofern man systematisch planen und programmieren kann.
>
> Dann haben wir hier einen Überflieger der Kategorie "Ich mache keine
> Fehler". Kannst stolz auf dich sein, jedoch machen 99% der anderen
> Programmierer während der Umsetzung sogenannte Schusselfehler, die du
> selbstverständlich nicht machst. Und auch ich mache diese, obwohl ich
> gut plane (was ich zumindest von mir behaupte).

Offensichtlich hast du noch nie von Unit Tests gehört. 70% der 
Schusselfehler werfen mir damit einen Fehler in der IDE, bevor ich das 
Programm einmal aufs Board laden musste.
25% werden über Datenlogs gefunden. Natürlich nicht über manuell 
interpretierte 2 Millionen Zeilen UART-Ausgabe, sondern logischerweise 
per Script aufgezeichnet und ausgewertet, über UART, USB oder Ethernet, 
was halt am Board verfügbar ist. Werte lassen sich dann auch toll als 
zeitlicher Verlauf darstellen (z.B. interessant für regelungstechnische 
Systeme).
Für 5% muss tatsächlich der Debugger herhalten. das ist üblicherweise 
die Kategorie "Datenblatt falsch interpretiert".

Aber manche glauben in ihrer Hybris halt, die Welt erfunden zu haben.

Beitrag #6130489 wurde von einem Moderator gelöscht.
Beitrag #6130499 wurde von einem Moderator gelöscht.
Beitrag #6130507 wurde von einem Moderator gelöscht.
von W.S. (Gast)


Lesenswert?

Mw E. schrieb:
> Du willst ihm was schwereres aufzwingen als du geschafft hast.

Aufzwingen??? Nee.

Hier wird niemand gezwungen. Aber wenn jemand meint, einen Chip 
verwenden zu wollen, für den es eben noch keinen Treiber von mir gibt, 
dann muß er eben sich selbst hinsetzen und es tun. Das ist die eigene 
Wahl desjenigen, der es haben will.

Und ob das schwerer wird, einen OTG nur als Device verwenden zu wollen 
als ein reines Device, sei mal dahingestellt. Ich brauch's bislang nicht 
und hab mich deshalb auch nicht damit befaßt.

W.S.

Beitrag #6130516 wurde von einem Moderator gelöscht.
von Ghostrider1911 (Gast)


Lesenswert?

Sicherlich werde ich einige Zeit brauchen um die Controller auch nur 
ansatzweise zu beherrschen, wenn es so einfach währe gäbe es keine Leute 
die das den ganzen Tag beruflich machen...

Für mich wird es immer nur ein Hobby bleiben.
Ausdauer ist schon eine meiner Stärken, daher bin ich da guter Dinge.

Das die IDE an sich nichts mit HAL, PSL etc. zu tun hat ist mir schon 
bewusst. Dennoch werde ich einige IDE´s testen bevor ich mich festlege.

Generell schadet es warscheinlich nicht die gleiche IDE wie im Tutorial 
zu nutzen. Auch wenn ich schon gemerkt habe das sich die IDE´s sehr 
ähneln, da sie alle auf Eclipse basieren ( zumindest die IDE´s für den 
STM32) Atmel Studio ist ja an Visual Studio angelehnt.

Meiner Meinung nach sollten einige Leute hier eher auf privater Ebene 
diskutieren anstatt das hier öffentlich zu tun.

Leider ist genau das der Grund warum man durch "googeln" nur sehr zäh an 
Informationen kommt, vorallem in Foren.

In diesem Sinne einen schönen Tag! ;)

von Unfassbar (Gast)


Lesenswert?

vn nn schrieb im Beitrag #6130516:
> Meinst du nicht, ein konstruktives, themenbezogenes Posting wäre
> sinnvoller als irgendwelche stumpfsinnigen, inhaltsleeren
> Unterstellungen, weil du sonst nix beitragen kannst?

Ich habe meine Meinung kund getan, reicht das nicht? Auch mit unitTests 
etc. kannst du nicht alles abfangen und simulieren und am Ende musst du 
einfach mal reinschauen - wie du schon geschrieben hast meinetwegen nur 
in 5% der Fälle - mit dem Debugger.

Aber zu behaupten, dass man für ganz gewöhnliche Projekte keinen 
Hardwaredebugger benötigt stimmt einfach nicht. Stattdessen wird dazu 
geraten, sich riesige Datenmengen über eine Uart augeben zu lassen 
facepalm. Noch mehr Retro geht kaum. Während er dann noch seine 
Debugausgabe programmiert, habe ich den Fehler schopn gefunden und 
beseitigt.

W.S. schrieb:
> Für ganz gewöhnliche Projekte braucht man fast immer keinen Debugger,
> sofern man systematisch planen und programmieren kann.

von vn nn (Gast)


Lesenswert?

Unfassbar schrieb:
> Ich habe meine Meinung kund getan, reicht das nicht?

Nein, das ändert nämlich nix daran, dass du den Thread mit deinen 
billigen Unterstellungen (die du dann ja ohnehin nicht näher ausführen 
kannst) zumüllst.

Unfassbar schrieb:
> uch mit unitTests
> etc. kannst du nicht alles abfangen und simulieren und am Ende musst du
> einfach mal reinschauen - wie du schon geschrieben hast meinetwegen nur
> in 5% der Fälle - mit dem Debugger.

Eh. Und nu?

Unfassbar schrieb:
> Aber zu behaupten, dass man für ganz gewöhnliche Projekte keinen
> Hardwaredebugger benötigt stimmt einfach nicht.

Für 99% der eher simplen Hobbyprojekte stimmt es definitiv.
Aber du kannst sicher Beispiele für die unmengen an Fehlern aufzählen, 
die man nur als Hobbyist findet.
Abgesehen davon hat er geschrieben "fast nicht". Aber du unterstellst 
halt gern Dinge, was?

Unfassbar schrieb:
> Stattdessen wird dazu
> geraten, sich riesige Datenmengen über eine Uart augeben zu lassen
> facepalm. Noch mehr Retro geht kaum. Während er dann noch seine
> Debugausgabe programmiert, habe ich den Fehler schopn gefunden und
> beseitigt.

Während du noch verzweifelt durchstepst, hat jeder andere schon 5 
Unittests geschrieben. Allein in der Zeit, die das Binary in den Chip 
geladen wird, ist der Test schon durch.
Und eine Debugausgabe ist nun wirklich kein Hexenwerk. Aber klar, wenn 
du für jede Lapalie den Debugger anwerfen musst, weil dir vernünftige 
Prozesse zum finden von Fehlern unbekannt sind...


Tu der Welt einen Gefallen, und lass den Thread in Ruhe. Lad deinen Müll 
anderswo ab.

von vn nn (Gast)


Lesenswert?

vn nn schrieb:
> die man nur als Hobbyist findet.

Die man nur per Debugger findet, soll das natürlich heißen.

von W.S. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Naja, Einsteigerfreundlich ist das ganze überhaupt nicht, soviel hab ich
> schon gemerkt mittlerweile. Ich hoffe nur das wird besser wenn ich mich
> ein bisschen damit beschäftigt habe.

Das alles hängt sehr davon ab, mit was für einer Erwartung du dich 
einem Verwenden von Mikrocontrollern ohne Arduino zuwendest. Obendrein 
hängt es auch von deinen Vorkenntnissen und Fertigkeiten ab.

Im Grunde hast du die Entscheidung zwischen zwei Wegen:
a) wie Arduino, wo du also eine vorgefertigte Infrastruktur benutzen 
willst, dabei aber dann eben beschränkt bist auf das, was du an 
Infrastruktur vorfindest.

b) deinen eigenen Weg gehen, den du dir aber selbst bahnen mußt. Dabei 
bist du dann nicht beschränkt auf irgend etwas Vorgefertigtes, aber es 
macht am Anfang eben ein wenig mehr Mühe. Später dann nicht mehr, da hat 
man dann sowohl Erfahrungen als auch einen Sack voll eigener Software, 
die (wenn man's richtig gemacht hat) zu großen Teilen 
plattformunabhängig ist und einem das Anwerfen eines neuen Chips gar 
sehr erleichtert.

W.S.

Beitrag #6130589 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Scheinbar war es ein Irrglaube, das die HAL ähnlich zu den Libraries
> beim Arduino funktioniert und einiges erleichtert.

Aus meiner Sicht vereinfacht die HAL nicht viel mehr als die 
Taktkonfiguration. Aber die kann man sich auch schnell aus einer 
Kopiervorlage ableiten.

Die HAL macht aber richtig Sinn, wenn du den gleichen Stück Code auf 
unterschiedlichen STM Controller benutzen willst. Denn sie abstrahier 
die kleinen feinen Unterschiede soweit es geht.

Das Arduino Framework ist einfacher, weil es die Anwendungsmöglichkeiten 
der Peripherie einschränkt. Weniger Flexibilität = weniger Doku = 
weniger Dinge die man missverstehen kann. Mit Arduino kannst du zum 
Beispiel keinen BLDC Motor ansteuern (jedenfalls nicht ohne Klimmzüge am 
Framework vorbei).

Die Nutzung der HAL entbindet einen jedenfalls nicht davon, das 
Referenzhandbuch zu verstehen. Du hast dann also zwei dicke Bücher zu 
lesen: erst das Referenzhandbuch, dann die Doku zur HAL, denn die Doku 
der HAL baut darauf auf.

Bei Arduino ist das anders, da hat man sich sehr darum bemüht, dass die 
Anwender meistens ausschließlich mit der Arduino Doku arbeiten können. 
Sogar einige Grundlagen von C/C++ sind dort erneut dokumentiert worden. 
Aber wenn es mal nicht wie erwartet klappt (z.B. 3,3V mit 20 MHz), dann 
kommt üblicherweise und zurecht die Antwort: RTFM.

von Ghostrider1911 (Gast)


Lesenswert?

Für den Anfang werde ich versuchen mich auf einen µC zu beschränken, und 
zwar den STM32F103RB (bzw. STM32F103C8)

Ich denke den Controller kann ich nicht an seine Grenzen bringen, der 
dürfte weitaus reichen für meine Zwecke.

Ausserdem gibt es aus China genügend Boards die diesen nutzen, was 
natürlich von Vorteil ist. Ich baue mir gerne immer kleine Testboards 
zum einfacheren Basteln. Ich denke das werde ich hier auch machen.

Erstmal werde ich mich ein wenig durch die verschiedenen IDE´s probieren 
und schauen welche mir am besten zusagt. Danach werde ich ein paar 
Beispiele testen und dann nach der Anleitung anfangen zu basteln ;)

Tatsächlich findet man viele Sachen in Google über die STM32, auf 
jedenfall viel mehr als über die SAMD Controller von Atmel.

Ich sag hier mal danke an Stefan Frings der wie es mir scheint vielen 
STM32 Anfängern ein bisschen auf die Füße hilft. (Ich habe andere 
Beiträge hier von ihm gelesen)

von Cyblord -. (cyblord)


Lesenswert?

Ghostrider1911 schrieb:
> Ausserdem gibt es aus China genügend Boards die diesen nutzen, was
> natürlich von Vorteil ist. Ich baue mir gerne immer kleine Testboards
> zum einfacheren Basteln. Ich denke das werde ich hier auch machen.

Ich nutze gerne STM32 im LQFP32 Gehäuse. Grund: Von Hand noch gut 
lötbar. Ich setze die Controller nämlich gerne auf eigenen Boards ein, 
die genau für die jeweilige Anwendung erstellt wurden. Mit Eval, Test 
oder sonstigen Boards kann ich nichts anfangen.

Leider gibt es nicht gar so viele in diesem Gehäuse. Momentan setze ich 
da auf STM32F04 und F05. Zwar eine Kategorie unter den F1, aber für 
vieles ausreichend.

von Zeno (Gast)


Lesenswert?

M. K. schrieb:
> Ist dann aber doch sicher ne wesentlich größere Sache. Ansonsten könnte
> ich mir das bei weitem nicht vorstellen. Ich bin nur beim Mittelstand
> aber bei uns, rund 1000 Mitarbeiter, wäre das ein absolutes NoGo an
> einer Neuimplementierung 6 Jahre lang dran rumzufrickeln.

Naja es ist nicht trivial, aber wenn man sich mit der Problematik 
beschäftigt, dann ist es eigentlich nicht so schwer.
Ich habe an dem Programm ca. 3 Mannjahre gearbeitet. Das komplette 
Programmpaket hat ca. 400000 Zeilen Code die ich geschrieben habe. Damit 
decke ich 100% der gegenwärtigen Anforderungen ab. Mein Vorteil ist halt 
das ich das Programm selbst anwende und daher weis was gebraucht wird. 
Mit anderen Worten ich weis genau worum es geht. Ich habe auch auf die 
User des Programms gehört und mich bemüht es so anwenderfreundlich zu 
gestalten.
Das neue Programm hat nur ca. 15% der Funktionalitäten von meinem 
Programm und wird halt von den meisten Anwendern abgelehnt, weil die 
Bedienung nicht zu unserem Arbeitsworkflow passt.

Mein Programm ist mit Delphi geschrieben, aber unsere Chefs sind halt 
der Meinung das es in C# sein müsse.

von Frank (Gast)


Lesenswert?

von Ghostrider1911 (Gast)
03.02.2020 10:16

>Guten Morgen miteinander!

>Scheinbar war es ein Irrglaube, das die HAL ähnlich zu den Libraries
>beim Arduino funktioniert und einiges erleichtert.

>Ich werde mir nun auch noch die Atollic True Studio IDE besorgen und
>nach dem Tutorial von PoMAD vorgehen. (Oder die STM32Cube ohne MX
>nutzen, was ja auch funktionieren sollte).

Wenn Du etwas Erfahrung mit STM32Cube gesammelt hast, kannst Du 
eventuell zum STM32 Repository beitragen:

https://github.com/stm32duino/Arduino_Core_STM32

Die erste Schwierigkeit dürfte sein, das ganze Repository in STM-Cube zu 
importieren. Ich gehe davon aus, dass Frederik Pilon von STM, der die 
Entwicklung dort voran treibt mit STM-Cube entwickelt.

von Johannes S. (Gast)


Lesenswert?

Ghostrider1911 schrieb:
> Für den Anfang werde ich versuchen mich auf einen µC zu beschränken, und
> zwar den STM32F103RB (bzw. STM32F103C8)
>
> Ich denke den Controller kann ich nicht an seine Grenzen bringen, der
> dürfte weitaus reichen für meine Zwecke.

Naja, das Schöne an den CM ist ja das die eine große Bandbreite 
abdecken. Wenn man Ethernet oder Grafik haben möchte ist der F103 nicht 
ideal, für ein paar € mehr gibts dann aber einen F407. Nochmal 5 € drauf 
für einen Ethernet PHY und 11 Dupont Strippen und du hast einen 
schnellen Ethernet Controller.

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.