www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM ARM7 STR7 Programm im RAM ausführen


Autor: Michael Multerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bastle gerade an einem Projekt für den STR712. Als 
Entwicklungsumgebung habe ich die Anglia Idealist.
Derzeit läuft der Controller mit 48 MHz aus dem Flash, was ja laut ST im 
Burst Mode bis 50 MHz möglich ist. Leider ist mir das doch etwas zu 
langsam, ich würde gerne die vollen 66 MHz des Controllers ausnutzen. 
Dann müßte ich das Programm aus dem RAM ausführen. Nur habe ich keine 
Ahnung, wie ich das machen muß? Kann mir jemand Infos geben, wie ich da 
vorgehen muß?

Ach ja: Beim Linker einfach auf ram71x.ld umstellen klappt nicht. Das 
bringt beim Flashen "Bad File Adress".

Servus
Michael

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ach ja: Beim Linker einfach auf ram71x.ld umstellen klappt nicht. Das
bringt beim Flashen "Bad File Adress". "

ram kannst du nicht flashen ...
du kannst daten aus dem flash ins ram übertragen (memcpy, o.ä.), aber 
nicht direkt das ram flashen (macht ja auch keinen sinn, weil dein ram 
nach abschalten der spannung gelöscht wird, und nach dem anlegen der 
spannung nicht initialisiert ist, im gegensatz zu flash, der seinen 
inhalt ja nicht verliert). ob es einen umweg gäbe (sprich das die 
startup-routine, c vorrausgesetzt, daten automatisch aus dem flash ins 
ram kopiert) der vom compiler bzw. deiner entwicklungsumgebung 
unterstützt wird weiß ich allerdings nicht ...

gruß
rene

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code im RAM ist grad so wie initialisierte Daten. Die werden ja für RAM 
gelinkt, im ROM plaziert und vom Startup ins RAM kopiert. Je nach 
Entwicklungsumgebung/Linker kann das also völlig automatisch ablaufen.

Autor: Michael Multerer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daß das RAM flüchtig ist und ich den Code zu jedem Programmstart aus dem 
Flash ins RAM kopieren muß, ist mir klar. Wie ich das aber im 
Startup-Code oder sonstwo veranlasse, das weiß ich leider nicht. Rene 
hat übrigens Recht, es geht um C, genauer um gcc mit der Libary von ST.
Vielleicht kennt sich ja jemand mit der Anglia Idealist 
Entwicklungsumgebung aus und kann mir sagen, wie ich vorgehen muß?

Servus
Michael

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim GCC sollte es schon ausreichen, die betreffenden Funktionen in die 
gleiche section zu packen wie initialisierte Daten (irgendein attribute 
wird das sein).

Wenn du alles ins RAM packen willst, alle Funktionen inklusive Library, 
dann geht das natürlich nicht. Dann musst du das Linker-Script anpassen 
und das ist dann allerdings von der Entwcklungsumgebung abhängig. Und 
wenn du Pech hast kennt die hier niemand.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Wenn code & data sections nicht innerhalb von 64MB liegen (z.B. bei 
Philips LPC2000), dann sind ausserdem longcalls fällig, sonst hagelt es 
Linker-Fehler.

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.