8051 Code mit AVR ausführen

#955438
Lesenswert?

Ich habe so überlegt und sehe da grundsätzlich zwei Möglichkeiten:

1. Einen 8051-Emulator zu schreiben der zur Laufzeit den 8051-Hex-Code 
interpretiert.(oder aus dem www runterladen, bestimmt hat das schon mal 
jemand gemacht?)

2. Eine Macrobibliothek zu schreiben, die die einzelnen 
8051-Assembler-Befehle in AVR-Assembler nachbildet.

Was haltet ihr davon? Ist das dämlich?
#955520
Lesenswert?

Peter X. wrote:
> Es währe nur eine hübsche Sache,
> einige Teile vom 8051-Assembler-Code für den AVR weiterverwenden zu
> können.

Wenn Du das mit einem Programm automatisch machen lassen willst, 
explodiert die Codegröße und es wird schnarchlahm.

Besser Du machst das händisch, nur so erreichst Du eine ähnliche 
Performance.

Am besten aber, Du schreibst Deine 8051-Programme gleich in C, dann muß 
man nur die Hardwarezugriffe anpassen.
Genau darum ist ja C in der MC-Programmierung so weit verbreitet.


Peter
Gast #955658
Lesenswert?

>Es währe nur eine hübsche Sache,
>einige Teile vom 8051-Assembler-Code für den AVR weiterverwenden zu
>können.

Dann nimm doch direkt nen 8051er. Die gibts auch schon sehr günstig mit 
single-cycle core. Rein rechnerisch sind sie somit gleichschnell wie die 
AVRs.
#956340
Lesenswert?

> besitzen eigentlich AVR's schon pipelinning ?
AVRs haben schon eine Phasenpipeline wenn man so will, allerdings ist 
die "nur" 2-stufig. Ich glaub die erste Stufe ist so eine Art "fetch & 
decode" und die zweite dann das eigentliche "execute". Irgendwo hab ich 
sogar mal gelesen, dass die AVRs dafür beide Taktflanken ausnützen, ich 
weiß allerdings nicht ob das stimmt.

>Meines wissens hat das der 8051er noch nicht.
Der "8051er" ist immer ein wenig relativ zu sehen, da es diese 
Architektur schon eine kleine Ewigkeit gibt. Der originale 8051er-Kern 
benötigt 12 Takte für einen Befehl. Es gibt mittlerweile allerdings eine 
Vielzahl von Derivaten von allen möglichen Herstellern, die wesentlich 
schneller sind (1-4 Takte pro Befehl). Ob es auch schon 8051er mit 
pipelining gibt weiß ich persönlich nicht, denkbar wäre es schon.
Gast #956387
Lesenswert?

Der C8051F120 von Silicon Labs (www.silabs.com) kann das glaub ich. Es 
gibt noch weitere C8051F-Typen, die es auch können, der F120 ist mir 
halt grad eingefallen.
Kann aber auch sein, dass ich unter Pipelining was anderes verstehe als 
ihr, deswegen einfach Datenblatt lesen :)

Ralf
Gast #956403
Lesenswert?

Und das ist der Grund warum man C nutzen sollte wenn Assembler nciht 
absolut notwendig ist.
In C reichen dann ein paar Anpassungen(zb Portdefines, Interupthandler) 
und ein neuer Compilerlauf.
Die Logic kann dann wiederverwendet werden.
In Asembler, viel spass beim neu Programmieren.
Gast #956451
Lesenswert?

Am besten ist es immer, wenn man sich auf eine µC-Familie einspielt. 
Dann gibt es auch in Assembler keine Probleme. Denn ein µC Wechsel macht 
auch in C schwieriegkeiten, da man sich in eine komplett neue Hardware 
mit neuer Peripherie einarbeiten muss

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren