Frage:
Tipps für einen alten früheren und erneuerten Embedded-Programmierer
ddm
2010-12-11 03:47:44 UTC
view on stackexchange narkive permalink

Hintergrund -

Ich habe meinen ersten SBC in den späten 70ern auf einem MEK6800D2-Evaluierungskit (das ich gebaut hatte) und anderen Boards dieser Zeit wie dem Rockwell 6502 Kim-1, 8085 usw. programmiert. Jetzt bin ich ein 61 a Big Box MS C # vs2010 Programmierer, aber mein wirkliches Interesse war immer eingebettet, aber es ist schon so viele Jahre her. Jetzt, da ich kurz vor der Pensionierung stehe, möchte ich wieder zu meinen Wurzeln von Embedded zurückkehren. C, Ziel C, ASM, andere? (OK, ich zeichne die Linie weiter).

Anfrage -

Jetzt schaue ich mir die neuesten eingebetteten Chipsätze an und oh wow, ich verstehe nur etwa die Hälfte davon. Gibt es eine Ressource, die Sie jemandem wie mir empfehlen könnten? Bücher, Sites usw.?

Übrigens - Ich fand diese spezielle Site im Stack-Exchange-Stil sehr nützlich. Vielen Dank

Willkommen bei Electronics.SE. Ich bin froh zu hören, dass diese Website nützlich ist: P Ich fürchte, diese Frage ist ein Duplikat einiger anderer. Versuchen Sie jedoch, sie zu überprüfen: [Wie werde ich ein Entwickler für eingebettete Software?] (Http: // electronic .stackexchange.com / question / 3343 / wie man ein eingebetteter Softwareentwickler wird), [Schritte zum Erlernen der Arduino-Programmierung] (http://electronics.stackexchange.com/questions/1015/steps-to- zuerst lernen-Arduino-Programmierung). Wenn Sie ein bestimmtes Ziel vor Augen haben, was Sie tun möchten oder was Sie speziell tun möchten, kann dies hilfreich sein, um Ihre Frage zu ergänzen.
@Nick T: ist sich nicht sicher, ob es sich um exakte Dupes handelt. Das erste, das Sie zitieren, ist ein Neuanfang, das zweite ist Arduino-spezifisch, während dies zu fragen scheint: "Was unter den aktuellen Angeboten würde am besten mit 8-Bit-Sachen um 1980 übereinstimmen?"
Sechs antworten:
tcrosley
2010-12-11 05:14:53 UTC
view on stackexchange narkive permalink

Ich beschäftige mich seit 35 Jahren mit eingebetteten Systemen (ich bin nur ein paar Jahre älter als Sie) und habe derzeit Projekte mit 8-Bit (Silicon Labs 8051 und Freescale 68HCS08), 16 -bit (Microchip 24FJ und dsPIC33FJ) und 32-Bit-Prozessoren (TI TMS320DM365).

Die 8-Bit-Chips werden wahrscheinlich das sein, womit Sie sich anfangs am wohlsten fühlen und trotzdem Spaß machen werden zusätzlich zu C in Assembly zu programmieren. Der 68HCS08 ist ein Update der Motorola 68HC05-Reihe, und ich mag besonders den Befehlssatz (nicht so schön wie der alte 6809, für den ein wunderbarer Prozessor zum Schreiben von Assembly-Code war).

Im Vergleich zu früher, als Entwicklungsboards und zugehörige ICEs Hunderte oder sogar Tausende von Dollar kosteten, können Sie jetzt ziemlich anständige Evaluierungsboards für unter 100 USD und kostenlose Compiler erhalten.

Nur zum Spaß habe ich kürzlich ein Entwicklungsboard für den Parallax Propeller -Chip gekauft, auf dem 8 Kerne (Parallax nennt sie "Gogs") laufen parallel. Alle E / A-Vorgänge werden in Software ausgeführt. Dies bedeutet, dass der Chip mit sehr wenig externer Hardware Dinge wie PS / 2-Tastaturen und -Mäuse sowie VGA-Ausgabe unterstützt. Es gibt ein Demo-Board für 80 US-Dollar. (Ich habe seinen großen Bruder, der derzeit für 150 US-Dollar erhältlich ist.)

+1 für die Erwähnung des 6809, wahrscheinlich der schönste 8-Bitter aller Zeiten.
Danke, das sind großartige Informationen. Ich habe die 24FJs in den letzten Tagen wie beim dsPIC studiert. Der Vorsprung auf dem 68H ist großartig, da ich mich mit dem (alten) 68xx-Befehlssatz wohler gefühlt habe.
darron
2010-12-12 09:30:09 UTC
view on stackexchange narkive permalink

Was klingt für Sie nach Spaß? Wie hoch ist Ihr Budget?

Es gibt viele 8/16-Bit-Controller, die sich wahrscheinlich ein bisschen nostalgisch anfühlen würden. (da sie im Grunde die gleichen sind, mit denen Sie früher gespielt haben). Sie wären überrascht, wie viele professionelle eingebettete Systeme noch 8051 verwenden.

Ein Arduino würde Ihnen viele interessante Zusatzoptionen bieten, aber für mich scheint es wirklich mehr auf Hobbyisten ausgerichtet zu sein, die darauf programmieren müssen Erfülle eine Aufgabe ... nicht an Leute, die sich gerne mit C und ASM schmutzig machen. Wenn Sie viele eingebettete Steuerungsoptionen wünschen, ist dies jedoch gut. Schauen Sie sich unbedingt SparkFun an.

Propeller sieht lustig aus ... obwohl es nie zu etwas zu passen scheint, was ich tue. Ich habe mein Interesse an Elektronik vor vielleicht zehn Jahren mit Parallax 'Basic Stamp II wieder aufgenommen (SEHR schnell auf SX-Produkte umgestellt (PIC-ähnliches System, jetzt Ubicom)).

ARM-Prozessoren variieren stark. Am unteren Ende sind sie leistungsstark, aber die Tools kosten normalerweise zu viel. Auf mittlerer und hoher Ebene können sie ein vollständiges Linux-System ausführen und erstaunliche Dinge tun. (Fast alle Telefone verwenden sie jetzt) ​​Ich gehe selbst in den ARM-Bereich des mittleren Endes (das niedrigste Ende, das wirklich Linux-fähig ist). Meine Definition des Mediums passt zu den Chips, für die es einfach genug ist, eine 4-6-Schicht-Leiterplatte zu entwerfen. Die großen können mehr als 8 Schichten erfordern.

Wenn ich raten würde, würde ich sagen, dass Sie FPGAs nach ein paar Monaten, in denen Sie Ihre Seebeine zurückbekommen, vielleicht wirklich interessant finden. Sie können schöne FPGA-Demo-Boards für 100 bis 200 US-Dollar kaufen. Die Hersteller-Tools sind kostenlos (ich würde Altera empfehlen, dicht gefolgt von Xilinx). Sie können viel Spaß beim Entwerfen Ihrer eigenen Logik haben, einschließlich kleiner Mikroprozessoren. Es gibt viele "weiche" Prozessoren für FPGAs und komplette Toolchains zum Entwickeln und Debuggen. Ich würde vermuten, dass es am besten zum Gefühl der späten 70er / frühen 80er Jahre passt (nicht, dass ich es wüsste), dass Sie so viel von einem System selbst von Grund auf neu entwerfen können. Sie können dann fast jeden Sensor oder jedes Gerät finden, was immer Sie wollen, und eine benutzerdefinierte Klebelogik schreiben, um mit ihm zu sprechen (unabhängig davon, welche bizarre Schnittstelle sie verwenden). Es gibt auch OpenCores, in denen Sie Funktionsmodule abrufen können, die von anderen geschrieben wurden du willst es nicht selbst schreiben oder weißt nicht wie. Wenn Sie interessiert sind, kommentieren Sie und ich werde nach einem anständigen Starterboard für Sie suchen.

Leider können Sie mit FPGAs nicht zu weit gehen (es sei denn, Sie spielen wirklich gerne nur mit Logik und ohne Schnittstelle zu Dingen), ohne auch selbst Leiterplatten zu entwerfen. Ich denke, es ist viel einfacher als es sich anhört ... Datenblätter zeigen Ihnen heutzutage ziemlich genau, wie man alles macht. Es ist jedoch sicherlich noch viel mehr zu verwalten.

Vielen Dank, Liebling. Nach Ihrer Nachricht habe ich dank Ihnen begonnen, FPGAs (erneut) zu untersuchen, und es liegt nicht zu weit außerhalb meines Technologiebereichs (in Ordnung), würde aber einige Denkkraft erfordern (und das ist gut so). Dies ist für mich nicht aus dem Bereich der Möglichkeiten heraus und ich bin lieber "am" Metall als "am Metall". Ich muss mehr recherchieren. Haben Sie eine Lektüre, die Sie empfehlen würden? vielen dank ddm
Ich bin nicht besonders zufrieden mit dem, was ich habe, aber bei dieser Frage geht es um FPGA-Buchempfehlungen: http://electronics.stackexchange.com/questions/7163/book-recommendations-on-fpga
JustJeff
2010-12-11 05:15:49 UTC
view on stackexchange narkive permalink

8/16-Bit-Blitzmikros (PIC / AVR usw.) sind wahrscheinlich der richtige Weg. Sie können diese in C oder Assembler programmieren, Sie haben die Kontrolle über die gesamte Maschine und Sie erhalten im Grunde ein ganzes System auf einem Chip. Ganz zu schweigen davon, dass sie günstig sind. Der größte Unterschied zwischen der Programmierung dieser und beispielsweise einer 6502 besteht darin, dass sie über separate Code- und Datenbereiche verfügen.

Es gibt viele Einzelplatinen, die anspruchsvollere Prozessoren verwenden, die weitaus leistungsfähiger sind, aber Sie Ohne vollwertige Betriebssysteme können Sie diese nicht wirklich optimal nutzen. Das Programmieren auf solchen Plattformen unterscheidet sich erheblich vom Bit-Banging auf einem 6800. Dies kann je nach Ihrer Sichtweise ein Segen oder ein Fluch sein. Einerseits kann man nicht einfach einen Port knallen, man muss einen Gerätetreiber durcharbeiten (oder den Gerätetreiber schreiben ), andererseits bekommt man nette Dinge wie Multitasking.

Danke - gute Infos - Ich habe Gerätetreiber für frühere Windows-Versionen geschrieben. Das war nicht meine Stärke, aber ich hatte auch Termine einzuhalten.
Chris Stratton
2010-12-11 05:44:54 UTC
view on stackexchange narkive permalink

Vielleicht möchten Sie mit einem Arduino beginnen, um eine Vorstellung davon zu bekommen, wozu die AVR-Chips in der Lage sind, und dann möglicherweise die benutzerdefinierte Benutzeroberfläche loswerden und mit allgemeineren Tools arbeiten.

Für etwas größere Systeme ARM Kerne von einer Reihe von Anbietern sind sehr beliebt und kaum teurer.

Außerdem finde ich es nicht von persönlichem Interesse und bin im Allgemeinen mit der Marketingidee, Desktop-Programmierer auf Embedded ohne umzustellen, unzufrieden Aufgrund der großen Änderung der Denkgewohnheiten gibt es einige winzige ARM-Boards, auf denen eine Version von .NET ausgeführt wird, die möglicherweise einige Ihrer bisherigen Aktivitäten nutzen. Beispiele hierfür sind Netduino und Fez Panda.

Danke - das war sehr hilfreich. In den 80er Jahren habe ich viele eingebettete 80xx-Familienanwendungen professionell geschrieben, aber die Branche hat sich auf formellere Sprachen umgestellt und ich musste einen Job behalten. Jetzt möchte ich zum Spaß ein bisschen drehen, ich habe nicht vor, davon zu leben.
IntelliChick
2010-12-11 19:18:28 UTC
view on stackexchange narkive permalink

1) Holen Sie sich ein gutes Nachschlagewerk für die C-Programmierung. Dieses Buch hat mir sehr gut gefallen:

Lassen Sie uns C - Y. Kanetkar

alt text

2) Holen Sie sich ein gutes Nachschlagewerk, das einige der Bausteinkonzepte eingebetteter Systeme behandelt.

Ein Primer für eingebettete Software - David.E.Simon

alt text

3) Holen Sie sich ein gutes Entwicklungskit, wie das Beagle-Board, das eine sehr aktive und unterstützende Online-Community hat, die bei Fragen usw. hilft. Auf der Website finden Sie unzählige Ideen für Projekte, mit denen Sie sich die Hände schmutzig machen können .

Beagleboard-Website

alt text

4) Sie können nicht an Ganssles Website vorbei gehen, um hervorragende Informationen zum Thema Embedded Programming zu erhalten. Er hat ausgezeichnete Artikel über die Feinheiten eingebetteter Systeme.

Die Ganssle-Gruppe

5) Sie können auf eine verwandte Frage verweisen, die veröffentlicht wurde:

Eingebettetes C. Programmiermaterial

6) Vergessen Sie vor allem nicht, Spaß damit zu haben. Lesen, lesen und lesen und schmutzig machen! Sie werden auf einige herausfordernde Probleme stoßen, die Sie vielleicht tagelang verblüffen werden, aber das ist der beste Teil. Bleib einfach dran und du wirst es schaffen!

Was - Mein erster Hund mit K & Rs C ist nicht gut genug :-) Danke, diese Beiträge waren für jemanden wie mich irgendwo in der Mitte sehr nützlich.
K & R ist das einzige Buch, das für C gut genug ist.
Lassen Sie uns C als schlechtestes Programmierbuch zitieren: http://programmers.stackexchange.com/questions/6974/whats-the-worst-programming-book-youve-ever-read/12192#12192
@Nick - hatten Sie die Gelegenheit, es zu lesen? Was magst du an dem Buch nicht? Ich hatte in meiner Zeit die Gelegenheit, ein paar Bücher über C zu lesen, und muss sagen, dass mir dieses Buch wirklich gefallen hat. Es ist sehr einfach zu lesen und erklärt einige Kernkonzepte sehr gut. Aber natürlich ist es meine Meinung, und Sie haben definitiv ein Recht auf Ihre! :) :)
@Intel: Es ist nicht meine Meinung, nur die einer anderen. Ich wusste, dass ich schon einmal von dem Buch gehört hatte, ich versuchte mich zu erinnern, wo: P.
@Nick - sicher np! Ich habe Ihre wertvollen und aufschlussreichen Antworten / Fragen von Zeit zu Zeit gelesen und werde daher auf jeden Fall daran interessiert sein, Ihre Meinung zu dem Buch zu erfahren. Lesen Sie und sagen Sie mir, was Sie davon halten! :) :)
@IntelliChick, Ich mag Ganssles Seite genug, dass ich tatsächlich eines seiner Bücher gekauft habe. Es hat ziemlich viel Spaß gemacht, es zu lesen.
Dave
2010-12-14 20:43:29 UTC
view on stackexchange narkive permalink

Ich verstehe Ihren Wunsch, etwas anzuschließen und ein Toolkit zu haben, das einfach funktioniert . Wie Chris bereits erwähnt hat, können Sie sich für Netduino entscheiden, das Ihnen möglicherweise vertrauter ist, da es das .NET 4.0 Micro Framework verwendet. Ich persönlich habe es nicht benutzt, weil ich es nirgendwo bekommen kann! Völlig ausverkauft.

Ich habe jedoch gerade einen mbed-Mikrocontroller zur Verwendung erhalten, und meiner Meinung nach ist die Verwendung überall einfacher als bei Arduino und seiner Umgebung. Der Compiler ist sehr nett, der Editor ist online (was möglicherweise das einzig schlechte ist, wenn Sie nicht die lokale Toolchain installiert haben, von der ich nichts weiß). Aber Sie schließen es buchstäblich an, starten die Webseite, die in ihrem Flash gespeichert ist, registrieren sie, und Sie können in den Compiler springen und mit dem Twiddling beginnen. Ich habe zumindest in ungefähr 5 Minuten nach dem Öffnen der Box geblinkt und die LEDs PWM-fähig gemacht.

Danke Mann - ich musste lachen, ich habe Ar * Compiler / Code / Emulator heruntergeladen und geschrieben und K & R C für den Arduino Emulator geschrieben und mich nicht daran erinnert, dass es noch keinen Bool gab. (Fragen Sie mich nicht nach dem Zugang zu Strukturmitgliedern!) Ich habe eine Stunde mit K & R rev gebraucht. Ich musste erkennen, dass ich es definieren musste. (Zurück in die Zukunft für mich :-) Sehr kewl!
versuche es als nächstes mit mbed! Ich bin relativ neu auf beiden Plattformen, aber ich finde die mbed-Umgebung viel vertrauter und weniger eigenartig für eine IDE. Und die Funktionen dieses Mikros sind sehr beeindruckend.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...