Hallo, kommendes Semester muss ich u.a. mit einem µC in einem Projekt arbeiten (schwerpunktmäßig embedded systems). Da ich bisher Software nur für den PC programmiert hab (Python, C und C++) bzw. meine bisherige µC-Erfahrungen "nur" Arduino sind, bin ich momentan auf der Suche nach geeigneter Literatur (oder Übungen?). Hat hier jemand Empfehlungen für mich? Zum üben müsste ich ja meinen Arduino nach wie vor verwenden können. D.h. natürlich sofern hier Literatur wirklich sinnvoll ist. Die Suchfunktion ergab zu ähnlichen Threads eher eine Empfehlung von einem Online-Skript und diverser Webseiten.
> kommendes Semester muss ich u.a. mit einem µC in einem Projekt arbeiten > (schwerpunktmäßig embedded systems). Wenn du ein erfahrener Profi waerst ist es natuerlich vollkommen egal welchen Mikrocontroller du verwendest weil wir natuerlich innerhalb von Stunden oder hoechsten Tagen beliebig die Archtitektur wechseln koenntest. Da du aber noch auf krassem Anfaengerlevel rummachst solltest du vielleicht zuerst mal herausfinden welchen Mikrocontroller genau du in deinem Projekt verwenden willst. Vielleicht mag es dein Professor ja dich mit einem TMS9900 zu belaestigen oder aehnlichem. :-) Das muss man schon wissen damit man dir irgendetwas empfehlen kann. Olaf
Wenn du mit deinem Arduino lernen willst, kann ich dir folgendes empfehlen: - Das AVR-GCC Tutorial hier vom Forum (https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial) - Die E-Books von Stefan Frings (http://stefanfrings.de/mikrocontroller_buch/index.html) - Das Buch "AVR-Mikrocontroller-Kochbuch" (https://www.amazon.com/AVR-Mikrocontroller-Kochbuch/dp/3645651268/ref=sr_1_1?dchild=1&keywords=avr+kochbuch&qid=1594888634&s=books&sr=1-1)
Jonas B. schrieb: > mit einem µC in einem Projekt arbeiten Meistens bestimmt die Projektgröße bzw. die Leistungsanforderungen den µC. Jonas B. schrieb: > Zum üben müsste ich ja meinen Arduino nach wie vor verwenden können. Klar kannst du das machen, vllt. sogar für dein Projekt?! Sollte es so sein, dass dein µC auf dem Arduino ausreichend ist (für das Projekt), du aber nicht mit der Arduino IDE arbeiten solltest/darfst, dann kannst dir auch das AtmelStudio installieren. Falls du noch ein bissel Geld in die Hand nimmst, kaufst dir noch ein Debugger/Programmer (JTAG, ISP, debugWIRE, ...), das was du für deinen µC halt benötigst, bzw. was er unterstützt. Dann kannst mit dem AtmelStudio eleganter entwickeln, als mit der Arduino IDE. Und dann sind die o.g. Quellen, die Schorschi (Gast) genannt hat ein guter Anfang.
:
Bearbeitet durch User
Hallo, sorry das ich mich so spät melde, konnte mich wegen Klausuren und Projektabgaben nicht mehr damit auseinandersetzen. Schorschi schrieb: > - Das AVR-GCC Tutorial hier vom Forum > (https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial) > - Die E-Books von Stefan Frings > (http://stefanfrings.de/mikrocontroller_buch/index.html) > - Das Buch "AVR-Mikrocontroller-Kochbuch" > (https://www.amazon.com/AVR-Mikrocontroller-Kochbuch/dp/3645651268/ref=sr_1_1?dchild=1&keywords=avr+kochbuch&qid=1594888634&s=books&sr=1-1) Danke für die Empfehlungen, das hört sich super an. Olaf schrieb: > Da du aber noch auf krassem Anfaengerlevel rummachst solltest du > vielleicht zuerst mal herausfinden welchen Mikrocontroller genau du in > deinem Projekt verwenden willst. Vielleicht mag es dein Professor ja > dich mit einem TMS9900 zu belaestigen oder aehnlichem. :-) > Das muss man schon wissen damit man dir irgendetwas empfehlen kann. Ich hab jetzt zwecks Übungen von einem Freund einen atmega328p bekommen. Adam P. schrieb: > Falls du noch ein bissel Geld in die Hand nimmst, kaufst dir noch ein > Debugger/Programmer (JTAG, ISP, debugWIRE, ...), das was du für deinen > µC halt benötigst, bzw. was er unterstützt. > Dann kannst mit dem AtmelStudio eleganter entwickeln, als mit der > Arduino IDE. Aber AtmelStudio gibt's ja für Linux leider gar nicht, daher kann ich das nicht nutzen. Ich dachte daher wie in C/C++ über ein Makefile und in clion zu arbeiten, würde das sinnvoll funktionieren? Nur beim Makefile bin ich mir unsicher wie ich das erstelle, das scheint ja stark anders als das für "PC-Software" zu sein. Adam P. schrieb: > Klar kannst du das machen, vllt. sogar für dein Projekt?! Für das Projekt soll ich einen Teensy verwenden denke ich (zumindest für einen Prototypen).
:
Bearbeitet durch User
Beitrag #6386325 wurde vom Autor gelöscht.
Jonas B. schrieb: > kommendes Semester muss ich u.a. mit einem µC in einem Projekt arbeiten Tja, kommt ein wenig auf's Modell an. Für den 68HC05 und auch allgemein nützlich: http://www.nxp.com/assets/documents/data/en/reference-manuals/M68HC05TB.pdf
Olaf schrieb: > Vielleicht mag es dein Professor ja dich mit einem TMS9900 zu > belaestigen oder aehnlichem. :-) Der hat damals im Ti99/4 richtig gute Arbeit geleistet. Die meisten Profs verstehen unter "moderner Architektur" allerdings eher was 8051artiges...
> Aber AtmelStudio gibt's ja für Linux leider gar nicht, daher kann > ich das nicht nutzen. Das macht nichts... > Ich dachte daher wie in C/C++ über ein Makefile und in > clion zu arbeiten, würde das sinnvoll funktionieren? Kein Problem. Installier dir einen Compiler und alles wird gut. Allerdings solltest du ueberlegen wie du dein Programm in den Mikrocontroller bringst. Gerade als jemand der anfaengt und lernt wuerde ich dringenst empfehlen darauf zu achten das du einen Debugger verwenden kannst. Es ist zum Verstaendnis extrem vorteilhaft wenn du im Singlestep durch dein Programm gehen kannst und dabei mal einen Blick auf Variableninhalten zu werfen. Da gibt es manchmal interessante Unterschiede zwischen Glaube und Realitaet. :-) Jetzt hab ich aber leider keine Ahnung wie die AVR Unterstuetzung unter Linux so ist wenn du nicht nur flashen willst! Ich wuerde dir eher was anderes empfehlen. Besorg dir irgendein Demoboard von ST. Je nach Board bist du da mit 10 bis 20Euro dabei. Auf dem Board befindet sich gleich ein Debugger. Der ist ST-Kompatible. Das ist doof. Deshalb schaust du mal hier: https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ Damit kannst du dann aus dem Debugger auf dem Board einen Jlink machen. Danach hast du unter Linux keine Probleme mehr, alles funktioniert, es gibt bergeweise Anleitungen im Internet die dir den Umgang damit zeigen. Debugger geht und Segger hat auch ganz brauchbare PDFs welche die Feinheiten erklaeren. Du kannst den Debugger von diesen Boards sogar abbrechen und dann mit eigenen Boards nutzen. Ich glaube aber nur mit Controllern von ST. Und das alles fuer 10Euro! > Der hat damals im Ti99/4 richtig gute Arbeit geleistet. Das stimmt nicht. Der war grottenlahm weil er die Register im Ram hatte. .-) Aber waer ich Professor wuerde ich einen moeglichst exotischen Core waehlen damit die Burschen nicht immer alles abschreiben und weniger Leute strammstehen muessten weil ich ihren Source im Internet wiederfinde. :-) Olaf
Olaf schrieb: > Du kannst den Debugger von diesen Boards sogar > abbrechen und dann mit eigenen Boards nutzen. Ich glaube aber nur mit > Controllern von ST. Nicht nur das, sondern auch folgende Einschränkung: "Only debugging on evaluation boards is allowed. Debugging on custom hardware is not supported and not allowed" Das macht es zumindest für mich komplett nutzlos. Wenn man sich an die Lizensbedingungen halten will bleibt man wohl lieber bei der normalen ST-Link Firmware.
J-Link schrieb: > Das macht es zumindest für mich komplett nutzlos. Wenn man sich an die > Lizenzbedingungen halten will bleibt man wohl lieber bei der normalen > ST-Link Firmware. Oder man kauft sich einfach einen J-Link EDU: https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/ Olaf schrieb: >> Der hat damals im Ti99/4 richtig gute Arbeit geleistet. Das war mein erster Rechner als ich so 8 Jahre alt war ;-). https://en.wikipedia.org/wiki/Texas_Instruments_TI-99/4A War ich damals happy als ich einen Kassettenrekorder bekam um meine Programme auf Musikkassette speichern zu können :-). Der Rechner steht noch immer bei mir im Keller. Ob er nach über 30 Jahren noch funktioniert?
Es gibt zwar ein paar prozessortypische Eigenheiten, aber im Großen und Ganzen wirst Du in dem Bereich fast nur C (ohne ++) programmieren. Ist eine Resourcenfrage. Interessanterweise ist C/C++ bei uns (UNI) bereits eine aussterbende Kunst. "Es gibt ja so viele, viel leistungsfähigere, Alternativen". Bei den größeren Systemen (Himbeere und Konsorten) kannst Du oft Deine Lieblingssprache benutzen. Hier sind die Resourcen aber auch beträchtlich größer. Im Gegenteil: Oft kommst Du schon kaum noch an die Hardware heran. Alles in Treibern versteckt und hinter Zugriffsrechten. Auch bei der normalen "Lehre/Leere" werden die binären Operationen oft vernachlässigt. Da solltest Du mal dringend reinschauen.
:
Bearbeitet durch User
Sebastian S. schrieb: > Es gibt zwar ein paar prozessortypische Eigenheiten, aber im Großen und > Ganzen wirst Du in dem Bereich fast nur C (ohne ++) programmieren. Ist > eine Resourcenfrage. > Interessanterweise ist C/C++ bei uns (UNI) bereits eine aussterbende > Kunst. "Es gibt ja so viele, viel leistungsfähigere, Alternativen". Wir hatten sowohl die C als auch C++ Vorlesung. Aber C hab ich bisher auch noch nicht wirklich auf Register-Ebene programmiert, das ist also Neuland für mich (bisher auch nur die reine Software für den PC Richtung). Olaf schrieb: > Ich wuerde dir eher was anderes empfehlen. Besorg dir irgendein > Demoboard von ST. Je nach Board bist du da mit 10 bis 20Euro dabei. Auf > dem Board befindet sich gleich ein Debugger. Der ist ST-Kompatible. Das > ist doof. > Deshalb schaust du mal hier: > > https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ Der Debugger bzw. geschickte Link ist sowas wie ein JTAG, oder? Kann ich nicht die gewohnten Debugger (gdb usw.) am PC verwenden? Ich hab im Internet leider nichts gefunden, wo kauft man denn Demoboard von ST? Til S. schrieb: > Oder man kauft sich einfach einen J-Link EDU: > https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/ Der scheint aber recht teuer zu sein.
Jonas B. schrieb: > Kann ich nicht die gewohnten Debugger (gdb usw.) am PC verwenden? Der gdb wird meistens auch für die μC verwendet, STLink und Co. sind dabei die Brücke zum Controller. Die Cortex-M kommen mit SWD aus, hat weniger Leitungen als JTAG.
> Kann ich nicht die gewohnten Debugger (gdb usw.) am PC verwenden? Du kannst gdb verwenden, aber gdb braucht ja irgendwie Zugriff auf die Hardware. Diese Hardware nett man auch gerne "Debugger". Eine relativ verbreitete Version davon ist der J-Link von Segger. Das Teil ist zumindest in Deutschland relativ verbreitet. Es gibt aber auch welche von anderen Firmen. Es gibt manchmal auch spezielle Teile die ausschliesslich vom Hersteller des Mikrocontrollers stammen. Das war frueher ueblicher. Diese Debugger benutzen irgendeine synchrone oder asynchrone serielle Schnittstelle um mit dem Controller zu reden. JTAG ist eine, SWD eine andere. Das ist aber nicht so einfach wie du dir das vorstellst weil die Hersteller manchmal noch lustige Erschwernisse in ihre Microcontroller einbauen. Z.b ICE von TI. Aber irgendwie muss der arme Till ja seine Broetchen verdienen. Das kann die aber egal sein. Wichtig ist nur das der DEbugger deinen speziellen Microcontroller unterstuetzt. Deshalb erfahren die auch oefters mal ein Firmwareupdate um die neusten Typen da reinzubringen. Traditionell waren diese Teile sehr teuer. Auch ein voll ausgestatter J-Link kann zwischen 600 und 2000Euro kosten. Als aber Segger irgendwann merkte das in China die Fliessbaender ganz viele sehr kompatible Clone fuer 10Euro herstellten gab es ploetzlich den J-Link EDU. Und als mancher Hersteller von Mikrocontroller merkte das es ganz schoen kompliziert sein kann einen zuverlaessigen Debugger fuer ihre eigenen Controller zu bauen kam es zu der bemerkenswerten Kolaboration zwischen diesen Herstellern und Segger. Soweit mal eine unabhaengige Zusammenfassung der letzten 20Jahre. :-D Im Bastlerbereich gibt es auch viele Tools die konnten oft nur flashen, aber nicht debuggen. Manche konnten auch debuggen, waren aber dafuer etwas unzuverlaessig oder kompliziert in coole Oberflaechen zu integrieren. Deshalb mein Tip, gerade als Anfaenger nimm einen Jlink, egal ob als EDU oder auf einem Board integriert. Das erspart dir viel Stress! > Ich hab im Internet leider nichts gefunden, wo kauft man denn Demoboard > von ST? Ueberrall? Kann ich dir gar nicht so genau sagen. Als Ingenieur musst du die nicht kaufen, Firmen bewerfen dich einfach damit wenn du nicht aufpasst. Amazon hat aber Dutzende von Anbietern. Ebay sicher auch. Reichelt auch. Also doch ueberrall. :-) Olaf
> Programme auf Musikkassette speichern zu können :-). Der Rechner steht > noch immer bei mir im Keller. Ob er nach über 30 Jahren noch > funktioniert? Finde es heraus in dem du Unterstuetzung fuer die CPU in den Segger einbaust. Ich hab hier noch drei TMS9900 rumliegen falls ich in 20Jahren mal Rentner werde und mich langweile. Da waere es dann vielleicht gut die debuggen zu koennen. :-D Olaf
Hallo, danke für die Antworten und die historischen Erläuterung, war sehr interessant! Ich hab jetzt zwei (Debugger und Board) auf Amazon gefunden, wären die für meine Lernzwecke/µC Erlernen geeignet? https://www.amazon.de/STM32-ST-NUCLEO-L432KC-Nucleo-Development/dp/B077GFHLFS/ref=sr_1_14?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=ST+development+board&qid=1598801093&sr=8-14 https://www.amazon.de/ARCELI-ST-LINK-CN-Version-MCU-Mikrocontroller-Circuit-Debugger-Programmierer-Emulator/dp/B07RKVM7H8/ref=psdc_1626220031_t1_B077GFHLFS
Jonas B. schrieb: >> Oder man kauft sich einfach einen J-Link EDU: >> https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/ > Der scheint aber recht teuer zu sein. Der J-Link EDU kostet ~60 Euro: https://www.ak-modul-bus.de/cgi-bin/iboshop.cgi?showdsearchj-link+edu:11111100!0,690731434725534,J-Link_EDU Olaf schrieb: > Aber irgendwie muss der arme Til ja seine Brötchen verdienen. Die verdiene ich nicht mit dem J-Link...oder sollte ich mal anfangen embOS Lizenzgebühren von den J-Link Kollegen zu fordern ;-). Olaf schrieb: > Als aber Segger irgendwann > merkte das in China die Fliessbaender ganz viele sehr kompatible Clone > fuer 10Euro herstellten gab es ploetzlich den J-Link EDU. Nope, China Clones gibt es schon sehr viel länger als den J-Link EDU. Den J-Link EDU gibt es einfach damit im nicht kommerziellen Bereich mit professionellen Tools gearbeitet werden kann. Ist aber natürlich auch Marketing weil die Tools dann im kommerziellen Umfeld gekauft werden wenn man sie z.B. schon im Studium kennen gelernt hat. Und im kommerziellen Bereich hilft dir weder ein illegaler Clone noch ein J-Link EDU. Olaf schrieb: > Finde es heraus in dem du Unterstuetzung fuer die CPU in den Segger > einbaust. Ich hab hier noch drei TMS9900 rumliegen falls ich in 20Jahren > mal Rentner werde und mich langweile. Da waere es dann vielleicht gut > die debuggen zu koennen. :-D Oder ich stöpsel, wenn ich in Rente bin, den Rechner einfach mal an die Steckdose und schaue was passiert...das dauert aber noch ~26 Jahre ;-).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.