2016-04-26 24 views
-2

In ARM7, wenn der Prozessor zurückgesetzt wird, startet es Code von 0x00000000 Adresse auf Reset ausführen, aber in lpc214x, ARM7 basiert soc, auf Reset Bootloader ausgeführt wird, deren Startadresse für lpc2148 ist 0x7FFFD000 so wie diese Startadresse auf PC während geladen wird reset.and dann wie pc wird mit 0x00 Adresse geladen?Auf Reset-ARM-Prozessor lädt PC mit 0x00 so wie Bootloader-Code aufgerufen wird, die 0x7FFFD000 in Lpc 2148 ist?

Im unteren Bild ist die Speicherkarte von lpc2148 angegeben.

+1

Startet es wirklich bei 0x7FFFD000? Ich bin mir ziemlich sicher, dass es bei 0 bootet. Normalerweise haben diese Chips einen speziellen Pin, der die CPU an der Bootloader-Adresse startet, wenn sie niedrig gehalten wird. Es scheint Pin P0.14 in Ihrem Fall zu sein. – ElderBug

+0

Ja, Sie haben Recht, aber welche Prozedur ist gemacht, wenn p0.14 niedrig gehalten wird, so dass PC mit 0x7FFFD000 statt 0x00 geladen wird? – neev

+0

Nichts wirklich Phantasie, denke ich. Der Chip ist wahrscheinlich fest verdrahtet, um 0x7FFFD000 anstelle von 0 zu laden, wenn P0.14 niedrig ist. – ElderBug

Antwort

1

es ist nicht unsere Aufgabe, Datenblätter und Benutzerhandbücher für Sie zu lesen.

Wenn Sie in der Speicherkarte für diese Familie von Teilen bemerken, beginnt der Flash bei 0x00000000. 0x7FFFD000 gibt an, dass es sich um einen Bootblock handelt, der vom internen Flash neu zugeordnet wird. Es ist ein Fenster in den internen Blitz.

Dann, wenn Sie weiterhin über den Boot-Block in seinem Abschnitt lesen, dann Speicherzuordnung im Abschnitt nach und dann die Speicherzuordnung Kontrolle sehen Sie, dass für den normalen Benutzermodus gibt es keine Neuzuordnung, für Bootloader-Modus gibt.

Auch das Handbuch beschreibt, dass die Benutzervektortabelle eine Prüfsumme haben muss, die zu Null addiert. der Bootloader bootet zuerst (also die Neuzuordnung beim Zurücksetzen), wenn er einen Benutzer durch Überprüfung der Vektortabelle aufblinkt und keine anderen Bänder die Bootoption ändern, dann wird der Benutzercode neu zugeordnet und ausgeführt.

Alles richtig in der Anleitung.

+0

danke für die antwort und die frage war bezüglich datenblatt oder bedienungsanleitung und wenn sie nicht mögen diese dinge für mich, es ist völlig in Ordnung, dann sollten sie keine antwort geben, da ich nicht die frage persönlich an sie. – neev

+0

Sie sollten das Handbuch gelesen haben, bevor Sie die Frage hier stellen. SO ist für Programmierprobleme, hier ist mein Code, es funktioniert nicht, ich denke es sollte, können Sie mir helfen ... Diese Frage sollte als Off-Thema geschlossen werden ... –

+0

Ich habe Handbuch gelesen, aber meine Frage war wie was wird intern geschieht innerhalb von lpc2148, so dass anstatt 0x00 zu starten, Code von 0x7FFFD000 ausgeführt wird, wenn p0.14 auf 0 gehalten wird, was nicht in Handbuch beschrieben ist, können Sie mir also mitteilen, wie Speicher neu zugeordnet wird, wenn lpc2148 zurückgesetzt wird und p0. 14 wird 0 gehalten, und wer ist dafür verantwortlich? – neev