Hey Leute, ich bin ein Informatikstudent im 2. Jahr an der TU Berlin. Nun verwenden wir in einer Vorlesung den MC68000 von Motorolla um die Grundlagen von Assemblar daran zu lernen. Da ich noch nie etwas damit zu tun hatte, und mein Bereich eher das Webdevelopment und Java ist bin ich nicht sehr bewandert in der Assemblerprogrammierung. Jedoch wurde mein Interesse daran geweckt. Da ich aber eher ein etwas praktischerer Mensch bin und gerne Ergebnisse sehe wenn ich etwas fabriziert habe und nicht auf Emulatoren stehe würde ich das was ich lerne gerne direkt auf einem richtige Prozessor/Mikrocontroller anwenden und auch außerhalb des regulären Unterrichts ein wenig damit experimentieren. Nun meine Frage an die Erfahrenen von euch. Ich habe hier schon dieses "Allroundpacket von Atmel gesehen das STK500" das ich aus bequemlichkeit nicht alles selber bauen zu müssen holen würde. Jedoch weiß ich nicht ob die Befehlssätze des MC68000 und die des Atmel ähnlich sind, denn es bringt mir nichts parallel zwei verschiedenen Assembler zu lernen. Daher nun die richtige Frage, welchen Mikrocontroller bzw. Starterkit wäre hier der passenste damit ich das was ich im Studium lernen umsetzen kann. Vielleicht auch etwas neueres, was aber dem selber Assemblercode zugrunde liegt. Bin dankbar für jeden Hinweis und jede Antwort.
> Jedoch weiß ich nicht ob die Befehlssätze des MC68000 und die des Atmel > ähnlich sind Da liegen Welten dazwischen.
Benjamin Mateev wrote: > Jedoch weiß ich nicht ob die Befehlssätze des MC68000 und die des Atmel > ähnlich sind, Kein bischen ähnlich. Ein entfernte Ähnlichkeit findet sich bei der MSP430 Familie von TI. Microcontroller der 68000 oder von 68000 abgeleiten Coldfire Familie gibt's zwar auch, aber erst in erheblich höherer Preisklasse. > denn es bringt mir nichts parallel zwei verschiedenen Assembler > zu lernen. Da bin ich mir nicht so sicher. Wenn du das ganze nicht nur unter dem Aspekt "muss ich als Theoretiker halt durch" abhandeln willst, sondern dich evtl. auch später mit ähnlich hardwarenahen Themen befasst, dann ist es eher von Vorteil, mal unterschiedliche Ansätze gesehen zu haben. Und dafür ist AVR aufgrund des abweichenden eher RISC-orientierten Ansatzes ganz praktisch. Ist schon etwas länger her, aber mein Prof fand es passend, Assembler-Programmierung anhand eines programmierbaren TI Taschenrechners zu lehren (hatte er wohl grad frisch erstanden). Das würde ich allerdings nicht uneingeschränkt empfehlen, auch wenn gewisse Ähnlichkeiten tatsächlich vorhanden waren ;-)
Gut also muss ich mich wohl damit abfinden, dass ich noch parallel etwas machen werden muss. Mir gings zum Teil darum dass ich das was ich in der Uni lerne halt etwas anwenden kann damit ich es gerade nicht nur als Theoriescheiß hinter mich bringe, sondern das was hängen bleibt. Sonst geh ich denke ich nicht unbedingt davon aus dass ich später was damit machen will. Eher als Hobby vielleicht. Bleibt also dabei am Besten für den Anfang as STK500 zu kaufen oder doch was anderes? Danke schonmal für die bisherigen Antworten.
Wenn du nix großes machen willst, sondern nur ein wenig mit dem ASM auf einem ganz winzigen Prozessorchen rumbasteln - warum besorgst du dir dann nicht eZ430-F2013? Das ist ein USB-Adapter mit MSP430-Headerboard und in der Codegröße beschränkter IAR-Entwicklungsumgebung. Kostet nicht viel und ist zum rumprobieren prima.
Benjamin Mateev wrote: > Gut also muss ich mich wohl damit abfinden, dass ich noch parallel > etwas machen werden muss. Mir gings zum Teil darum dass ich das was ich > in der Uni lerne halt etwas anwenden kann damit ich es gerade nicht nur > als Theoriescheiß hinter mich bringe, sondern das was hängen bleibt. Keine Sorge. Assembler lernst du an der Uni nicht, um was über 68000 zu lernen. Aufgrund der dort lehrenden Atari/Amiga-Generation dürfte das zwar ein eher typischer Fall sein. Aber eigentlich geht es darum, die Prinzipien der Assembler-Programmierung zu lernen. Und die sind ziemlich universell. > Bleibt also dabei am Besten für den Anfang as STK500 zu kaufen oder doch > was anderes? Nachteilig ist, dass Debugging auf Registerebene damit nicht ohne Zusatzhardware möglich ist. Dafür ist eher der AVR Dragon sinnvoll. Gab's bis vor Kurzem sehr günstig im Doppelpack, Pech. Insofern könnte eine der Entwicklungsplatinen aus dem hiesigen Shop plus Dragon eine sinnvollere Kombination sein. Vorausgesetzt, du traust dir zu, so ein Ding um irgendwelchen Anzeige-LEDs anzureichern, oder womit auch immer du anfangen willst.
Uhu Uhuhu wrote: > Das ist ein USB-Adapter mit MSP430-Headerboard und in der Codegröße > beschränkter IAR-Entwicklungsumgebung. Kostet nicht viel und ist zum > rumprobieren prima. Solange man nicht auf die Idee kommt, daraus irgendeinen praktischen Nutzen zu ziehen, sondern damit zufrieden ist, im Debugger die Bits flitzen zu sehen, ist das Teil durchaus geeignet. Nur wenn man was damit konkretes anfangen will, dann wird's bauartbedingt etwas pfriemelig.
Hi Benjamin, Du kannst ja vielleicht mal etwas herumgoogeln und/oder in Foren und Newsgroups fragen, ob irgendjemand noch sowas wie die c't Kat-CE herumliegen hat und sie Dir evtl. günstig vermachen möchte. Dann hättest Du ein hübsches kleines Einplatinensystem mit 68000, auf dem man sehr schön in Assembler (oder Pascal) herumspielen kann. Ist nur noch die Frage, ob das alte (DOS Turbo-Pascal-)Programm zur Kommunikation mit dem Teil auf moderneren Betriebssystemen läuft...
> Nur wenn man was damit konkretes anfangen will, dann wird's bauartbedingt > etwas pfriemelig. Na ja, Asm ist eben etwas pfriemelig. Ich hab mit dem Teil immerhin schon mal eine nette kleine Steuerung gebastelt, die mir gute Dienste geleistet hat. Das Headerboard hab ich durch eine kleine Verlängerungsstrippe mit einem 4-fach-Pfostenstecker am Ende ersetzt und damit einen DIL MSP430-2011 in meiner Schaltung programmiert. War wirklich lustig. Von den 2 KB Flash, die das Ding hat, habe ich keine 600 Byte verbraten. Generell ist es eine gute Idee, ganz kleine Sachen mit ASM zu machen - da bleibt es schön übersichtlich und artet nicht in Arbeit aus und der Lerneffekt kommt keineswegs zu kurz dabei...
Ich habe noch 2 bestückte und funktionierende KatCe 1.4 mit 68010 drauf, ich habe aber nicht das orgininale Os drauf sondern habe mir den Motorola Fbug mal angepaßt. entwickelt habe ich mit einem GCC unter FreeBSD. Liegt aber jetzt schon lange das Zeuch... Der 68010 gefiel mir wegen der variablen Vectorbasis besser :-) Gruß, Holm
Die kleinen Coldfire V2 (z.B. MFC5212) sind auch noch lötbar (QFP64) und kann man bei Freescale als Sample bestellen. Über den EzPort lassen sie sich auch relativ leicht wie ein SPI-Flash programmieren. Gruß Jörg
Ja, aber der Benjamin wollte ja erst mal mit der Software-Seite anfangen. Da sollten wir vielleicht jetzt mit dem Aufreissen neuer Baustellen (System mit ColdFire von Grund auf selber bauen) etwas warten... ;-))
Hallo, ich würde an deiner Stelle mal versuchen eine alten Atari St günstig bei E-Bay zu bekommen, da hast Du alles was Du brauchst Es wird sich sicherlich positiv auf deine Klausur auswirken wenn du auch auf dem Prozessor übst den Ihr da verwendet. Es gab früher mal ein paar gabz nette boards mit dem 68332 aber die sind kaum noch zu bekommen. Eckhard
> warum besorgst du dir dann nicht eZ430-F2013? Das ist schon ein cooles Teil, vor allem was die Darreichungsform betrifft. Da Benjamin am liebsten etwas fertiges benutzen und nicht nur trocken Programmieren, sondern Action sehen möchte, ist ein Board, wo ein Bisschen Peripherie in Form von LEDs, Tastern u.ä. bereits draufgelötet ist, sicher von Vorteil. > ob irgendjemand noch sowas wie die c't Kat-CE herumliegen hat ... > Ist nur noch die Frage, ob das alte (DOS Turbo-Pascal-)Programm zur > Kommunikation mit dem Teil auf moderneren Betriebssystemen läuft... Was diesen ollen Boards etwas fehlt, ist eine größere Anwender- Community. AVR Fragen werden bspw. hier im Forum in Windeseile beantwortet, stell hier aber mal eine Frage zum Kat-CE ;-) Deswegen ist ein STK500 oder auch das berühmte Pollin-Board für 15 Kröten sicher keine schlechte Wahl. Stopp, das Pollin-Board nehm ich wieder zurück, das ist ja ein Bausatz zum Löten :-( Was die Debugmöglichkeiten ala AVR Dragon betrifft: Das ist sicher eine feine Sache, aber kein absolutes Muss. Ich selbst habe so etwas (aus Geiz und Faulheit, mir die Software einzurichten) noch nie benutzt. Vielleicht auch einfach nur deswegen, weil ich fehlerfrei programmiere ;-) Zum Thema 68k oder AVR: Ich behaupte mal ganz provokativ: Der AVR ist nichts anderes als ein abgespeckter und leicht modifizierter 68k. Die Unterschiede: Er hat ein paar Befehle und Adressierungsarten weniger und eine geringere Wortbreite. Die Gemeinsamkeiten: Er hat aber wie der 68k viele universell verwendbare Register (sogar doppelt so viele als der 68k), fast die gleichen Statusflags, Rechenoperationen und Sprungbefehle und einen linear adressierbaren Adressraum. Die meisten CISC-Befehle (LINK, DBcc usw.) des 68k, die der AVR nicht hat, lassen sich direkt in zwei bis drei AVR-Befehle umsetzen. Lediglich die Assemblersyntax ist unterschiedlich, da muss man halt durch. Wer aber einmal einen der beiden Prozessortypen in Assembler programmieren kann, lernt den anderen garantiert in einem Drittel der Zeit. Andere 8-Bit-Prozessoren wie der 6502 sind da etwas anders: nur ein Rechenregister (Akkumulator), sonst nur Spezialregister mit stark eingeschränkter Nutzbarkeit, spezielle Speicherbereiche (Nullseite, Stackseite) usw. Bei solchen Prozessoren muss man beim Programmieren noch richtig denken. Und noch etwas: Ich finde es super, wenn ein selbsterklärter Webdeveloper Interesse für solch niederen Gefielde wie die Assemblerprogrammierung zeigt. Btw: Man kann auch auf winzigen Mikrocontrollern einen Web-Server realisieren.
yalu wrote: > Was die Debugmöglichkeiten ala AVR Dragon betrifft: Das ist sicher > eine feine Sache, aber kein absolutes Muss. Benutze ich auch eher selten. Aber für den Anfänger dürfte es klar von Vorteil sein, die Abläufe konkret sehen zu können, daher hatte ich das erwähnt. > Andere 8-Bit-Prozessoren wie der 6502 sind da etwas anders: Behaupte ich mal ganz provokant: Da hat der 6502 nun 128 Adressregister und yalu ist immer noch nicht zufrieden ;-).
> Behaupte ich mal ganz provokant: Da hat der 6502 nun 128 > Adressregister und yalu ist immer noch nicht zufrieden ;-). Ah, einer, der sich mit diesen rostigen Dingern noch auskennt ;-) Du sprichst wahrscheinlich die Indexed-Indirect- und Indirect-Indexed- Adressierungsarten an. Und diese Adress-"Register" sind sogar 16 Bit breit, also was will man mehr? Hast schon recht, die Nullseite des Hauptspeichers ist ja tatsächlich als so eine Art Registerbank mit schnellem Zugriff vorgesehen. Trotzdem kann man sie für Rechenoperationen nicht ganz so universell verwenden wie die Prozessorregister im 68k oder AVR, da in den meisten Fällen (Ausnahmen sind INC und DEC) die Werte für Berechnungen erst in den Akku geladen werden müssen.
> Jedoch weiß ich nicht ob die Befehlssätze des MC68000 und die des Atmel > ähnlich sind, denn es bringt mir nichts parallel zwei verschiedenen > Assembler zu lernen. 68k und AVRs haben nur wenig miteinander zutun. Vermutlich duerfte dein Prof deshalb den 68k gewaehlt haben um dir das Leben leichter zu machen weil die einen sehr schoenen Befehlssatz haben. Es waere durchaus denkbar sich ein Board auf Basis eines 68332 zu kaufen. Das ist ein Microcontroller auf 68020 Basis. Allerdings spielen die in einer ganz anderen Liga als AVRs. Allein z.b das Handbuch ueber die TPU im Controller, das ist ein 2. Prozessor fuer IO Aufgaben ist bereits so dick wie das Datenblatt eines kompletten AVRs. Da die Dinger immer externes Ram/Rom brauchen und sehr viele Beine haben ist das normalerweise ein Multilayerboard. Sowas ist deutlich teurer, allerdings hat man dann auch gleich 512k-1Mb Ram zur verfuegung und Flash liegt in aehnlichen Groessenordnungen. Normalerweise programmiert man sowas aber nicht mehr in Assembler. :-) Assembler lernst du weil es absolut notwendig ist zu verstehen wie ein Prozessor oder Compiler im inneren arbeitet. Wenn du jemals Programme schreiben moechtest die sich ueber den unzuverlaessigen Klicki-bunti scheiss der Windows welt erheben sollen ist das notwendig. Merke: Die meisten Leute akzeptieren es als normal wenn ihr neuer PC/PDA alle 1-2Wochen neu booten muss oder abstuerzt, aber das Steuergeraet im Auto, Videorecorder oder deiner Herzlungenmachine darf das nicht. Nun kann ich aber durchaus verstehen das du auch mal was zum spielen haben moechtest. :-) Die hier bereits erwaehnte Ansatz sich etwas altes zu kaufen ist garnicht so dumm. Aber bitte keinen Atari oder Amiga. Nicht das die schlecht sind, ich hab auch noch einen MegaST4 im Keller, aber sowas nimmt einfach zuviel Platz weg (2. Monitor) und du hast heute das Problem nur umstaendlich an Informationen ueber das System zu kommen. Ich empfehle dir eher dir einen alten Palmpiloten zu kaufen. Da ist eine Dragonball-CPU drin. Das ist ein 68k mit Interface fuer ein LCD. Ich schaetze mal das du so ein Dingen bei Ebay fuer eine Zwannii oder weniger bekommen kannst. Ich glaub billiger kann man an ein Controllerboard fuer 68k mit LCD und Gehaeuse nicht kommen. Und du kannst das Dingen auch einfach mal mitnehmen und die Ergebnisse deiner Kunst mit Kumpels diskutieren. Olaf
Olaf wrote: > 68k und AVRs haben nur wenig miteinander zutun. Vermutlich duerfte dein > Prof deshalb den 68k gewaehlt haben um dir das Leben leichter zu machen > weil die einen sehr schoenen Befehlssatz haben. Wahrscheinlicher liegt es am Alter vom Prof. Den kennt er. Die Chancen stehen gut, dass der in jüngeren Jahren mit Atari oder Amiga rumspielte.
> Zum Thema 68k oder AVR: > Ich behaupte mal ganz provokativ: Der AVR ist nichts anderes als ein > abgespeckter und leicht modifizierter 68k. Dann sind so ziemlich alle Architekturen gleich... > Die Gemeinsamkeiten: Er hat aber wie der 68k viele universell > verwendbare Register (sogar doppelt so viele als der 68k), AVR und universell verwendbare Register ala X, Y, Z? Oder die Ziele von ldi oder mul? > und einen linear adressierbaren Adressraum. Nur mit dem völlig unwesentlichen Unterschied das der eine Harvard und der andere von-Neumann folgt... > Die meisten CISC-Befehle (LINK, DBcc > usw.) des 68k, die der AVR nicht hat, lassen sich direkt in zwei bis > drei AVR-Befehle umsetzen. Selbst die normalen Befehle lassen sich nicht in zwei bis drei AVR-Befehle packen. Mal ein paar Beispiele: cmpm.l (a0)+, (a1)+ ror.l #7, d7 divs.w (a1)+, d2 move.w 0(a0, d1.l), 4(a1, d2.w) bchg.l #29, 0x1234(a5) add.l d0, 0(a4, d1.l) abcd -(a3), -(a4) jsr 12(a3, d2.l) "Sonderfälle" ala chk.l (sp)+, d2 movem.l d0-d4/d7/a0-a6, -(sp) movep.l 1(a0), d0 mal aussen vor
Sagte ich nicht, daß zwischen AVR und 68000 Welten liegen? Aber um die Debatte mal auf eine etwas andere Schiene zu bringen: Das Wichtigste wenn man die Maschinensprache eines Prozessors lernt, ist, daß man das Maschinenmodell verstanden hat. Die Assemblersyntax hat i.W. nichts mit dem Prozessor zu tun, sondern ist eine Eigenschaft des Assemblers, der den Code für den Prozessor erzeugt. Es kann und gibt häufig für ein und denselben Prozessortyp verschiedene Assembler, die mit unterschiedlicher Syntax zu füttern sind. Das was hinten herauskommt, ist aber im Kern dasselbe: Eine Folge von binär codierten Befehlen für die Zielmaschine. Als Einsteigermodell ist der 68000 hervorragend geeignet, denn das Maschinenmodell ist sehr symmetrisch und arm an Spezialfällen, wie 'Befehl X operiert nur auf den Registern A,B und P' oder ähnliche Geschichten, wie sie z.B. auf dem 8086 - der übrigens erst einige Zeit nach den ersten 68000ern auf dem Markt verfügbar war - durch den ganzen Befehlssatz gestreut sind. Er hat als Einstig den Vorteil, daß man sich nicht mit dem auswendiglernen von irgendwelchem Ballast abgeben muß, sondern sehr schnell das Wesentliche erkennt. Wenn die Grundbegriffe gelernt und das Wissen gefestigt ist, arbeitet man sich auf andere Maschinenmodelle sehr leicht ein, auch wenn sie etwas verschrumpelt daherkommen.
> Ich empfehle dir eher dir einen alten Palmpiloten zu kaufen. Da ist eine > Dragonball-CPU drin. Das ist ein 68k mit Interface fuer ein LCD. Ich > schaetze mal das du so ein Dingen bei Ebay fuer eine Zwannii oder > weniger bekommen kannst. Warum? Die Entwicklungsumgebung samt vollständigem Palm-Emulator gibt's (gab's?) vom Hersteller (Wobei Palm-OS so ziemlich das letzte ist, was auf einem 68k laufen sollte. Schwachsinniges Resourceskonzept und eine interne Struktur, die den Sinn eines linearen Adressraums vollständig ad absurdum führt und alles in sinnlose 64k - x Häppchen zerlegt (mit "Tricks" sind zumindest Speicheranforderungen >64k möglich), von der Implementation des "OS" mal ganz zu schweigen). Also entweder einen gebrauchten ST/Amiga/uralten Mac/NextStation/Sun besorgen oder einen der frei verfügbaren Emulatoren verwenden (die beiden letztgenannten sind hin und wieder auch mal in einem Uni-Lagerraum zu finden).
> "Tricks" sind zumindest Speicheranforderungen >64k möglich), von der > Implementation des "OS" mal ganz zu schweigen). Weisst du es hindert einen ja niemanden daran, und erst recht nicht einen Informatikstudenten, sich ein eigenes Betriebssystem auszudenken. Grosse Karieren haben schon so begonnen. :-) Es geht darum das man fuer sehr wenig Geld eine fertige Hadrware bekommt die erstmal laeuft. Mal ganz davon abgesehen das man selbst wenn man sich auf die Beschraenkungen von PalmOS einlaesst die 64kb in Assembler programmiert erstmal voll bekommen muss. > Also entweder einen gebrauchten ST/Amiga/uralten Mac/NextStation/Sun Mal abgesehen davon das du dafuer teilweise schon Liebhaberpreise bezahlst, vergiss den passenden Monitor auf dem Schreibtisch nicht. Finde ich alles ein bisschen viel rumgehampel fuer eine Spielerei. Uebrigens wenn du mir einen Cube fuer 20Kroeten besorgen kannst, ich nehm ihn! Und emulieren kann er ja jetzt schon, will er aber nicht. Olaf
Oh mein Gott Leute, das ist ja der Wahnsinn. So eine Resonanz hab ich in einem Forum noch nie gesehen. Respekt, denn ich war schon in einigen anderen. Ich hab grad mal einen 16h nicht hier reingeguckt weil ich zu tun hatte und nun eröffnet sich mir ein Bild, das ist ja wie als ob ich aus 10 Mehlsorten wäheln müsste. :) Echt genial, aber ich muss mir das alles mal ganz in Ruhe durchlesen und alles was erwähnt wurde recherchiert. Denn, ihr habt mir auf jeden Fall viel Stoff gegeben und mir auch einw enig Mut gemacht. Das Problem wäre sonst gewesen dass ich wohl wirklich nur auf das STK500 zurückgegriffen hätte, einfach weil das das erste ist was ich auf dieser Seite hier gefunden hab. Aber so hätte ich von all den anderen Möglichkeiten nie erfahren, ihr seid echte Pros. Und danke für das Lob dass sich ein Webdeveloper mit sowas beschäftigt, aber was für ein Informatikstudent wäre man denn wenn man sich nur mit einer Sache beschäftigen würde. ;) Ich finde man sollte in allen Bereich so gut wie möglich bescheid wissen und da ich zum Teil die nötige Zeit und ein wenig Geld habe sehe ich es als interessante Investition an. Also vielen danke, und falls noch redebedarf besteht, lass euch ruhig weiter aus, ich finds echt interessant. :)
Ok, ich mache gerade mal weiter ;-) Olaf schrieb: > Ich empfehle dir eher dir einen alten Palmpiloten zu kaufen. Da ist > eine Dragonball-CPU drin. Das ist ein 68k mit Interface fuer ein > LCD. Ich weiß nicht so richtig, on ein Palm die richtige Plattform ist, um darauf sein erstes Assemblerprogramm zu schreiben. Auf einem AVR eine LED einzuschalten, braucht ja nur ein paar Assemblerinstruktionen, da hat man als Anfänger schon nach wenigen Minuten, nachdem man die Bedienung der Tool-Chain verstanden hat, das erste Erfolgserlebnis. Um aber auf einem Palm etwas auf dem LCD auszugeben (viele andere Ausgabemedien gibt es ja nicht), muss man sich selbst als C-Programmierer erst einmal durch einiges an Doku wühlen. Wie sieht das erst aus, wenn man das Ganze in Assembler machen will?
Es gibt doch super emulatoren für Amiga. Also ein Windows-Programm welches einen kompletten Amiga simuliert. Da kann man auch unter AmigaOS mit ASM programmieren. Quellcodes für Amiga gibts massig...
Ein Super Amiga Debugger ist der "Beer Mon". Dis/Assembliert alles und hat ein paar nette beigaben. IHMO die perfekte 68k Dev ASM Suite (Software Side). Danach sollte man eigentlich alles was mit VonNeumann zu tun hat umgehen können.
Moin, der Elektronikladen in Detmold hat in den 90ern verschiedene Einplatinen- microcomputer vertrieben und macht es immer noch. Vielleicht findest Du da etwas passendes. Viel Spass Stefan
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.