www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie startet ein 8051 Programme?


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manche PC-Software bringen Assemblerprogramme auf einem *51er zum
laufen, ohne dafür den Eprom / Flash Rom programmieren zu müssen. Es
ist klar, das das ganze in den Ram geschrieben wird.

Nach dem Einschalten eines µC muss doch eine Routine ablaufen, die
irgendwann zu dem Assemblerprogramm im Ram kommt (ORG xxxxh). Er könnte
ja z. B. auf dem Eprom oder auch dem RAM bei 0000h anfangen.

Meine Fragen:
1. Nennt man diese Routine Bootloader?
2. Und für was steht ISP? Auf jeden Fall nicht nur für Internet Service
Provider, wie Google mich glauben lassen will.
3. Wie sieht z. B. der Code ungefähr aus, der über die Tx und Rx Pins
übertragen wird?
4.Darf ich denn, wenn ich den Eprom / Flashrom programmiere, bei
Adresse 0000 anfangen?
5. Was macht ein PC-Programm, wenn er ihm über die Tx und Rx Pins sagen
möchte, dass er jetzt auf z.B. 8000h springen möchte? Den Jumpbefehl
bitweise über die Rx Leitung träufeln lassen?

Ich wäre über jede noch so kleine Information froh, die mich
weiterbringen könnte.

Entweder habe ich es überlesen, oder die Datenblätter erwähnen meine
Fragen nicht mal ansatzweise.

MfG

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2. ISP = In System Programable, heißt du kanst den Controller in deiner
Zielschaltung programieren ohne ihn mit einem SPeziellen
Programmiergerät zu beschreiben.

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da es es etwa 700 verschiedene 8051-Derivate gibt, wirds wohl auch 700
verschiedene Wege zum Programmieren geben.

Du must also erstmal speziell werden (welcher 8051 genau).


Ganz allgemein:

Die meisten 8051 mit Bootloader haben den Bootloader in einem extra
Flash oder ROM-Bereich stehen, der durch bestimmte Signale an den Pins
angesprungen wird.

Der Bootloader kriegt dann die Daten als Intel-Hex übertragen.
Für spezielle Kommandos (Rücklesen, Fuses setzen, Programm anspringen)
gibt es dann spezielle Records.

Als Programmierschnittstelle werden UART, CAN, USB, SPI oder JTAG
verwendet.


Peter

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super! Gut zu wissen, dass sich die Microcontroller in diesen Punkten
unterscheiden. Ich habe es extra ziemlich allgemein gehalten und
vereinfachend geschrieben, da ich bisher dachte, dass solche Grundzüge
bei allen ungefähr gleich ist.

Der verwendete Microcontroller ist ein 89C51RD2HBA von Reichelt.

In System programmable wiederbeschreibbarer
Flash-Speicher
vier 8-Bit I/O-Ports/ drei 16 Bit-Timer
Interner RAM(Bit): 512x 8

Leider steht im Datenblatt von Reichelt nicht, wie der RAM oder der
Flash gehandhabt werden muss. Ursprung meiner Anfrage ist u. a., dass
ich meine Programme testen will, ohne sie aufwändig in den Flash
schreiben zu müssen. Da käme mir der Ram sehr gelegen, aber ich muss
dem Prozessor auch beibringen, dass er auf genau diese Stelle im Ram
springen soll, wo auch mein Programm steht.

Autor: Sebastian B. (lufti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch nicht aufwendig ins flashrom zu schreiben! .. wie stellst du
dir das vor?

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte bisher immer, einige Teile des Flashrooms sind durch Sachen
wie z. B. dem Bootloader schon vorbelegt. Ich wollte dort nicht
reinschreiben, sonst lösche ich am Ende noch etwas.

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt nen T80C51RD2 (Atmel) und den P89C51RD2 (Philips).

Du brauchst nur die Software runterladen (Flip bzw. Flashmagic) und los
gehts. In den App-Notes steht alles nötige drin.

In den RAM laden geht grundsätzlich nicht, da die 8051 nur RAM für
Daten haben. Die Chips werden also geflasht und das ist gar nicht
aufwendig.


Peter

Autor: buz11 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ATmels 8051er zum proggen anschliessen ?

http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Sebastian B. (lufti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ginge theoretisch nicht auch, dass man ein externes RAM anschließt und
das beschreibt und dann den µC startet, der von externem Speicher
(glaub mit /EA = low), in diesem Fall vom RAM das Programm läd?

Bräuchte man natürlich einen weiteren IC zum beschreiben des RAMs.


Das ginge doch auch, .. oder?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein 8051 oder AVR wird kein PC...

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Das ginge doch auch, .. oder?"


Ginge schon.

Aber was nützt es Dir, einfach mal 18 IO-Pins für so einen Unsinn zu
verschwenden ?


Ich habe früher mal sowas auf nem DS80C320 gemacht. Da war das Problem,
daß schnelle Flashs damals sehr teuer waren.
Ich habe dann nach jedem Reset langsam vom Flash in einen schnelle
Cache-SRAM geladen und dann den Flash abgeschaltet und DS80C320 auf
32MHz hochgesetzt.
Nebeneffekt war, da es ja keine 64KB SRAMs gibt, daß ich auch noch 64KB
Data-SRAM hatte (128kB-Chip).
Und da nochn paar SJA1000 und anderes drauf war, war der Verlust der
IO-Pins nicht ganz so schlimm.
Würde ich heute aber nicht mehr machen.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.