Forum: Mikrocontroller und Digitale Elektronik Raspberry pi & c++ lernen


von Dobby (Gast)


Lesenswert?

Grüß euch!

Falls ich lieber ins pc Forum sollte, verschiebt mich bitte.

Ich programmiere bisher in c, ausschließlich microcontroller. Ok vor 
wirklich vielen Jahren hatte ich mal eine c++ Schulung aber da würde ich 
nicht mal von realen Grundkenntnissen sprechen. Grundhahnung sag ich 
mal.

Raspberry hat mir python gezeigt und das benutze ich inzwischen 
eigentlich nur statt matlab.
Ich habe jetzt vor, mich in c++ hinein zu arbeiten. Aber nicht furz 
trocken am pc sondern schon am raspberry Pi. Etwas zusatzhardware soll 
auch dazu. Dafür suche ich hilfreiche Materialien.

Für c++ generell habe ich das Buch c++ primer als empfehlenswert 
identifiziert. Ich bin aber nicht der weltweit größte checker, so dass 
ich die Brücke zum raspberry Pi benötige. Und zwar am besten 
exemplarisch. Könnt ihr mir da irgendwelche Empfehlungen machen über das 
o.g. Buch hinaus? Beim raspberry werden sich Performance Sünden 
vermutlich bemerkbarer machen als am pc. Die uc artige Hardware ist dann 
noch da und generell habe ich von Qt und leider auch linux nochnicht so 
viel Plan.

Nein ich versuche wirklich nicht zu Trollen....könnte mir denken dass 
das so aufgefasst werden kann. Ich hoffe mal es gibt Gleichgesinnte die 
mein Anliegen verstehen und am besten helfen können.

Ciao

:
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Welchen Vorteil versprichst du dir von c++ gegenüber c am Raspberry? Ich 
muss sagen das seitdem es andere gute Objektorientierte 
Programmiersprachen gibt, reizt mich c++ so überhaupt nicht mehr, schon 
gar nicht ums einfach nur zu lernen. Objektorientierung hast du auch in 
Python, Java oder C#, außer wenn du eventuell was mit Qt machen willst, 
würde ich heute nicht mehr freiwillig c++ lernen.

: Bearbeitet durch User
von Dobby (Gast)


Lesenswert?

Hi,

Ich würde das gerne auch lernen. Ich sehe darin eine verwandte Sprache, 
mit der ich auch mal in modernere Software Design Techniken rein kommen 
kann.
Und die Performance ist doch bei c++ eigentlich immer noch gut.

von Johannes S. (Gast)


Lesenswert?

C/C++ auf dem RPi ist eigentlich ziemlich einfach:
VisualStudio Code installieren, ein hello world in test.cpp speichern, 
F5 drücken und auswählen womit es kompiliert werden soll.
Das geht auch bequem remote von einem anderen PC aus: auf dem PC VSCode 
installieren, remote ssh extension installieren. Wenn man sich mit dem 
RPi mit RemoteSSH verbindet, dann wird ein VSCode Server auf dem RPi 
installiert und man kann sofort remote editieren, kompilieren und 
debuggen.

Aber C++ auf µC ist genauso einfach.

von A. N. (bastelmaniac)


Lesenswert?

Ich stimme tim_taylor zu.

Wenn es doch unbedingt C++ sein soll, dann achte darauf, dass die 
Lehrmaterialien modern sind und mindestens C++17 Niveau haben. Gibt 
genug (gebrauchte, Bibliothek etc.) Lehrbücher die noch so etwa auf 
C++98 Niveau sind, also Asbach Uralt.

Ansonsten verbreitet sich Rust immer mehr im vorherigem C++ Umfeld.

von Sheeva P. (sheevaplug)


Lesenswert?

A. N. schrieb:
> Ich stimme tim_taylor zu.
>
> Wenn es doch unbedingt C++ sein soll, dann achte darauf, dass die
> Lehrmaterialien modern sind und mindestens C++17 Niveau haben. Gibt
> genug (gebrauchte, Bibliothek etc.) Lehrbücher die noch so etwa auf
> C++98 Niveau sind, also Asbach Uralt.
>
> Ansonsten verbreitet sich Rust immer mehr im vorherigem C++ Umfeld.

Das ist schon lustig: da kommt jemand und sagt, daß er gerne C++ lernen 
will, und schon wird ihm in zwei von drei Antworten empfohlen, doch 
lieber etwas vollkommen anderes zu machen. Klassischer Fall von Thema 
verfehlt, würde ich sagen.

Lieber TO, es gibt unter C++ keine RasPi-spezifischen Sachen: einfach 
nur das Metapackage "build-essential" installieren ("apt-get install 
build-essential") und schon stehen Dir der C-Compiler gcc und der 
C++-Compiler g++ zur Verfügung, wie unter so ziemlich allen 
debian-basierten Linux-Systemen auch. Dazu noch einen anständigen Editor 
-- und ja: für den Anfang würde ich eher einen Editor als eine IDE 
empfehlen, das erleichtert und verbessert das Verständnis der 
Zusammenhänge -- und schon kann es losgehen.

Zu den sehr angenehmen Eigenschaften von C++ gehört es übrigens, daß 
sich damit nicht nur die C++-eigene Standard Template Library benutzen 
läßt, sondern auch eine Unmenge weiterer C- und C++-Bibliotheken. Großer 
Beliebtheit erfreuen sich beispielsweise die Boost-Bibliotheken [1], die 
sehr umfangreiche Funktionen zur Verfügung stellen und stetig 
weitergepflegt werden. Gleichzeitig kannst Du aber beispielsweise zum 
Zugriff auf die RasPi-Hardware die GPIOs natürlich ohne jede 
Einschränkung auf die etablierten C-Libraries zurückgreifen, 
GUI-Bibliotheken wie etwa Qt oder auch Webframeworks wie Wt [2] 
benutzen, ganz wie Du magst.


[1] https://www.boost.org/
[2] https://www.webtoolkit.eu/wt

von Dobby (Gast)


Lesenswert?

Hiho,

Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen, 
aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich 
will z. B. den spi benutzen und Blöcke per dma zu einem Display 
schicken.
Das ist doch zielhardware spezifisch oder wie stelle ich mir das am 
besten vor? Hat einer einen link parat für so was?

Ansonsten bin ich generell mit dem c++ Primer gut beraten außer das das 
halt nur c++11 bietet?

von Johannes S. (Gast)


Lesenswert?

VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert. 
Man kann für den Anfang natürlich auch ein test.cpp in nano oder vi 
erstellen und einfach per g++ übersetzen (das müsste der Pi schon 
mitbringen). VSCode ist aber sowas wie ein Schweizer Messer für mich 
geworden und kann für viele Sprachen verwendet werden, oder um einfach 
git Repos zu verwalten wegen der mittlerweile sehr guten git 
Integration.

Für einen alten Teil meiner Heimautomatisierung habe ich ein RFM69 Modul 
am RPi, das hat auch ein SPI. Dafür hatte ich ein Program auf github 
gefunden, das benutzt die wiringPi Lib. Der Autor der Lib wurde vor ein 
paar Jahren sauer gefahren und hat den Support eingestellt, aber der 
vorhandene Code funktioniert immer noch. Vielleicht gibt es da was 
Neueres, würde mich auch interessieren.
Das Programm hatte ich mal mit Eclipse cross compiliert, aber die 
Installation und die Bedienung ist ein K(r)ampf gegenüber VSCode!

Und die Online Compiler sind mittlerweile auch Top, können aber 
natürlich die Pi HW ansteuern :)

von Klaus W. (mfgkw)


Lesenswert?

Dobby schrieb:
> Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen,
> aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich
> will z. B. den spi benutzen und Blöcke per dma zu einem Display
> schicken.

Rein theoretisch könnte man einen Raspberry pi oder sowas ähnliches auch 
ohne Betriebssystem nehmen und alles selbst bauen.
Das wirst du aber nicht wollen.

Stattdessen wirst du den unter Linux laufen lassen wollen.
Dann siehst du von irgendwelchen Geräten keine Adressen oder sowas, 
sondern hast für SPI bspw. einen Treiber, der dir ein device zur 
Verfügung stellt. Das öffnet man mit seinem Namen im Dateisystem; im 
einfachsten Fall liest und schreibt man dadrin rum und konfiguriert 
vielleichtn noch ein bißchen..

Also musst du nur nach Doku und/oder Beispielen für das jeweilige device 
suchen.

Etwas anders sieht es natürlich aus, wenn du selbst Treiber für sowas 
bauen willst. Das wird aber so schnell nicht der Fall sein, vermute ich.

von Nur_ein_Typ (Gast)


Lesenswert?

Johannes S. schrieb:
> VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert.

Da muß ich mich Sheevas Empfehlung anschließen, am Anfang ohne IDE zu 
arbeiten und zunächst nur einen Editor, den Compiler, und später ggf. 
etwas wie make oä. zu benutzen. IDEs sind ja in der Regel ohnehin nur 
Frontends für solche Tools, die womöglich zu einigen Features dieser 
Werkzeuge keinen Zugang bieten, und es ist schon durchaus sinnvoll zu 
lernen, was die Werkzeuge tatsächlich können.

> Man kann für den Anfang natürlich auch ein test.cpp in nano oder vi
> erstellen und einfach per g++ übersetzen (das müsste der Pi schon
> mitbringen). VSCode ist aber sowas wie ein Schweizer Messer für mich
> geworden und kann für viele Sprachen verwendet werden, oder um einfach
> git Repos zu verwalten wegen der mittlerweile sehr guten git
> Integration.

All das geht ganz wunderbar auch auf einer Kommandozeile, und uralte 
"Editoren" wie Emacs und vi konnten das schon, als es VSCode noch gar 
nicht gab. Auch die moderneren Alternativen wie Atom und Sublime können 
das natürlich mit links.

> Für einen alten Teil meiner Heimautomatisierung habe ich ein RFM69 Modul
> am RPi, das hat auch ein SPI. Dafür hatte ich ein Program auf github
> gefunden, das benutzt die wiringPi Lib. Der Autor der Lib wurde vor ein
> paar Jahren sauer gefahren und hat den Support eingestellt,

Die jüngste Änderung an WiringPi war erst letzten Monat [1], 
offensichtlich arbeiten also immer noch Leute an der Library.

[1] https://github.com/WiringPi/WiringPi

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Dobby schrieb:
> Ok vielleicht bin ich auch zu sehr in meiner bisherigen Welt gefangen,
> aber brauche ich vom raspberry pi nicht so was wie eine Address map? Ich
> will z. B. den spi benutzen und Blöcke per dma zu einem Display
> schicken.
> Das ist doch zielhardware spezifisch oder wie stelle ich mir das am
> besten vor? Hat einer einen link parat für so was?

Vielleicht solltest du dich zuvor erstmal mit Linux vertraut machen. Du 
bist auf dem Pi in der Regel nicht "bare metall" unterwegs, sondern 
gehst bei Hardwarezugriffen über den entsprechenden Triber des 
Betriebssystems. Das alles ist erstmal unabhängig von der später 
verwendeten Programmiersprache und unterscheidet sich um einiges von dem 
Arbeiten mit einem einfachen µC.

https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md#driver

von Johannes S. (Gast)


Lesenswert?

VSCode ist da immer noch ein einfacher Editor, verglichen mit Eclipse 
und CDT wo man gar nicht mehr sieht was abgeht. Zum Kompilieren gcc oder 
g++ oder make Aufruf in tasks.json eintragen und das ist eine 
transparente Vereinfachung. Für mehr Komfort gibt es cmake oder sonstige 
Unterstützung, aber man kann es trotzdem einfach halten.
Bei Fehler läuft ein vorkonfigurierter parser über den Output und 
liefert den Luxus das man mit einem Klick an der Fehlerstelle im 
Quellcode ist. Der Parser verwendet RegExp, kryptisch aber auch 
standard.
Ein gdb ist fürs debuggen ebenfalls vorkonfiguriert.

Nur_ein_Typ schrieb:
> Die jüngste Änderung an WiringPi war erst letzten Monat [1],
> offensichtlich arbeiten also immer noch Leute an der Library.

ok, nur nicht mehr der org Autor, was im ersten Satz mit 'unofficial 
fork' genannt wird. Aber das ist OSS, da kann jeder weiterentwickeln.

Beitrag #6727059 wurde von einem Moderator gelöscht.
Beitrag #6727151 wurde von einem Moderator gelöscht.
Beitrag #6727153 wurde von einem Moderator gelöscht.
Beitrag #6727154 wurde von einem Moderator gelöscht.
Beitrag #6727156 wurde von einem Moderator gelöscht.
Beitrag #6727167 wurde von einem Moderator gelöscht.
Beitrag #6727169 wurde von einem Moderator gelöscht.
von Rolf M. (rmagnus)


Lesenswert?

Johannes S. schrieb:
> VSCode war mal ein einfacher Editor, hat sich aber zur IDE gemausert.

Alternativ kann man auch VSCodium verwenden. Ist das gleiche, nur ohne 
die Microsoftsche Nachhausetelefonierfunktion.

Nur_ein_Typ schrieb:
> Da muß ich mich Sheevas Empfehlung anschließen, am Anfang ohne IDE zu
> arbeiten und zunächst nur einen Editor, den Compiler, und später ggf.
> etwas wie make oä. zu benutzen.

Heute ist da eher CMake angesagt. Selber Makefiles zu schreiben, macht 
man heute eigentlich kaum noch. Und CMake wird auch von sehr vielen IDEs 
und Editoren direkt unterstützt.

Moby schrieb im Beitrag #6727156:
> Der durchschnittliche C++ Programmierer wird immer mehr Hw-Ressourcen
> benötigen als der durchschnittliche C (oder gar Asm) Programmierer.

Wer hat dir denn den Quatsch erzählt?

von Klaus W. (mfgkw)


Lesenswert?

Rolf M. schrieb:
> ...
>
> Moby schrieb:
>> Der durchschnittliche C++ Programmierer wird immer mehr Hw-Ressourcen
>> benötigen als der durchschnittliche C (oder gar Asm) Programmierer.
>
> Wer hat dir denn den Quatsch erzählt?

Was er vermutlich nicht meint, aber trotzdem so ist:
Rechner und auch kleine Rechnerchen werden für viele verschiedene Dinge 
benutzt. Das fängt an bei eher schlichten Spielereien wie LED blinken, 
oder wenn der Wasserpegel steigt dann abpumpen. Am anderen Ende ist es 
wesentlich komplexer mit allerlei Netzwerkkommunikation, 
Sicherheitsanforderungen, oder was man halt auf Tausenden Seiten an 
Anforderungen stellen kann, inkl. Testbarkeit, geregelte 
Entwicklungsbedingungen, Teamarbeit, Kombination verschiedener 
Zulieferer, Wiedervertbarkeit und anderen Randbedingungen.
Während man am einen Ende noch gut mit Assembler auskommt, braucht man 
auf dem Weg zum anderen Ende auch bessere Werkzeuge, um die Komplexität 
effizient in den Griff zu bekommen. Das kann dann bspw. über C zu C++ 
gehen, oder ganz anderen Umgebungen.

Insofern ist Assembler eher am unteren Ende, C++ eher am oberen zu 
finden.

Wenn C++ also im Schnitt für komplexere Projekte sinnvoll ist, wird der 
durchschnittliche C++-Entwickler natürlich auch mehr Resourcen brauchen 
- nicht wegen der Sprache, sondern weil er halt mehr macht als eine LED 
blinken zu lassen.

Wahrscheinlich aus Versehen ist der Satz damit wohl doch richtig im 
Wortlaut.

von Dobby (Gast)


Lesenswert?

>Oder ist deren Ersatz durch einen Raspi Ausdruck der Einsicht, daß es
>für C++ ein Hardware-Update braucht? 😀

Ich entnehme eurer Diskussion, dass das ein altes thema hier ist.... 
Aber so ist es.
In c fühle ich mich auf uc wohl und habe mich zu 80% auf einen 
Lösungsansatz eingegrooved. Sprich da weiß ich wie ich für mich die 
Software organisiere und Probleme löse.
Wenn ich in c++ reingucke, dass auch ohne Handbremse und vor allem ohne 
Damoklesschwert über mir. Für mich ist das nicht verwerflich.

Daher schiele ich auf den Raspi - das ist ja nun doch eher ein 
vollwertiger Computer mit angenehmen Zusatzfeatures.

von Nur_ein_Typ (Gast)


Lesenswert?

Dobby schrieb:
>>Oder ist deren Ersatz durch einen Raspi Ausdruck der Einsicht, daß es
>>für C++ ein Hardware-Update braucht? 😀
>
> Ich entnehme eurer Diskussion, dass das ein altes thema hier ist....

Du entnimmst richtig, und unser Mobby ist dabei seit Jahren der mit 
Abstand unsachlichste und fanatischste "Kommentator". Dabei hat er es 
mit einer bemerkenswerten Penetranz, gebetsmühlenhaften Wiederholungen 
von falschen, widerlegten Behauptungen und ausufernden unsachlichen 
Zerstörungen fremder Threads sogar geschafft, daß der hiesige Betreiber 
ihm ein Hausverbot ausgesprochen hat, das er, wie auch hier wieder, 
beharrlich ignoriert. Seit mittlerweile mehreren Jahren bombardiert er 
das Forum und seine Nutzer mit persönlichen Beleidigungen gegen den 
Betreiber und die Moderatoren, so daß mittlerweile eine Reihe von 
Überlegungen wie zum Beispiel diese [1] angestellt worden sind, wie man 
diesen... "Herrn" eliminieren könnte.

[1] Beitrag "Lästiger Dauerspammer."

> Aber so ist es.

Wie ist es? Daß C++ mehr Ressourcen benötigen würde? Diese Aussage ist 
in dieser Pauschalität leider nicht ganz richtig. Richtig ist, daß es 
davon abnängt welche Features von C++ genutzt werden. Klassen und 
Templates gibt es kostenlos, diese Features benötigen im Vergleich mit 
einer äquivalenten reinen C-Lösung überhaupt keine zusätzlichen 
Ressourcen, helfen aber ungemein dabei, den Sourcecode besser zu 
organisieren, Boilerplate und andere Wiederholungen zu vermeiden, und 
den Code lesbarer und übersichtlicher zu gestalten. Vererbung benötigt 
minimale Ressourcen für die Virtual Method Table (VMT) sowie beim Aufruf 
einer vererbten Methode ein paar wenige CPU-Ticks für den Lookup in der 
VMT. Exceptions dagegen sind relativ teuer und in stark limitierten 
Umgebungen tendenziell keine gute Idee, ähnliches gilt für die Standard 
Template Library (STL). Aber welche Features man nutzt und welche nicht, 
hängt natürlich sehr wesentlich von der Zielplattform und von dem 
konkreten Anwendungsfall ab -- wenn zum Beispiel so etwas wie USB, 
Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel kommen, 
wird Assembler schnell unbeherrschbar komplex und umfangreich, und C++ 
kann hier wesentlich helfen, die Komplexität zu beherrschen.

> Wenn ich in c++ reingucke, dass auch ohne Handbremse und vor allem ohne
> Damoklesschwert über mir. Für mich ist das nicht verwerflich.

Nein, ist es auch nicht. Letzten Endes ist so etwas ja immer eine 
ökonomische Betrachtung im Dreieck aus den Kosten für die 
Laufzeitumgebung, die Stückzahl und die Entwicklungszeit -- wobei 
möglicherweise noch einige weitere Randbedingungen berücksichtigt werden 
müssen, je nach Anwendungsfall.

> Daher schiele ich auf den Raspi - das ist ja nun doch eher ein
> vollwertiger Computer mit angenehmen Zusatzfeatures.

Richtig, und zwar mit allen Annehmlichkeiten und Unannehmlichkeiten, die 
damit einher gehen. Im Vergleich zu einem kleinen 8-Bit-Microcontroller, 
bei dem der Entwickler im Grunde genommen den "Betriebssystemkernel" für 
den Controller entwickelt und sich deswegen auf das Timing verlassen 
kann, ist das bei einem Raspi überlicherweise etwas anders, wenn man 
keine entsprechenden Vorkehrungen trifft, und solche Unterschiede muß 
der Entwickler berücksichtigen.

Insofern viel Spaß, Freude und Erfolg beim Erlernen von C++!

Beitrag #6727486 wurde von einem Moderator gelöscht.
von Johannes S. (Gast)


Lesenswert?

Moby schrieb im Beitrag #6727486:
>> USB, Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel
>> kommen
>
> kann man sich aber selbst dann noch mit angeflanschter,
> spezialisierterer Hardware für diese Zwecke behelfen.

klar, beim 8 Bitter muss man jedes Bit kennen, und für o.g. gibt man 
alles wieder aus der Hand? So black Boxes mit Eigenleben sind einfach 
nur ein Krampf. Auf einer MCU lässt sich alles bis ins kleinste Detail 
debuggen und Dank großer Community gibt es tolle Librarys zum kleinen 
Preis. Nur das Assembler nur zu sich selbst kompatibel ist und kaum eine 
große Lib in Asm populär ist.

Beitrag #6727569 wurde von einem Moderator gelöscht.
von Johannes S. (Gast)


Lesenswert?

Moby schrieb im Beitrag #6727569:
> Sicher. Aber will man das unbedingt immer oder will man sich nicht
> vielmehr auf Kernaufgaben konzentrieren?

Ich benutze den Debugger auch zum analysieren, ich weiß nicht immer 
sofort ob ich Funktionen richtig nutze  und oft auch aus Neugier zum 
Verständnis.

Moby schrieb im Beitrag #6727569:
> Man muss das passende in der Vielfalt überhaupt erst mal finden. Es muss
> dann wirklich passen. Es muss fehlerfrei und vertrauenswürdig sein.

Deshalb schrieb ich nicht ‚kostenlos‘ :)

Eine Grafik wie lvgl, ein Dateisystem  oder einen Asynchronen Webserver 
mit Websockets schreibt man nicht mal eben selber. Und alles das ist 
heute embedded, nicht mehr nur HD44780 LCD, serielle Schnittstelle und 
handverlesene SD Karten.

Und die Kanonen wie F7 oder RPi Zero werden immer günstiger, bei 
letzterem ist eben ein kleines Linux von Vorteil wenn man Dateisystem, 
Ethernet und USB haben möchte. Was auf einem F7 auch geht, aber schon 
einen Tick komplizierter ist.

von Rolf M. (rmagnus)


Lesenswert?

Moby schrieb im Beitrag #6727486:
> Rolf M. schrieb:
>> Wer hat dir denn den Quatsch erzählt?
>
> Nun, solcherlei Antworten sind, wie einige weitere sicher alles andere
> als sachliche Argumente.

Ich habe von dir in dem Thread bisher auch nichts sonderlich sachliches 
gelesen. Nur irgendwelche Behauptungen, die ziemlich aus der Luft 
gegriffen wirken. Deshalb meine Frage.

> Nur_ein_Typ schrieb:
>> Daß C++ mehr Ressourcen benötigen würde? Diese Aussage ist in dieser
>> Pauschalität leider nicht ganz richtig.
>
> Das hat auch niemand behauptet.
> Um mit C++ (wie OOP ganz allgemein) aber ähnlich sparsam hinzukommen wie
> mit C oder gar der Stufe darunter braucht es aber eine gewisse Umsicht
> und eines gewissen Knowhows. Allzuschnell benötigt man damit mehr
> Speicher und Rechenzeit als nötig. Die Gegenseite dieser Münze mag
> gewonnene Bequemlichkeit sein- wirklich leisten kann man sich das aber
> eben erst ab einem gewissen Hardware-Niveau. Das ist bei kleinen
> 8-Bittern sehr oft noch nicht gegeben. Wenn
>
>> USB, Netzwerk, WLAN oder eine grafische Benutzeroberfläche ins Spiel
>> kommen
>
> kann man sich aber selbst dann noch mit angeflanschter,
> spezialisierterer Hardware für diese Zwecke behelfen.

Klar, es ist natürlich kein Problem, beliebig komplexe Programme in 
Assembler zu schreiben, wenn man konsequent alle Teile, die tatsächlich 
komplex sind, in externe Komponenten auslagert. Diese sind aber sehr 
wahrscheinlich nicht mehr in Assembler implementiert.

Beitrag #6728289 wurde von einem Moderator gelöscht.
von Johannes S. (Gast)


Lesenswert?

Moby schrieb im Beitrag #6728289:
> Die Tatsache, daß es ganz anders gekommen ist wird doch vermutlich etwas
> bedeuten, oder?

Ja, es werden immer wieder die gleichen Vorurteile hervorgekramt:

Moby schrieb im Beitrag #6728289:
> In der Praxis verschleudert OOP viel zu oft Speicher und Rechenzeit.

Moby schrieb im Beitrag #6728289:
> Sehr viele Anwendungen aber benötigen weder Grafik, Netzwerk, USB,
> Dateisystem.
> Zum Beispiel Aktoren und Sensoren, um im Bild zu bleiben.

Es ging aber um C++ auf Raspberry Pi. Wenn das nicht gebraucht wird, 
dann kann man einen kleinen CM0 nehmen und trotzdem Von C++ profitieren.
Aber da fängt der Kreislauf dieses Nullsummenspiels wieder von vorne an.

Beitrag #6728315 wurde von einem Moderator gelöscht.
von Einer K. (Gast)


Lesenswert?

Wann das TO wirklich C++ lernen will, dann ist der PC eigentlich genau 
die richtige Basis.

Pi geht natürlich auch, aber da ist die Toolchain sicherlich um 
Größenordnungen lahmer. Die ganze Bedienung ist zäher.

Auf den Mobby Schwachfug gehe ich da gar nicht groß ein. Entweder macht 
man mit C++ auf µC, oder eben nicht. Bleibt doch jedem selber 
überlassen(im Hobby).
Irgendwelche Prediger brauchts da nicht zu.

Beitrag #6728328 wurde von einem Moderator gelöscht.
Beitrag #6728333 wurde von einem Moderator gelöscht.
Beitrag #6728334 wurde von einem Moderator gelöscht.
Beitrag #6728337 wurde von einem Moderator gelöscht.
Beitrag #6728338 wurde von einem Moderator gelöscht.
von Rolf M. (rmagnus)


Lesenswert?

Moby schrieb im Beitrag #6728315:
> Johannes S. schrieb:
>> immer wieder die gleichen Vorurteile
>
> Da wär ich in der Be- und Abwertung wesentlich vorsichtiger.

Bist du aber nicht. Du behauptest einfach irgendwas und erwartest, dass 
andere das als gottgegeben hinnehmen, nur weil du das so sagst.

> So wirklich erklärt hat der TO Dobby ja nicht, warum und wofür es denn
> nun C++ sein muß, wenn es doch Python auf dem Raspi genauso tut.

Doch, hat er:

Dobby schrieb:
> Ich habe jetzt vor, mich in c++ hinein zu arbeiten.

Es muss C++ sein, weil er vor hat, das zu lernen. Da macht es wenig 
Sinn, sein Programm stattdessen in Python zu schreiben.

von Johannes S. (Gast)


Lesenswert?

Moby schrieb im Beitrag #6728315:
> Vielleicht etwas überspitzt zusammengefasst: Was
> der gute Programmierer hinterher wirklich mit C++ an Zeit in seinen
> Projekten spart ist vorher in seine Ausbildung geflossen.

Lernen und Weiterbildung sehe ich nicht als Nachteil. Es gibt auch C 
Programmierer die nach dem ersten Kapitel glauben genug zu Wissen und 
bauen dann ihre "if Schleifen". 10 Abfragen hintereinander um eine 
Variable auf 10 Werte zu überprüfen, andere lernen weiter und erkennen 
das es richtige Schleifen mit for/while und Arrays und Zeigern gibt und 
erweitern damit ihren virtuellen Werkzeugkasten. Genauso geht es mit C++ 
weiter, man muss die Abstraktion verstehen die man z.B. mit der C++ 
Standardlib bekommt und wie einfach dann aus einem Array eine sortierte 
Liste wird. Der Assembler Programmierer sucht derweil noch den Fehler in 
der Indexberechnung seiner Strukturen. Und er mag den Umstieg von 8 auf 
32 Bit nicht weil dann seine Codesammlung komplett obsolet wird. Während 
er noch die Registerstruktur eines Cortex-M studiert, kommt jemand und 
möchte einen Tensilica einsetzen weil der billig ist und sogar WLAN kann 
oder die Power von einem RPi Zero nutzen. Ich fand Assembler (besonders 
die Motorola 6809/68k) sehr interessant und es hilft dem Verständnis für 
µC, aber ich bin froh nicht auf so einem Level hängen geblieben zu sein. 
Und es ist umso besser das C++ auf µC absolut keine Ausnahme mehr ist. 
Natürlich könnte man versuchen etwas in asm zu optimieren, aber die 
vielen Tricks die ein moderner Compiler drauf hat, die muss man auch 
erst mal lernen. Auch Schachcomputer sind heute nicht mehr zu schlagen.

> So wirklich erklärt hat der TO Dobby ja nicht, warum und wofür es denn
> nun C++ sein muß, wenn es doch Python auf dem Raspi genauso tut. Eine
> konkrete Anwendung die genau nach C++ schreit hat er nicht genannt.

Braucht man auch nicht wenn man eine Sprache lernen möchte. Erstmal 
schauen und verstehen was man da alles für Werkzeuge bekommt und wie und 
wo man die einsetzen kann. Geht natürlich auch auf dem PC, aber mit 
Hardware ist es für mich auch attraktiver. Vectoren, Listen & Co. ist 
auf dem PC oder mittlerweile Online Compilern einfacher 
nachzuvollziehen, aber es spricht auch nix dagegen alles auf einem 
Nucleo Board zu erforschen weil das mittlerweile auch Plug&Play ist.

von Nur_ein_Typ (Gast)


Lesenswert?

...und wieder wird dem "lästigen Dauerspammer" [1] eine Plattform dazu 
geboten, einen fremden Thread zu hijacken und zu zerstören.

Obwohl er eigentlich Hausverbot hat. Oder wurde das aufgehoben? Obwohl 
er keine Änderung seines Verhaltens erkennen läßt, das der Grund für das 
Hausverbot war?


[1] Beitrag "Lästiger Dauerspammer."

Beitrag #6728696 wurde von einem Moderator gelöscht.
Beitrag #6728723 wurde von einem Moderator gelöscht.
Beitrag #6728734 wurde von einem Moderator gelöscht.
Beitrag #6728880 wurde von einem Moderator gelöscht.
Beitrag #6729064 wurde von einem Moderator gelöscht.
Beitrag #6729076 wurde von einem Moderator gelöscht.
Beitrag #6729077 wurde von einem Moderator gelöscht.
von 900ss (900ss)


Lesenswert?

Super Einstand von dir nach 3 Beiträgen....

von Stefan F. (Gast)


Lesenswert?

Dobby schrieb:
> Ich habe jetzt vor, mich in c++ hinein zu arbeiten. Aber nicht furz
> trocken am pc sondern schon am raspberry Pi.

Meine Anleitung funktioniert exakt so auch auf dem Raspberry Pi
http://stefanfrings.de/qt_lernen/index.html

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.