Forum: Mikrocontroller und Digitale Elektronik warum verwendet man Remap


von Tina B. (tina)


Lesenswert?

Hallo,

warum wird häufig ein Remap vom RAM und Flash etc. bei einem µController 
vorgenommen.

Internal Boot ROM location before remap: 0x00000000
Internal SRAM location before remap: 0x00020000

anschließend nach dem Remap startet der RAM bei der Adresse 0 und der 
ROM-Bereich bei der Adresse 0x01000000


Gruß
Tina

von Peter D. (peda)


Lesenswert?

Tina Berger wrote:
> warum wird häufig ein Remap vom RAM und Flash etc. bei einem µController
> vorgenommen.

Häufig ???

Die meisten Mikrocontroller (8051, AVR, MSP430, Z8, PIC) machen es 
nicht.

Vielleicht solltest Du mal sagen, welchen speziellen Mikrocontroller Du 
meinst.


Peter

von Tina B. (tina)


Lesenswert?

in meinem Fall meine ich den AT91RM9200 - aber ich wollte eher wissen 
warum man das macht nicht wie es bei diesem Controller genau aussieht.

Tina

von Andreas K. (a-k)


Lesenswert?

Debuggen geht im RAM erheblich einfacher, weil sich darin beliebig 
Breakpoints setzen lassen. Die Interrupt/Exception-Vektoren liegen bei 
ARM aber fest auf 0.

von opacer (Gast)


Lesenswert?

Weil der RM9200 immer bei Adress 0 anfängt zu starten. Vor dem Remap 
liegt dort das Boot-ROM (USB, UART, Dataflash...). Wenn damit ein 
Programm ins SRAM geladen wurde, wird ein Remap gemacht, SRAM auf 
Adresse 0 gelegt und Programm Counter auf 0 und starten. Dadurch wird 
dann das Programm gestartet. Damit kann man z.B. das Programm für 
Adresse 0 Linken und später in ein NOR-Flash machen und ohne Remap bzw. 
Bootloader arbeiten.

Ich verstehe aber nicht was daran unverständlich ist.. wie sollte man es 
sonst machen. Fast jeder µC mit integriertem Boot ROM macht das so.

von Tina B. (tina)


Lesenswert?

>Ich verstehe aber nicht was daran unverständlich ist.. wie sollte man es
>sonst machen. Fast jeder µC mit integriertem Boot ROM macht das so.

vielen dank für die antwort - unverständlich wars nur für mich, weil ich 
nicht so weit gedacht habe... aber so macht das natürlich sinn...

Gruß
Tina

von Peter D. (peda)


Lesenswert?

opacer wrote:

> Fast jeder µC mit integriertem Boot ROM macht das so.

Nöö.

Die 8051 oder AVR legen den Bootloader hinter die Applikation ans Ende 
des Flash.
Dann kann man konfigurieren, ob ein Reset an 0x0000 oder am Bootvektor 
startet.
Beim 8051 läßt sich auch durch eine Jumper von PSEN nach GND ein 
Bootloaderstart erzwingen.

Remappt wird da nie was.


Peter

von opacer (Gast)


Lesenswert?

@Tina
Das steht aber auch relativ gut im Datenblatt erklärt.

@Peter
Welcher 8051/AVR hat den ein festes Boot-ROM?

von Peter D. (peda)


Lesenswert?

opacer wrote:

> Welcher 8051/AVR hat den ein festes Boot-ROM?

Z.B. Atmel (AT89C51RD2), NXP (P89C51RD2).

Bei den AVRs muß man nen Bootloader erst (hinten) reinbrennen.


Peter

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.