Forum: Mikrocontroller und Digitale Elektronik Realer Nutzen moderner Debugschnittstellen in Embedded Controller


von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Moin,

Softwareentwicklern wird ja gern eingebaute Hardware-Unterstützung fürs 
Software-debugging/profiling schmackhaft gemacht, beispielsweise bei ARM 
mit SWD, DAP etc. .

Neben dem bekannten "raus pusten von Statusmeldungen über UART" wird da 
auch von Coresight-Baukastensystem und anderem fabuliert.

Wie sieht es in der Praxis damit aus ?
Und wird manches von manchen Prozessoren vermisst, so das man sich bei 
der Prozessorauswahl (bspw zwischen AVR, ARM, DSP) auch von den 
Möglichkeiten der Debug-Schnittstelle leiten lässt ?

Und an die aus dem FPGA-SoC Bereich:
Welche "Extras" fürs Software-debugging an/im einem Softcore haben sich 
als nützlich erwiesen ?
: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Bedeutet diese Fragestellung, daß Du Dich mit Microcontrollern oder 
generell dem Thema Programmierung noch nicht näher beschäftigt hast?

Schon Deine Formulierung "wird schmackhaft gemacht", "wird ... 
fabuliert" lässt eine deutlich ablehnende Grundhaltung erkennen.

Warum?

(Übrigens: Du plenkst. Aus irgendeinem Grund aber nicht beim Komma.)
von G. 4. (g457)


Lesenswert?

> Und wird manches von manchen Prozessoren vermisst, so das man sich
> bei der Prozessorauswahl (bspw zwischen AVR, ARM, DSP) auch von
> den Möglichkeiten der Debug-Schnittstelle leiten lässt ?

Selbstverständlich.

Das war jetzt einfach. HTH
von Axel S. (a-za-z0-9)


Lesenswert?

Harald K. schrieb:
> Bedeutet diese Fragestellung, daß Du Dich mit Microcontrollern oder
> generell dem Thema Programmierung noch nicht näher beschäftigt hast?
>
> Schon Deine Formulierung "wird schmackhaft gemacht", "wird ...
> fabuliert" lässt eine deutlich ablehnende Grundhaltung erkennen.

Das ist eine Frage der Sozialisation. Wenn man erstmal ein paar Jahre 
Software-Entwicklung ohne diese Möglichkeiten hinter sich hat, dann hat 
man Techniken entwickelt um auch ohne sie auszukommen. Ich z.B. habe 
einen Debugger erst in Form des Borland Turbo-Debuggers gegen Ende des 
Studiums kennen gelernt (und mich dann gewundert, wie grottenschlecht 
der Codegenerator/Optimizer von TP ist). Da hatte ich aber schon 10 
Jahre Programmierung mit Z80, Z8 und 6510 (C64) hinter mir.

Speziell bei µC kommt hinzu, daß das meist proprietär und die notwendige 
Software heillos überteuert ist. Für den Heimanwender nicht zu stemmen. 
Die Ausnahme ist SWD auf diversen ARMen. Für meine Projekte für Küche 
und Haus nutze ich seltenst einen Debugger.
von Johnny B. (johnnyb)


Lesenswert?

Bradward B. schrieb:
> Wie sieht es in der Praxis damit aus?

Also bei den STM32 ist das ja standard und es ist schon sehr nützlich, 
wenn zur Laufzeit, also ohne Breakpoints, Variablen und sonstiger 
Speicherinhalt angeschaut werden kann, ohne den Programmablauf zu 
beeinflussen.
von Vanye R. (vanye_rijan)


Lesenswert?

> Das ist eine Frage der Sozialisation. Wenn man erstmal ein paar Jahre
> Software-Entwicklung ohne diese Möglichkeiten hinter sich hat, dann hat
> man Techniken entwickelt um auch ohne sie auszukommen.

Geht aber nur bei kleinen Firmen wo man Einzelentwickler ist. Sonst 
faellt es irgendwann auf das man 10x solange braucht um Fehler zu 
finden.

Und das man SELBSTVERSTAENDLICH einen Debugger benutzt heisst im 
uebrigen nicht das man nicht auch manchmal nur ein Portpin oder serielle 
Schnittstelle benutzt. Debugger ist einfach nur ein zusaetzlich zu 
nutzendes Tool im Werkzeugkasten. Wer den nicht nutzt ist auf dem Stand 
von 1990 stehen geblieben.

Vanye
von J. T. (chaoskind)


Lesenswert?

Bradward B. schrieb:
> Moin,

Wie, deine Frage ist etwas allgemein gehalten und gar nicht auf ein 
spezifisches Problem zugemünzt? So soll man doch gar nicht fragen, motzt 
du doch immer, wenn ich mal eine allgemeine Frage bezüglich eines 
simulierten Problems stelle, das gar nicht auf spezifischer Hardware 
läuft. Leg dich doch erstmal fest, was du eigentlich wissen willst.
von Cartman E. (cartmaneric)


Lesenswert?

Vanye R. schrieb:

> ... Wer den nicht nutzt ist auf dem Stand
> von 1990 stehen geblieben.
>
> Vanye

1990 gab es bereits sehr wohl sehr ordentliche Debugger!
Wenn man den ADB nicht mochte, hätte man sich ja selbst etwas
schreiben können.

Mitte der Sechziger Jahre sah es allerdings noch trüb aus.
von Falk B. (falk)


Lesenswert?

Axel S. schrieb:
> Für meine Projekte für Küche
> und Haus nutze ich seltenst einen Debugger.

Chuck Norris hat auch keinen benutzt. Er hat immer optimierten 
Maschinencode im esten Durchlauf geschrieben! ;-)
von Falk B. (falk)


Lesenswert?

Bradward B. schrieb:
> Wie sieht es in der Praxis damit aus ?

In den letzten 10 Jahren hatte ich 2-3 Projekte in der Firma mit einem 
PICCOLO der C2000 Serie von TI. Dort geht es praktisch gar nicht 
ohne Debugger, denn der ist gleichzeitig auch Programmieradapter. Jaja, 
es geht prinzipiell auch anders, wird aber eher selten genutzt. Mit Code 
Composer Studio läuft das relativ gut. Kann man sich nicht beklagen. 
Wobei mir allerdings der Vergleich zu anderen Debuggern fehlt 8-)
von Klaus H. (klummel69)


Lesenswert?

Beruflich:
Genutzt wird was effektiv ist und hilft Zeit zu sparen.
Debug Interface geht in die Prozessorauswahl ein. Nutze keine 
Prozessoren mehr ohne gutes Interface.
Trotzdem immer Einsatz von Logging Funktionen auch ohne Debugger um im 
Feld Fehler zu analysieren.

Privat: für simple Dinge Arduino mit Logging Ausgabe, aber am liebsten 
ARM mit SWD…
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Vanye R. schrieb:
> Geht aber nur bei kleinen Firmen wo man Einzelentwickler ist. Sonst
> faellt es irgendwann auf das man 10x solange braucht um Fehler zu
> finden.

Das ist Unsinn. Schon damals bei meiner Unternehmensgründung war ein 
Lauterbach TRACE32 ICD eine meine ersten Investitionen und ausgesprochen 
gut angelegtes Geld. Und ich nutze ihn immer noch fast täglich. Vor ca. 
zwei Jahren fragte ich bei Lauterbach nach, ob es ein Upgrade-Angebot 
für einen neuen Hardwarestand gäbe. Das wurde schon fast als Beleidigung 
aufgefasst mit der Feststellung, dass mein Stand (von 2004!) immer noch 
voll unterstützt werde.

Und gerade als "Einzelentwickler" kann man es sich nicht erlauben, viel 
zu lange herumzuwurschteln.
: Bearbeitet durch User
von Klaus H. (klummel69)


Lesenswert?

Bradward B. schrieb:
> Neben dem bekannten "raus pusten von Statusmeldungen über UART"

Für Meldungen ist UART nur eine von vielen Möglichkeiten: SPI, Ethernet…

Mit Debugger zum Beispiel Seggers "Real Time Transfer" über SWD. Das 
möchte ich nicht missen.
von Harald K. (kirnbichler)


Lesenswert?

Andreas S. schrieb:
> Das ist Unsinn.

Ich lese die Aussage nicht so, daß man in kleinen Firmen keine Debugger 
braucht, sondern so, daß man nur in kleinen Firmen ("Frickelbuden") es 
sich überhaupt leisten kann, auf Debugger zu verzichten.
von Hans W. (hanswieland)


Lesenswert?

Ich habe mich daran gewöhnt, Debugger nutzen zu können. Früher ging es 
auch alleine mit printf(). Heute würde ich nur noch ganz kleine Projekte 
ohne Debugger anfangen wollen.
: Bearbeitet durch User
von Martin S. (strubi)


Lesenswert?

Bradward B. schrieb:
> Wie sieht es in der Praxis damit aus ?
> Und wird manches von manchen Prozessoren vermisst, so das man sich bei
> der Prozessorauswahl (bspw zwischen AVR, ARM, DSP) auch von den
> Möglichkeiten der Debug-Schnittstelle leiten lässt ?
>

Ja. Für einen vernünftigen Prozessor erwarte ich heutzutage eine 
fehlerfreie In-Circuit-Emulation (ICE), die komplett non-intrusiv 
arbeitet, also alle relevanten Prozessor-Zustände per Test-Access-Port 
(TAP) gesetzt/zurückgesetzt werden können. Damit hat man eigentlich 
schon gewonnen, sofern ein gewisser Grundsatz im Prozessordesign gilt, 
nämlich der, dass das Emulations-Ereignis (wie durch durch einen 
Breakpoint) wie eine Exception behandelt wird.

> Und an die aus dem FPGA-SoC Bereich:
> Welche "Extras" fürs Software-debugging an/im einem Softcore haben sich
> als nützlich erwiesen ?

Schön sind solche Features wie kleine Speicherarrays um on-chip kleine 
Programmsequenzen per JTAG-TCK-Zyklus zu fahren, um z.B. Speicherblöcke 
auszulesen, oder virtuelle Interfaces zu tunneln (für printf-Debugging 
ohne UART).

Mehr braucht's eigentlich nicht auf CPU-Seite, wenn der JTAG/SWD-TAP 
echte ICE-features bietet. Dementsprechend empfinde ich solche Ungetüme 
wie CoreSight oder die RISC-V/MIPS-Debug-Interfaces eher als unnötige 
Verkomplizierung.

Bei FPGAs ist allerdings die Sache etwas kniffliger, da muss man sich 
mit den architekturabhängigen JTAG-Primitiven herumschlagen, oder halt 
"von Hand" einen separaten JTAG-TAP implementieren.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?

Zwischenfazit:
Eine Frage nach der Debug-Schnittstelle greift eigentlich zu kurz, im 
Kern geht es um:

* Hardwaremodule (debug Unit/ breakpoint unit) im Controller
* debug Host (PC) mit Debug Software
* eine Schnittstelle zwischen den beiden zum Austausch von 
Daten/Kommandos
(siehe Anhang aus: ISBN: 978-0-12-408082-9)

Mancherorts wird zwischen debug und trace features unterschieden, im 
Cortex M3/M4 werden für trace/debug jeweils getrennte Interface benutzt, 
im serial wire debug sind das die Pins SWCLK und SWDIO für Debug und das 
Pin SWO/TDO für Trace

Zur Debugschnittstelle wird gezählt:
* download des programm images
* reset-steuerung
* start/stop/single Step des programms

* breakpoints
* watchpoints
* auslesen/Ändern der Daten von Speicher und Peripherals (on-the-fly 
memory access)
* Zugriff (lesend/schreibend) auf Variablen
* nach einem Halt können die Register innerhalb des Processors 
gelesen/geschrieben werden

Zum Trace (Echtzeit) wird gezählt:
* data watchpoint events (ie. Programm counter-Value, address values, 
..)
* events von Profilining - counters (i.e. timestamps)

IMHO haben bis auf einen (universellen) Speicherzugriff die meisten 
controller die genannten debug-Features seit Jahren.
Frage: hat es den Speicherzugriff auch bei externen Speicher oder 
beschränkt sich das auf internen Speicher (wie bei embedded 
mikrocontrollern eigentlich üblich) ?

Und je nach Arbeitsroutine wird es genutzt oder auch nicht.
Eine Debugschnittstelle taugt nur soviel wie deren Unterstützung durch 
die benutzte IDE.

Im ARM/Cortex Bereich kann man keine allgemeine Aussage zu den 
unterstützten Debug/trace-features geben, das unterschiedet sich doch 
zwischen M0/M3/M4 (siehe Anhang). Die STM32-Reihe benutzt je nach 
Untertyp verschiedenen komplexe Cortex-Cores und hat damit wohl auch 
unterschiedliche Debug-features neben den basic-features 
breakpoint/Einzelschritt.

Nach dem „cyber resiliance act“ sollte eine Debugschnittstelle in 
Geräten mit Netzverbindung deaktiviert sein, um eine Zertifizierung zu 
erreichen. Interessant wird in diesem Zusammenhang, das eine solche 
Schnittstelle auch für Service im Feld benutzt wird, nicht nur zur 
Entwicklung. Damit dürften die Servicemöglichkeiten bei Netzfähigen 
Systemen auf das Einspielen von autorisierter Firmware begrenzt sein.
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> Eine Debugschnittstelle taugt nur soviel wie deren Unterstützung durch
> die benutzte IDE.

Nein. Ich verwende explizit keine IDE zum Debugging, sondern eine 
separate Applikation (TRACE32 GUI), da ich beide Welten separat halten 
will. Für ein paar kleinere Dinge mag es zwar praktisch sein, alles in 
einer IDE zu haben, aber ich will meistens die Quellcodebearbeitung und 
-kompilation getrennt von der Debuggeroberfläche haben. Das ganze setzt 
natürlich hinreichend viel Platz auf den Bildschirmen voraus. Und gerade 
das T32 GUI besitzt enorm viele Features, die eine allgemeine IDE völlig 
überfrachten würden. Außerdem kann ich sie bei laufendem System nebenher 
im Auge behalten und bei längeren Tests immer mal wieder einen Blick 
darauf werfen, ohne den Fokus meiner Arbeit in anderen Programmen zu 
verlieren.

Auf Grund des großen Platzbedarfs nutze ich allerdings auch vier 
Bildschirme und hätte auch schon auf sechs aufgerüstet, wenn das Modell 
der beiden Hauptbildschirme noch auf dem Markt erhältlich wäre.
von Martin S. (strubi)


Lesenswert?

Bradward B. schrieb:
> IMHO haben bis auf einen (universellen) Speicherzugriff die meisten
> controller die genannten debug-Features seit Jahren.
> Frage: hat es den Speicherzugriff auch bei externen Speicher oder
> beschränkt sich das auf internen Speicher (wie bei embedded
> mikrocontrollern eigentlich üblich) ?
>

Siehe ICE, wenn darauf basierend, kann alles, was der Core kann.

> Und je nach Arbeitsroutine wird es genutzt oder auch nicht.
> Eine Debugschnittstelle taugt nur soviel wie deren Unterstützung durch
> die benutzte IDE.

Eine IDE habe ich die letzten 10 Jahre nicht mehr aktiv genutzt, mit gdb 
scripting oder einer Python-API debuggt man deutlich effizienter, gerade 
bei so harten Systembugs, die man sonst iterativ aufspüren muss.

Bradward B. schrieb:
> Nach dem „cyber resiliance act“ sollte eine Debugschnittstelle in
> Geräten mit Netzverbindung deaktiviert sein, um eine Zertifizierung zu
> erreichen. Interessant wird in diesem Zusammenhang, das eine solche
> Schnittstelle auch für Service im Feld benutzt wird, nicht nur zur
> Entwicklung. Damit dürften die Servicemöglichkeiten bei Netzfähigen
> Systemen auf das Einspielen von autorisierter Firmware begrenzt sein.

Wie kommst du darauf? Für JTAG-Debugging muss jemand vor Ort ein Kabel 
anstecken und die Kiste aufschrauben. Autorisierte Firmwareupdates 
laufen eher über Bootloader per Signatur. Wenn der nicht im ROM sitzt 
und gebrickt wird (oder key kaputt), dann greift man allenfalls nochmal 
zum JTAG. Einer Zertifizierung steht das nicht im Weg.

Der andere Aspekt ist, dass man Hardware, die dem "Feind" in die Hände 
fallen könnte, das Auslesen der Firmware verunmöglichen möchte. Das 
Interface wegfusen macht dann final das Törchen zu, Aktivierung nur per 
secret key hat in der Vergangenheit gemischte Resilienz gezeigt, bei 
min. 2 mir bekannten Cores kann man sich beim Powerup in den TAP 
trotzdem reinglitchen.

Was Trace-Debugging angeht, erachte ich den Nutzen auch eher so als 
gemischt, hängt stark vom Core ab, ob echte Trace-Buffer vorliegen, oder 
einfach nur per JTAG (ICE oder BSCAN) gepollt wird (und events verpasst 
werden können).
Bei FPGA SoCs erübrigt sich die Nummer, da man ja eh alles in der 
Simulation tracen kann, für andere Plattformen gibt es Simulatoren wie 
Renode, Skyeye, usw. wo man mit der entsprechenden Trace viel weiter 
kommt.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

>> Eine Debugschnittstelle taugt nur soviel wie deren Unterstützung durch
>> die benutzte IDE.
>
> Nein. Ich verwende explizit keine IDE zum Debugging, sondern eine
> separate Applikation (TRACE32 GUI),

Stimmt natürlich, das mit der IDE (Integrated Development Environment) 
bitte nicht zu eng auslegen, gemeint ist  eben die auf dem Host-PC 
Rechner laufende "Debug/trace)-Steuersoftware.

Wobei viele eben vor dem Debugging nicht die Dokumentation (des 
Debug-Systems/Schnittstelle) konsultieren sondern lediglich in dem 
"Debug"-Menu der IDE herumstochern und nur das verwenden, was dort 
findbar ist.
von Vanye R. (vanye_rijan)


Lesenswert?

> Mitte der Sechziger Jahre sah es allerdings noch trüb aus.

Ich kann nicht beurteilen was damals war, weil noch nicht auf der Welt, 
aber wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern 
gegeben hat dann vermute ich das der gesamte Programmablauf noch ins 
Ingenieurgehirn oder auf zwei Seiten dieses gruen weiss gestreiften 
Papiers gepasst hat oder? :)
Jedenfalls war es 20Jahre spaeter bei mir mit dem MCS48 so. Also da gebe 
ich zu habe ich auch noch durch EPROM wechsel debugt. Aber wir waren arm 
und hatten ja nichts.

Vanye
von Hans W. (hanswieland)


Lesenswert?

Bradward B. schrieb:
> Wobei viele eben ... nur das verwenden,
> was dort findbar ist.

Fühlt sich richtig an, aber:

Gemäß einer Studie liegen die Menschen meistens falsch, wenn sie 
schätzen,  wie sich die anderen verhalten. Deswegen habe ich 
beschlossen, solche Aussagen künftig zu vermeiden.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

>> Mitte der Sechziger Jahre sah es allerdings noch trüb aus.

> aber wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
> gegeben hat dann vermute ich das der gesamte Programmablauf noch ins
> Ingenieurgehirn oder auf zwei Seiten dieses gruen weiss gestreiften
> Papiers gepasst hat oder? :)

Nö, das war damals noch richtige Raketentechnik und es braucht 
Promotionswürdige Erfindungsgabe bei der (fehlertoleranten Echtzeit:-) 
Programmierung:

* 
https://de.wikipedia.org/wiki/Margaret_Hamilton_(Informatikerin)#Apollo_11

Mglw., war auch das grün-weisse gestreifte Papier noch nicht erfunden 
und die einzige Dokumentation war der in Tusche gezeichnete Schaltplan.
: Bearbeitet durch User
von Rolf (rolf22)


Lesenswert?

Vanye R. schrieb:
> wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
> gegeben hat

Garkeinen, den ersten konnte man 1971 kaufen: 
https://de.wikipedia.org/wiki/Intel_4004

Und das war eigentlich nur ein Prozessor (d. h. er hatte keine 
integrierte intelligente Peripherie), also kein Controller.

> Jedenfalls war es 20Jahre spaeter bei mir mit dem MCS48 so. Also da gebe
> ich zu habe ich auch noch durch EPROM wechsel debugt.

In den 1960ern haben ich Assembler im Selbststudium auf dem Großrechner 
der Uni gelernt. Das war ein https://en.wikipedia.org/wiki/CDC_1604A.
Da gab man einen Lochkartenstapel ab und bekam eine Woche später den 
Ausdruck des Quellprogramms zurück, wo der Operator oft genug "Spult 
Magnetband aus" gekritzelt hatte. Das simple OS war nicht vor 
Überschreiben geschützt. Da fing dann das Debuggen im Kopf an. Wer diese 
harte Schule durchlaufen hat, der muss auch ohne Debugger hier nie 
fragen, warum sein Code nicht läuft. :-)
von Cartman E. (cartmaneric)


Lesenswert?

Rolf schrieb:
> Vanye R. schrieb:
>> wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
>> gegeben hat
>
> Garkeinen, den ersten konnte man 1971 kaufen:
> https://de.wikipedia.org/wiki/Intel_4004
>
> Und das war eigentlich nur ein Prozessor (d. h. er hatte keine
> integrierte intelligente Peripherie), also kein Controller.

Aus Slices aufgebaute Prozessoren gab es natürlich schon vor dem
Zwergenhirn 4004/4040.
von Hans W. (hanswieland)


Lesenswert?

Cartman E. schrieb:
> Aus Slices aufgebaute Prozessoren gab es natürlich schon vor dem
> Zwergenhirn 4004/4040.

Ich hatte mich früher schon mal dafür interessiert, wie Prozessoren 
aussahen, bevor sie "Mikro" wurden. Die Fotos von Schränken voller 
Relais und Röhren kenne ich, aber kann man due Variante auf Transistoren 
und Mikrochips auch irgendwo bewundern, falls es sie gab? Damit meine 
ich jetzt nicht die diskreten 6502 Nachbauten und ähnliche Experimente 
aus dem 21. Jahrhundert, sondern Sachen, die früher wirklich ernsthaft 
benutzt wurden.
von Rolf (rolf22)


Lesenswert?

Cartman E. schrieb:
>>> wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
>>> gegeben hat
>>
>> Garkeinen, den ersten konnte man 1971 kaufen:
>> https://de.wikipedia.org/wiki/Intel_4004
>>
>> Und das war eigentlich nur ein Prozessor (d. h. er hatte keine
>> integrierte intelligente Peripherie), also kein Controller.
>
> Aus Slices aufgebaute Prozessoren gab es natürlich schon vor dem
> Zwergenhirn 4004/4040.

Und das waren - ich zitiere - "Embeddedcontroller"?
von Rolf (rolf22)


Lesenswert?

Hans W. schrieb:
> Die Fotos von Schränken voller Relais und Röhren kenne ich, aber kann man
> due Variante auf Transistoren und Mikrochips auch irgendwo bewundern, falls
> es sie gab?

Klar gab es die. Die waren z. T. sogar größer, wegen der umfangreichen 
Peripherie (Speicher usw.) in separaten Schränken.
Die Relais-/Röhren-Rechner waren aber für den kommerziellen Einsatz zu 
teuer, nicht leistungsfähig genug und zu unzuverlässig. Es waren 
Forschungsprojekte.

Früher hieß die IT noch EDV und war interessant für den Einsatz in 
Buchführung, Datenbanken usw. Das fing aber erst so richtig an mit dem
https://en.wikipedia.org/wiki/IBM_System/360

Vorher gab es nur wenige größere Computer auf Halbleiterbasis, die 
meisten standen in Unis. Der erste deutsche Großrechner war der 
https://de.wikipedia.org/wiki/TR_4_(Rechner)
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Ich hatte mich früher schon mal dafür interessiert, wie Prozessoren
> aussahen, bevor sie "Mikro" wurden. Die Fotos von Schränken voller
> Relais und Röhren kenne ich, aber kann man due Variante auf Transistoren
> und Mikrochips auch irgendwo bewundern, falls es sie gab?

Ja, die PDP irgendwas, war ein prozessrechner, stand also bei 
Automibilherstellern am Motorprüfstand, die hatten Transistoren mit 
Golddotierung für die Sättigung. Wurde hier auch mal durchgekaut.
Zu sehen bspw. in der Datarena :

* 
https://www.unibw.de/datarena/web_minidecpdp8e_001.jpg/@@images/image/large
* https://www.unibw.de/datarena
* 
https://commons.wikimedia.org/wiki/Category:PDP-8?uselang=de#/media/File:Okona-GfhR-DEC-PDP-8-Logikgatter.jpg

* Für Ostalgiger: 
https://www.robotrontechnik.de/index.htm?/html/sonderbeitraege/rzs.htm
: Bearbeitet durch User
von Hans-Georg L. (h-g-l)


Lesenswert?

Cartman E. schrieb:
> Rolf schrieb:
>> Vanye R. schrieb:
>>> wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
>>> gegeben hat
>>
>> Garkeinen, den ersten konnte man 1971 kaufen:
>> https://de.wikipedia.org/wiki/Intel_4004
>>
>> Und das war eigentlich nur ein Prozessor (d. h. er hatte keine
>> integrierte intelligente Peripherie), also kein Controller.
>
> Aus Slices aufgebaute Prozessoren gab es natürlich schon vor dem
> Zwergenhirn 4004/4040.

Die 60er Minicomputer waren aus Hybridmodulen aufgebaut.
Die IBM 360 z.B war aus SLT (Solid Logic Technology) Modulen aufgebaut.
Siehe: https://en.wikipedia.org/wiki/Solid_Logic_Technology

Slice Processoren als Chip kamen erst mitte der siebziger mit AMD 2901, 
Intel 3002 und MMI 5701 auf den Markt.

Die erste ALU als Chip war der 74181 mit dem ich meinen ersten Recher 
gebaut hatte. Kurz bevor Elektor den 1974 Computer heraus brachte. Dann 
bekam ich einen 8080 in die Hand ;-)
von Cartman E. (cartmaneric)


Lesenswert?

Rolf schrieb:
> Cartman E. schrieb:
>>>> wenn ich so ueberlege was es in den 60ern an Embeddedcontrollern
>>>> gegeben hat
>>>
>>> Garkeinen, den ersten konnte man 1971 kaufen:
>>> https://de.wikipedia.org/wiki/Intel_4004
>>>
>>> Und das war eigentlich nur ein Prozessor (d. h. er hatte keine
>>> integrierte intelligente Peripherie), also kein Controller.
>>
>> Aus Slices aufgebaute Prozessoren gab es natürlich schon vor dem
>> Zwergenhirn 4004/4040.
>
> Und das waren - ich zitiere - "Embeddedcontroller"?

Ei gewiss. Aber NOFORN.
Wobei die "Kundschaft" eher nicht an Publicity interessiert war.
Und "Kosten" auch keine ausschlaggebende Rolle spielten.
Solange das eine abgegrenzte Baugruppe ist, sehe ich kein Problem
in der Verwendung des Begriffs: "Embeddedcontroller".

Und klugscheiss: Ein 4004 war ein Prozessor, also standalone
auch nix mit "Embeddedcontroller". Also ein ganz schlechtes
Beispiel.
von Hans W. (hanswieland)


Lesenswert?

Dankeschön. Mit den Begriffen findet man einiges. Meine "Welt" begann 
erst später mit dem IBM XT. Der hatte ja schon einen Mikroprozessor, wie 
wir ihn heute kennen (nur primitiver). Assembler hatte ich zuerst auf 
einem C64 (6502) gelernt. In eigenen Schaltungen habe ich mit dem 8031 
angefangen.
: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> Ja, die PDP irgendwas, war ein prozessrechner, stand also bei
> Automibilherstellern am Motorprüfstand, die hatten Transistoren mit
> Golddotierung für die Sättigung.

Naja, es gab nicht nur "die" PDP irgendwas, sondern die Familien PDP-1 
bis PDP-16, die in alle möglichen Technologien aufgebaut waren, d.h. vom 
diskret mit Transistoren aufgebauten Einzelgatter über niedrig 
integrierte ICs bis hin zu vergleichsweise modernen hochintegrierten 
Prozessoren wie z.B. Jaws-11 und Fonz-11. Letztere sind Multichipmodule 
auf keramischem Träger, wie man sie auch heutzutage bis einigen 
Mikroprozessoren noch bzw. wieder findet.

Die mit Abstand verbreitetste Familie war DEC PDP-11, als Nachfolger von 
PDP-8. Sie ist auch heutzutage noch im Einsatz.

Die großen PDP-10-Systeme, auch unter DECsystem-10 und DECsystem-20 
bekannt, waren ganz klar im Bereich der klassischen Großrechner 
angesiedelt, mit teils zigtausend Benutzern. Compuserve basierte 
komplett auf einem Haufen weltweit verteilten PDP-10-Systemen mit einem 
eigenen Betriebssystem. Ich kann mich auch noch sehr gut an meine 
Studienzeit erinnern, als eine gigantische PDP-10 im Rechenzentrum lief 
und dort aus etlichen Reihen an Schränken bestand. Die anderen dortigen 
Großrecher waren eine Siemens Fujitsu H90 mit ähnlichen Dimensionen wie 
die PDP-10, eine Cray XMP 216, eine Convex C-irgendwas und natürlich der 
von mir überwiegend genutzte VAX-Cluster aus etlichen Systemen 
verschiedener Generationen.
von Harald K. (kirnbichler)


Lesenswert?

Das ist ja schön, daß die Rollatorengruppe* jetzt in ihren 
Minicomputererinnerungen schwelgen kann, aber mit einem "embedded 
controller" oder auch Microcontroller haben die, abgesehen davon, daß 
sie Strom verbrauchen, eher nichts bis überhaupt nichts zu tun.

Auch ein IBM PC hat nichts mit einem Microcontroller zu tun.

Der Threadersteller fragte einigermaßen konkret nach dem Debugging von 
"embedded controllern", und hat damit so etwas wie JTAG, SWD oder 
ähnliches gemeint.

*) Sorry, Leute, ich bin ja auch schon etwas weniger jung, aber um PDP & 
Co. in einer Diskussion über "embedded controller" anzubringen, muss man 
noch einige Jahrzehnte älter sein, also so aus der Altersklasse des 
"alten Knackers" stammen, oder gar den als Jüngling betrachten ...
von Hans W. (hanswieland)


Lesenswert?

Harald K. schrieb:
> Sorry, Leute,

Ist das dein Topic?
von Harald K. (kirnbichler)


Lesenswert?

Hans W. schrieb:
> Ist das dein Topic?

Nö, aber genausogut, wie hier jemand was über Minicomputer posten kann, 
kann ich (oder irgendjemand anderes) das auch kritisieren.

Wem "das Topic" 'gehört' spielt dabei keine Rolle.
von Hans W. (hanswieland)


Lesenswert?

Harald K. schrieb:
>> Ist das dein Topic?
> Nö

Der TO hat selbst mit der Nostalgie angefangen. Wer das blöd findet darf 
sich gerne heraus halten.
: Bearbeitet durch User
Beitrag #8047563 wurde vom Autor gelöscht.
von Harald K. (kirnbichler)


Lesenswert?

Hans W. schrieb:
> Wer das blöd findet darf
> sich gerne heraus halten.

Darf. Muss aber nicht.
von Rick (rick)


Lesenswert?

Rolf schrieb:
> Die Relais-/Röhren-Rechner waren aber für den kommerziellen Einsatz zu
> teuer, nicht leistungsfähig genug und zu unzuverlässig.
Vielleicht die Beispiele, die du kennst.

Gegenbeispiel:
https://www.spiegel.de/geschichte/erster-ddr-computer-oprema-a-951147.html
von Vanye R. (vanye_rijan)


Lesenswert?

> aber mit einem "embedded
> controller" oder auch Microcontroller haben die, abgesehen davon, daß
> sie Strom verbrauchen, eher nichts bis überhaupt nichts zu tun.

Yep, hab ich gerade auch so gedacht. Embedded fing nach meinem 
dafuerhalten so mit dem MCS48 an. Und damals gab es wohl die 
Zweiteilung. Leute in einer grossen Firma mit Kohle hatten mindestens 
einen Epromemulator oder gleich einen Emulator fuer die ganze MCU und 
die armen und auch mein Kinderzimmer hatte nur ein Eprombrenner und 
Loescher. Da hat man also nicht nicht mit einem Debugger gearbeitet. Man 
musste aus armer Verzweiflung oder seeliger Unkenntnis ohne auskommen. 
Umso weniger kann ich es verstehen wenn einer heute solche Tools nicht 
nutzen will. Das ist ja so als wenn einer freiwillig barfuss durch den 
Schnee 10km zur Schule laufen will obwohl er ein Hooverboard nutzen 
koennte.

Vanye
von Rick (rick)


Lesenswert?

ab 1974: TMS 1000
https://de.wikipedia.org/wiki/Texas_Instruments_TMS1000

Vanye R. schrieb:
> Embedded fing nach meinem
> dafuerhalten so mit dem MCS48 an.

ab 1976: MCS-48
https://de.wikipedia.org/wiki/Intel_MCS-48

Aber passt schon, Intel dürfte mit 8 Bit populärer gewesen sein, als TI 
mit nur 4 Bit...
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Cartman E. schrieb:
> Und klugscheiss: Ein 4004 war ein Prozessor, also standalone
> auch nix mit "Embeddedcontroller". Also ein /ganz schlechtes/
> Beispiel.

"Embedded" bezieht sich aber nicht auf den Integrationsgrad (Einzelchip 
vs. Mehrchip), sondern eher auf die Verwendung als integrierte 
Gerätesteuerung statt als "Universalrechner". Die Abgrenzung mag 
teilweise schwer sein, z.B. bei einem Laborgerät mit einer PDP-8 oder 
PDP-11 und einem Terminal. Ganz klare "Embedded"-Anwendungen sind aber 
das erste mikroprozessorbasierte Motorsteuergerät (~1975 in Serie) von 
Ford mit einem Toshiba TLCS-12 (1973) sowie unzählige, teils auch heute 
noch in Betrieb befindliche Fußgängerampeln mit Intel 4004.

Ich gehe aber weiter und (nicht nur ich) behaupte, dass auch z.B. die im 
Rahmen des Apollo-Programms eingesetzten Computer (AGC, LVDC, AGS) als 
"Embedded Controller" zu bezeichnen sind. Insbesondere beim AGC handelt 
es sich um den allerersten Computer, bei dem ICs eingesetzt wurden, 
allerdings bei den ersten Versionen nur als Einzelgatter.

Diese Einschätzung bzw. Definition wird auch hier vertreten:
https://de.wikipedia.org/wiki/Apollo_Guidance_Computer
: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Harald K. schrieb:
> Ich lese die Aussage nicht so, daß man in kleinen Firmen keine Debugger
> braucht, sondern so, daß man nur in kleinen Firmen ("Frickelbuden") es
> sich überhaupt leisten kann, auf Debugger zu verzichten.

Gerade als Kleinunternehmen kann man es sich nicht erlauben, bei 
hinreichend komplexen Projekten auf Debugger zu verzichten.

Ganz im Gegenteil habe ich es bei einem Projekt mit einem seeehr großen 
Konzern erlebt, dass dort auf die Anschaffung von Debuggern verzichtet 
werden sollte, weil das ja früher(tm) auch ohne funktionierte. Im Rahmen 
dieses Projektes musste aber auf Wunsch des Projektleiters auch so 
ziemlich jede andere moderne Methodik verzichtet werden. Stattdessen 
musste unbedingt auch der VHDL-Code zwangsweise wiederverwendet werden, 
den er Anfang der 1990er Jahre mal für das Vorgängerprodukt geschrieben 
hatte und für das aktuelle Projekt völlig ungeeignet war. Auf Grund 
einiger "sehr spezieller" Merkmale hätte dieser Code auch einen 
Ehrenplatz in der Vitrine der Antipattern verdient.

Als kleines oder mittleres Unternehmen würde man an solche einem Projekt 
pleite gehen, aber im Großunternehmen interessiert das keine Sau. Ich 
teile durchaus die Einschätzung einiger ausländischer Fachleute, die 
Deutschland großenteils als Industriemuseum betrachten.
: Bearbeitet durch User
von Soul E. (soul_eye)


Lesenswert?

Andreas S. schrieb:
> Ich gehe aber weiter und (nicht nur ich) behaupte, dass auch z.B. die im
> Rahmen des Apollo-Programms eingesetzten Computer (AGC, LVDC, AGS) als
> "Embedded Controller" zu bezeichnen sind.

So ist es. "Embedded" bedeutet, dass der Computer mit festgelegtem 
Programm Bestandteil der Anlage ist.

Im Gegensatz zur generischen EDV, wo ein und die selbe Hardware immer 
wieder andere Aufgaben übernimmt, je nachdem welchen Programm von 
Lochkarte, Diskette oder SSD geladen wurde.
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.