Forum: Mikrocontroller und Digitale Elektronik Flashbare Files mit Keil erzeugen


von Olaf E. (lotsinn)


Lesenswert?

Moin,

ich probiere mich gerade an der Programmierung eines 80c51 mit ext. ROM.
Das Programm welches ich dafür benutze (benutzen muss) ist Keil.

Kann mir jemand sagen wie ich damit eine Datei erstellen kann die ich 
direkt aufs ROM flashen kann? (was nimmt man da? .bin .hex .asm?)

Brauche ich dafür ein weiteres Programm oder kann ich das auch mit Keil 
bewerkstelligen? Ich habe bisher nichts sinnvolles im Netz gefunden.
( immer nur simulationen und usw...)

MfG

Olaf

von richtigsteller (Gast)


Lesenswert?

Die Frage ist nicht .bin, .hex oder .asm, sondern was für ein 8051 
Derivat und was für eine Flash-Programmer Hardware.

von fifi (Gast)


Lesenswert?

Zum programmieren von externem ROM braucht man normaleweise einen 
Eprombrenner. Die KEIL-IDE bietet da keine Unterstützung. Wirst wohl 
einen Galep-Programmer brauchen (schweineteuer, hehe) oder was billiges 
für die LPT-Schnittstelle selber basteln müssen.

von Wilhelm F. (Gast)


Lesenswert?

Olaf E. schrieb:
> Moin,
>
> ich probiere mich gerade an der Programmierung eines 80c51 mit ext. ROM.
> Das Programm welches ich dafür benutze (benutzen muss) ist Keil.
>
> Kann mir jemand sagen wie ich damit eine Datei erstellen kann die ich
> direkt aufs ROM flashen kann? (was nimmt man da? .bin .hex .asm?)

Also ein Hex-File sollte mit Keil leicht und ohne besondere Umstände 
gehen.

Auf das externe ROM kann man in der Regel gar nicht flashen, denn es ist 
meistens EPROM. Dafür braucht man einen Programmer, mit dem man das 
Programm außerhalb der Platine in diesen Stein brennen kann.

> Brauche ich dafür ein weiteres Programm oder kann ich das auch mit Keil
> bewerkstelligen? Ich habe bisher nichts sinnvolles im Netz gefunden.
> ( immer nur simulationen und usw...)

Diese Boards haben aber oft eine Von-Neumann-Schaltung des Speichers 
(8051 ist von Haus aus Harvard), ein Monitor-ROM mit einem kleinen 
Betriebssystem oder Downloader, und viel RAM, und laden Testprogramme 
ins RAM, was dann ROM simuliert.

Wie heißt denn das Board, und gibt es einen Schaltplan?

von Olaf E. (lotsinn)


Lesenswert?

Derivat: 80c51 original, ROM: 28c64
Flasher: MiniPro (flasht ohne rücksicht auf verluste oder Dateiformate 
einfach aufs ROM)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

28c64 ist kein Flash-ROM, sondern ein EEPROM. Dein "MiniPro" flasht 
daher auch nicht.

Wenn das Ding "ohne rücksicht auf verluste oder Dateiformate" 
programmiert, dann ist anzunehmen, daß es jede Datei wie eine Binärdatei 
interpretiert.

Also wirst Du Deinen Compiler dazu bringen müssen, eine solche zu 
erzeugen. Geht das nicht, lass ihn 'ne Hex-Datei erzeugen, und 
konvertiere die mit einem Tool à la HexToBin.

von Olaf E. (lotsinn)


Lesenswert?

µC: 80c51
RAM: 2x 62c64
ROM: 1x 28c64 in einem Textool Sockel
PIO: 8255
Harvard Architektur
selbst gelötet

Ich möchte einfach nur ein Assembler-Programm schreiben, aufs EEPROM 
brutzeln und in die Schaltung einsetzen.

vielen Dank für die schnellen Antworten!

von Olaf E. (lotsinn)


Lesenswert?

wie erzeuge ich mit keil den eine .HEX datei?
Reicht doch sicherlich nicht nur die Dateiendung beim Speichern zu 
ändern oder?

von Ralf (Gast)


Lesenswert?

Kann es sein dass in dem EEPROM ein Monitorprogramm mit Bootloader für 
eins der beiden RAMs sitzt?
Dann würde ich auf's EEPROM brennen tunlichst verzichten.
Oder ist das ganze System Marke Eigenbau? Dann zeig mal den Schaltplan.
Wenn das Programm wirklich ins EEPROM muss, dann brauchst du wie von den 
anderen schon angedeutet einen EEPROM-Programmer.

Ralf

von Wilhelm F. (Gast)


Lesenswert?

Schaltplan bitte! Dann kann ich womöglich was dazu sagen. Auch Links 
oder Details, Quellcode, zum MiniPro, das scheint ein Loader zu sein.

von Olaf E. (lotsinn)


Lesenswert?

Kompletter Eigenbau, Adressen 0-12 an ROM und RAM angeschlossen, 0,1 am 
PIO, Adressen 13-15 an einen Decoder für die CS Leitungen. Read und 
Write Leitungen verbunden, PSEN an OE des EEPROM, 12MHz und einen 
Resettaster und eine Spannungsversrgung mit 5V über ein Netzteil am 230V 
50Hz Stomnetz...

Der Programmer ist ein solcher:
http://www.ebay.de/itm/USB-Universal-Programmer-Support-13000-ICs-EPROM-FLASH-CPLD-MCU-Adapters-/171008781232?pt=Wissenschaftliche_Ger%C3%A4te&hash=item27d0eaebb0

von Wilhelm F. (Gast)


Lesenswert?

Olaf E. schrieb:

> Kompletter Eigenbau, Adressen 0-12 an ROM und RAM angeschlossen, 0,1 am
> PIO, Adressen 13-15 an einen Decoder für die CS Leitungen. Read und
> Write Leitungen verbunden, PSEN an OE des EEPROM, 12MHz und einen
> Resettaster und eine Spannungsversrgung mit 5V über ein Netzteil am 230V
> 50Hz Stomnetz...

Sieht so aus, als ob das die ganz gewöhnliche Schaltung für 8051 mit 
externem Bus ist, und du den programmierten Stein in die Schaltung 
einsetzen mußt, und zum Umprogrammieren jedes mal ausstecken, im 
Programmer programmieren, und wieder einstecken mußt.

Ist das von mir so richtig verstanden?

> Der Programmer ist ein solcher:
> 
http://www.ebay.de/itm/USB-Universal-Programmer-Support-13000-ICs-EPROM-FLASH-CPLD-MCU-Adapters-/171008781232?pt=Wissenschaftliche_Ger%C3%A4te&hash=item27d0eaebb0

Das sieht nämlich nach (E)EPROM-Programmer aus, um den Stein außerhalb 
der Schaltung zu programmieren. In dessen Anleitung sollte drin stehen, 
welche Formate übertragen werden können. Keil macht üblicherweise 
Intel-Hex-Files auch mit der Dateiendung .hex, aber es gibt eine Menge 
anderer wie Motorola S1, S2, S3, oder auch reine Binärfiles, und 
Konverter, die von einem in ein anderes Format konvertieren.

von Olaf E. (lotsinn)


Lesenswert?

ja, für den EEPROM verwende ich extra einen Textool-Sockel.
Das Programm zum Programmer kann auch .hex-Dateien verarbeiten und in 
Keil hab ich inzwischen den Punkt gefunden den ich gesucht habe:
unter "Options for Target" (der button mit dem Zauberstab) -> auf dem 
Reiter "Output" und dann den Haken bei "Create HEX File".
Damit klappt das, vielen Dank für die Bemühungen.

von Wilhelm F. (Gast)


Lesenswert?

Olaf E. schrieb:

> Damit klappt das, vielen Dank für die Bemühungen.

Nächstes mal, wenn du einen ollen 8051 aus gräbst, berücksichtige eine 
Von-Neumann-Schaltung mit ausreichend RAM auf dem Board, was auch als 
ROM arbeitet. Das erspart einen Programmer und Umsteckerei komplett, und 
man kann Testprogramme über RS232 oder USB direkt auf das Board flashen. 
Das Testprogramm läuft dann so lange, wie das Board Strom hat. Bei 
Stromabschaltung ist das Programm weg. Es sei denn, es hat einen 
Pufferakku für das RAM.

So wie du fing ich mit dem 8051 vor über 20 Jahren auch an, kaufte einen 
Programmer, und die Umsteckerei mit den ROM-Bausteinen wurde mir schon 
sehr bald zu bunt. Dann fand ich aber auch ein Board, wo ins RAM 
geflasht wird, und baute selber noch solch ähnliche nach.

Ein ROM mit Bootloader muß man sich dann nur ein einziges mal brennen. 
Wenn man das Board später für einen festen Zweck benötigt, brennt man 
das fertige Programm dann. Es ist da aber auch gut, selbst einen Brenner 
zu besitzen, oder jemanden mit Brenner in greifbarer Nähe zu haben.

Infos über RAM als Programmspeicher erhält man schon, wenn man in einer 
Suchmaschine "8051 von Neumann" eingibt.

Na ja, seit modernere µC mit Flash an Bord gängig sind, ist das alles 
ein wenig Schnee von gestern. Aber, wenns denn Spaß macht? Der externe 
Bus mit Bausteinen wie dem 8255 dran ist auch eine gute Übung.

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
Noch kein Account? Hier anmelden.