Hardware > Firebee
Firebee-Coldfire Assembler Coding
mfro:
Grundsätzlich gilt für Coldfire-Assembler: Instruktionen sind 1-3 (16-Bit) Worte lang.
Das bedeutet dann natürlich: alles, was einen m68k-Befehl länger macht als drei Worte, gibt's bei Coldfire nicht. Also gibt's auch "immediate word" nach "immediate long" nicht als Adressierungsart (das wäre ja ein 4 Worte langer Befehl), das muß stattdessen durch ein Register durch. "Übersetzungsmöglichkeiten" gibt's viele, es muß nicht unbedingt die sein, die die cf68klib verwendet (die ist meist, allerdings längst nicht immer, optimal).
--- Code: ---move.w #$700,$ffff8240 red background color
--- Ende Code ---
Hier kannst Du den linken oder auch den rechten Operanden in ein Register packen:
--- Code: --- move.w #0x700,d0
move.w d0,0xffff8240
--- Ende Code ---
--- Code: --- move.l #0xffff8240,a0
move.w #0x700,(a0)
--- Ende Code ---
Wenn Du ernsthaft mit Coldfire-Assembler programmieren willst, brauchst Du jedenfalls das entsprechende Manual dazu: www.freescale.com/files/dsp/doc/ref_manual/CFPRM.pdf und am besten holst Du dir auch gleich das Hardware Reference Manual zum MCF5474: www.freescale.com/files/32bit/doc/ref_manual/MCF5475RM.pdf. Der MCF5474, wie er in der Firebee verbaut ist, kann den Befehlssatz ISA_B, Coldfires allgemein können bis ISA_C+ (da muß man ein bißchen aufpassen, weil das CFPRM alle Prozessoren beschreibt).
Gruß,
Markus
AngelikaZ:
Danke mfro! Super Erklärung! Das hilft weiter!
Und ja ich bin ernsthaft an der Assembler Programmierung interessiert.
Da dies Essentiell für die Atari Programmierung darstellt.
mfro:
Wenn Du grad' kein Register übrig hast (weil dein m68k-Code schon alle aufbraucht), geht auch das:
--- Code: --- move.w #0x700,-(sp)
move.w (sp)+,0xffff8240
--- Ende Code ---
Ist allerdings ein wenig langsamer (drei statt zwei Zyklen).
AngelikaZ:
Grins! Danke mfro, das wollte ich gerade fragen, was wenn alle Register weg sind! :-)
Zu den Dokus! Hm,..., das geht ja tief rein!
Was ich mir für die Firebee wünsche, wäre sowas wie "Atari ST Assembler-Buch" oder so Kurse wie "The Atari ST MC68000 Assembly Language Tutorial v0.84".
Also ein SDK, wo ich genau nachlesen kann, was ich tun kann mit dem Gerät. Das fehlt leider!
Und ohne eine solches SDK, was ich als essentiell ansehe, sehe ich die Software-Entwicklung sein es jetzt "neu" oder "gepacht Old" als schwierig an.
mfro:
--- Zitat von: AngelikaZ am Sa 13.12.2014, 12:40:06 ---Zu den Dokus! Hm,..., das geht ja tief rein!
--- Ende Zitat ---
Dann holst Du dir am besten noch die Doku zum Cyclone III FPGA (http://www.altera.com/literature/hb/cyc3/cyclone3_handbook.pdf) und es geht noch (350 Seiten) tiefer ;).
--- Zitat von: AngelikaZ am Sa 13.12.2014, 12:40:06 ---Was ich mir für die Firebee wünsche, wäre sowas wie "Atari ST Assembler-Buch" oder so Kurse wie "The Atari ST MC68000 Assembly Language Tutorial v0.84".
Also ein SDK, wo ich genau nachlesen kann, was ich tun kann mit dem Gerät. Das fehlt leider!
Und ohne eine solches SDK, was ich als essentiell ansehe, sehe ich die Software-Entwicklung sein es jetzt "neu" oder "gepacht Old" als schwierig an.
--- Ende Zitat ---
Da hast Du nicht ganz unrecht. Dokumentation ist knapp.
Aber auch nicht ganz einfach zu schreiben - die wäre ja keine "Firebee-Doku" sondern eine, die den aktuellen Stand der FPGA-Config beschreibt. Wenn man da dran drei Zeilen ändern würde, müsste man wieder eine neue schreiben.
Fangen wir mal andersrum an: es gibt (m.E.) zwei Gründe eine Firebee zu kaufen:
* man will "bloß" einen schnellen Falcon haben. Dann kann man mit der existierenden Falcon-Dokumentation m.E. nach gut leben. Das meiste davon (fast alles, was heutzutage wichtig ist) funktioniert auch auf der Firebee. EmuTOS für die Firebee beispielsweise unterscheidet sich (abgesehen davon natürlich, daß es für den Coldfire compiliert ist) nur in ein paar Kleinigkeiten von dem für den Falcon
* man will einen Computer, wo man wirklich "an jeder Schraube drehen" kann. Kann man bei der Firebee. Dann muß man aber auch bereit sein, den ganzen Krempel zu lesen und allerhand Neues zu lernen ;)
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln