ARM ARM7 STR7 Programm im RAM ausführen

Gast #435948
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
Gast #435951
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
Gast #435954
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.
Gast #435992
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
Gast #435996
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.