www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2378 Code aus Ram ausführen


Autor: Mario Xxx (grinderfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich habe ein MCB2370 Board mit einem LPC2378.


Ich hab nun ein programm im flash, welches programmcode über usb 
nachladen kann. Der nachgeladene code wird in eine variable geschrieben, 
die sich im static ram befindet.

Der flashspeicher hat die adressen von 0x0000 0000 bis 0x0007 FFFF
Wenn ich mir da mit hilfe des debuggers die adresse der main funktion 
raussuche und den PC (program counter) auf diese adresse setze, wird 
auch brav die main funktion wieder ausgeführt. Wollt nur mal testen ob 
ich den PC richtig setze.

Nun möchte ich aber wie gesagt, den PC auf den programmcode in der 
variable zeigen lassen.
Diese variable befindet sich aber in 0x4000 0000 im 32 kB LOCAL ON-CHIP 
STATIC RAM. und wenn ich den Pc auf diese adresse setze, bekomme ich

*** error 65: access violation at 0x40000000 : no 'execute/read' 
permission

Es gibt doch auch möglichkeiten mit Keil und co. das programm nicht ins 
flash sondern gleich in den ram zu laden, wie machen die das denn?
Wie kriegen die denn zugriff auf den Ram mit dem PC?
Und wie kann ich das selber machen?

Ich wäre für tips dankbar.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Mario Xxx (grinderfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also soll das problem nur im debug modus auftreten. Das stört ja 
jetzt erstmal nicht so. Aber es funktioniert auch nicht auf der 
hardware.

Ich hab mir eigentlich gedacht, ich könnte ein mit uvision erzeugtes Hex 
file in den ram laden und den PC auf den ersten befehl setzen.
Die frage ist nur, in welcher form muss das programm in den ram 
geschrieben werden. Der tolle debugger mit uvision und ulink adapter 
funktioniert ja so spitze (ironie).

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der tolle debugger mit uvision und ulink adapter
>funktioniert ja so spitze (ironie).

Tut er auch - (ohne Ironie)

Ist denn dein Programm (Hex-File) auch fürs RAM gelinkt?

Autor: Mario Xxx (grinderfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, da wird vermutlich auch der fehler liegen.
Die frage ist, was muss ich bei uvision einstellen, damit mein programm 
aus dem ram laufen kann?
Ich arbeite mit dem ULINK USB-JTAG Adapter und ich sehe da keine 
möglichkeit das einzustellen. Auch auf der keil seite zu dem produkt 
lese ich nichts von dieser fähigkeit.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du nur ein fertiges, sprich unabänderbares HEX-File hast,
welches an bestimmte (Flash-)Adresse(n) gelinkt ist, dann wird
das nicht funktionieren. Hat nichts mit Keil oder Ulink zu tun.

Wenn du dieses Programm jedoch selbst "in der Hand" hast, dann
mußt du dem Linker (per Dialog oder Scatterfile) sagen, dass er
dein Programm nach >=0x40000000 (also in den RAM-Bereich beim LPC)
linken soll.

Klar?

Autor: Mario Xxx (grinderfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mir schon klar, nur finde ich keine möglichkeit sowas bei 
uvision einzustellen.

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.