Ich werde Ihnen zunächst sagen, was ich weiß. Dann werde ich Ihnen sagen, dass ich in dieses magische Land gelangen möchte, in dem ich alles über die Entwicklung eingebetteter Systeme weiß. Dann werde ich Sie fragen, was meine nächsten Schritte sein sollten, um dorthin zu gelangen. Diese Antwort ist ziemlich informativ, aber ich versuche, etwas detaillierter zu werden:
Was ich weiß
Mal sehen, ich bin fair mit C und C ++. Natürlich möchte ich mit diesen Sprachen besser werden, aber ich denke, an diesem Punkt ist der beste Weg für mich, mich zu verbessern, sie einfach weiter zu verwenden und ständig zu versuchen, meinen Code zu verbessern, während ich ihn schreibe. Ich denke nicht, dass es sehr vorteilhaft wäre, irgendwelche Lernübungen nur noch dem Lernen von C zu widmen.
Ich bin ziemlich zufrieden mit dem Entwerfen einfacher Schaltungen. Ich sehe einen Chip mit einem Open-Collector-Ausgang und weiß, dass ich einen Pull-up usw. brauche. Ich bin ziemlich sicher, dass ich mit einem IC und seinem Datenblatt entweder herausfinden kann, wie ich mit ihm umgehen soll, oder zumindest die richtigen Fragen dazu stellen kann Finden Sie heraus, wie Sie es verbinden.
Ich bin sehr gut in Mathe und logischem Denken. Es gibt nur wenige Algorithmen / Designkonzepte, die mich für eine Schleife werfen. Dies ist definitiv mein stärkster Bereich.
Was ich getan habe
Bisher habe ich alle Erfahrungen mit 8-Bit-Mikrocontrollern gesammelt. In meinem College-Kurs wurden ein Motorola HC08, ein Intel 8051 und ein Zilog EZ8 verwendet. Mein Professor hatte für alle drei ein kleines Entwicklungsboard mit einem 7-Seg-Display und einigen anderen Dingen gebaut. Wir haben sie in der Montage programmiert, damit ich mit der Montage vertraut bin, und ich habe einen grundlegenden Kurs zur Computerarchitektur absolviert, damit ich eine gute Vorstellung von der Hardware habe. Wir haben jedoch an einer Windows-Umgebung gearbeitet und alle 3 MCUs hatten bereits eine eigene IDE und Toolkette eingerichtet, sodass ich nie wirklich erfahren habe, wie mein Code von der Assembly zur Ausführung auf der MCU überging.
Mein nächster Schritt war, alleine zu lernen. Ich habe mich sehr gut mit der Arduino-Umgebung vertraut gemacht, indem ich mit Sensoren / Speichern / Anzeigen verbunden war, die beide vorab geschriebene Bibliotheken hatten, und einige, die dies nicht taten. Als nächstes baute ich mein eigenes Arduino-Board mit einem ICSP und Verbindungen zu einer anderen MCU, damit ich den Bootloader auf nackte ATmega328s flashen konnte. Wiederum waren die IDE und die Toolkette bereits eingerichtet und ich habe nie verstanden, wie ich von C / Arduino zu Code übergegangen bin, der tatsächlich auf der MCU ausgeführt wird.
Was ich wissen will
Aus der zuvor verknüpften Antwort denke ich, dass das Interessanteste / Nützlichste für mich das Erlernen der Tools (Compiler und Linker) und das Erlernen verschiedener Stile der Softwarearchitektur (von Interrupt-basierten Regelkreisen zu Schedulern und RTOSs) wäre. . Das ist meine Meinung zu dem, was am nützlichsten wäre ... aber da ich es noch nicht weiß, ist es schwer zu sagen, ob das richtig ist oder nicht, also zögern Sie nicht, andere Stichpunkte aus dieser Antwort vorzuschlagen, wenn Sie denken, dass sie besser wären und Bitte erklären Sie, warum Sie das denken.
Ausgehend von meinem aktuellen Wissen und der obigen Beschreibung dessen, was ich als Ziel wissen möchte, suche ich nach sehr konkreten Vorschlägen, wohin ich als nächstes gehen soll. Ich suche nach genauen Projektvorschlägen, Websites / Blogeinträgen zum Lesen, Kapiteln in Büchern usw.
Gibt es noch andere Lücken in meiner Wissensdatenbank, die ich Ihrer Meinung nach füllen sollte, bevor ich zu den oben genannten Themen übergehe?
Vielen Dank