8051 hex file erzeugen

Gast #4610279
Lesenswert?

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
(Firma: matzetronics) #4610281
Lesenswert?

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.
(Firma: matzetronics) #4610297
Lesenswert?

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.
Gast #4610352
Lesenswert?

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
#4610383
Lesenswert?

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.
Gast #4610450
Lesenswert?

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.
(Firma: matzetronics) #4610620
Lesenswert?

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.
#4632613
Lesenswert?

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

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