Hallo, Ich habe ein AVR Studio Projekt für einen AT90S8515. Nun möchte ich dieses Projekt für den nahezu pinkompatibelen AT89S52 umstricken. Mir ist klar das AVR Studio den AT89S52 nicht unterstützt. Als programmer nutze ich Ich einen arduino ( https://tiktakx.wordpress.com/2014/04/19/programming-8051-using-arduino-up-for-grabs/ ). Mein Problem ist nun, wie ich das hexfile compilieren kann. Hat da jemand eine Idee für mich? Mit freundlichen Grüßen
Michael schrieb: > Mein Problem ist nun, wie ich das hexfile compilieren kann. Ein Hexfile musst du nicht mehr kompilieren, aber du meinst wahrscheinlich, wie du Code für den MCS51 erzeugen kannst? Ich nehme dazu die MIDE-51 Entwicklungsumgebung mit Assembler und dem umstrittenen SDCC C-Kompiler. http://www.opcube.com/home.html#MIDE51 Aber es gibt noch ein paar andere: https://en.wikipedia.org/wiki/MCU_8051_IDE Vorsicht mit C auf dem alten Schlachtross. SDCC ist bekannt für Merkwürdigkeiten.
:
Bearbeitet durch User
Hi, Dank dir schon mal für die Antwort. Ich gucke mir das mal genau an. Worauf sollte man beim sdcc achten damit keine Merkwürdigkeiten auftreten? Lg
Michael schrieb: > Worauf sollte man beim sdcc achten damit keine Merkwürdigkeiten > auftreten? Ihn am besten nicht benutzen :-P Da kann ich dir nicht viel zu sagen, denn ich habe die alten 8051 immer in ASM programmiert, das war bei den Dingern die logische Wahl für mich. Aber es schadet sicher nicht, sich das Kompilat des SDCC mal mit einem Disassembler anzuschauen. Zwei Simulatoren sind bei MIDE 51 bei, beide allerdings nicht in Vollversion. Nochmal zum Ausgangspunkt - du bist dir wirklich sicher, einen recht modernen 8515 gegen die alte Möhre tauschen zu wollen? Denk dran, das der 89S52 bei gleicher Taktfrequenz etwa 12 mal langsamer ist als der 8515. Halt, es kann sein, das der 89S52 den X2 Mode unterstützt - dann ist er nur noch etwa 6 mal so langsam. Der ATMega 8515 ist der legitime Nachfolger des AT90S8515.
:
Bearbeitet durch User
Hi, ja ich bin mir sicher ;). Um Geschwindigkeit gehts bei meinem Projekt nicht so. Jedenfalls in diesen Bereichen. Ausserdem liegen Sie rum und wollen benutzt werden. Also ich habe mir jetzt mal MIDE angeschaut. Hab SDCC und den ASEM51 geladen und ins Programm importiert. Doch leider vermeldetet der SDCC das er keine Header Datei findet. avr/io.h avr/eeprom avr/interrupt.h fatal error /avr/io.h no such file or directory hat jemand Erfahrung damit? den UC51 schaue ich mir gerade an. lg
Michael schrieb: > Doch leider vermeldetet der SDCC das er keine Header Datei findet. > > avr/io.h Ist sein gutes Recht, was soll er mit AVR-Zeugs. Lade mal ein C51-Beispielprojekt und schaue Dir an, wie dort die Includes heißen.
Hi, Ahhhhhhh. Stimmt. Er kennt diese Header natürlich gar nicht. Das C Programm kommt ja von einem AT90S8515. Theoretisch könnte man die Header files aber ins Projekt importieren, oder? Danke erstmal.
Ports, Timer, Interrupts, ... werden auf einen 51er ganz anders bedient, als auf einem AVR. Alles was damit zu tun hat, darfst du vermutlich eh neu schreiben. Ich hab erst vor kurzem mal ein 51er C-Programm geschrieben, weil am TG meiner Tochter noch nichts moderneres benutzt wird. Da merkt man erst man, was man an einem AVR hat.
Das dachte ich mir schon fast. Danke erstmal an alle. Ich glaube ich habe zutun :)
Michael schrieb: > Nun möchte ich dieses Projekt für den nahezu pinkompatibelen AT89S52 > umstricken. Wenn das Projekt nicht zu groß ist, der 8051 Standard Compiler von Keil in der Eval-Version kommt mit allen für den AT89S52 erforderlichen Includes und Libraries und erzeugt einwandfreien Code. Der SDCC ist auch nicht so schlecht wie hier behauptet wurde, muss aber konfiguriert werden, der Aufwand ist ähnlich wie bei gcc für ARM https://www.keil.com/c51/demo/eval/c51.htm Falls es kein 8051 von Atmel sein muss, die meisten anderen Hersteller bieten eine IDE mit freiem Keil Compiler z.B. http://www.silabs.com/products/mcu/Pages/simplicity-studio.aspx Carl D. schrieb: > Ich hab erst vor kurzem mal ein 51er C-Programm > geschrieben, weil am TG meiner Tochter noch nichts moderneres benutzt > wird. Da merkt man erst man, was man an einem AVR hat. Moderne 8051 sind viel schneller, besser ausgestattet und billiger als jeder AVR oder auch xMEGA z.B. für 1.50 EUR 20x 14-Bit ADC und 4x 12-Bit DAC. Nicht umsonst macht z.B. SiLabs doppelt so viel Gewinn wie Atmel.
Lothar schrieb: > Moderne 8051 sind viel schneller, besser ausgestattet und billiger als > jeder AVR Der TE hat aber den AT89S52, da ist nichts besseres drin als in jedem anderen 8052, ausser dem X2 Bit. Im Gegenteil - Der 8515 hat Hardware PWM, einen USART und SPI, ausserdem wenigstens einen Analog Komparator. Ausserdem könnte es beim RAM knapp werden, denn der 8515 hat immerhin 512 Bytes RAM und 512 Bytes EEPROM. @TE: Achte beim Verpflanzen des 89S52 auf die umgekehrte Reset Polarität. Traditionell werden MCS51 durch ein 'High' zurückgesetzt, AVRs jedoch durch 'Low'. Du musst also die Resetschaltung etwas umbauen.
:
Bearbeitet durch User
Michael schrieb: > Theoretisch könnte man die Header files aber ins Projekt importieren, > oder? Nein. Es geht nicht darum, daß der Compiler zufrieden ist, sondern die IO-Adressen müssen natürlich auch stimmen. Bezüglich Core gibt es beim 8051 keine Unterschiede, es reicht also das richtige *.h-File aus, z.B. "reg52.h".
Lothar schrieb: > Wenn das Projekt nicht zu groß ist, der 8051 Standard Compiler von Keil > in der Eval-Version kommt mit allen für den AT89S52 erforderlichen > Includes und Libraries und erzeugt einwandfreien Code. Der SDCC ist auch > nicht so schlecht wie hier behauptet wurde, muss aber konfiguriert > werden, der Aufwand ist ähnlich wie bei gcc für ARM > > https://www.keil.com/c51/demo/eval/c51.htm > > Falls es kein 8051 von Atmel sein muss, die meisten anderen Hersteller > bieten eine IDE mit freiem Keil Compiler z.B. Existierenden Code vom GCC-AVR zum 8051 zu portieren dürfte mit SDCC einfacher sein, da die C-Standards besser unterstützt werden. Zwar ist SDCC nicht so gut wie GCC, aber Keil macht halt einen Compiler für ANSI C von 1989, während SDCC auch die neueren ISO C-Standards von 1999 und 2011 zumindest zu großen Teilen unterstützt. Philipp
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.