mikrocontroller.net

Forum: Compiler & IDEs [WinARM] RAMFUNC


Autor: Thomas Pototschnig (pototschnig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade dabei einen BootLoader für USB zu basteln und bin da über
ein Problem gestolpert.

FLASH.C stellt ein paar Funktionen für das Beschreiben des Flashs zur
Verfügung und verwendet die Deklaration RAMFUNC, womit Funktionen
deklariert werden, die aus dem RAM laufen sollen.

Nach dem Compilieren ist mir in dem .lss-File aufgefallen, dass der
RAM-Code niemals von Flash nach RAM kopiert wird und die Branches
weiterhin ins Flash gehen.

Bsp:
100cec:  bl 100e98 <AT91F_Flash_Unlock>
obwohl

RAMFUNC int AT91F_Flash_Unlock(unsigned int Flash_Lock_Page)
{
[...]
}

(Die RAMFUNC-Funktionen landen nach dem Compilieren in der section
.fastrun)

section          size      addr
.text            3552   1048576
.fastrun          800   1052128
.rodata            85   1052928
.rodata.str1.4      8   1053016
.data               8   2097152

Weiß da jemand was darüber?

Autor: Thomas Pototschnig (pototschnig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
Ich verwende einen AT91SAM7S256 mit AT91SAM7S256-ROM.ld Linkerscript

Autor: Thomas Pototschnig (pototschnig)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Problem gefunden ...
In meinem AT91SAM7S256-ROM.ld hat noch was gefehlt, was mthomas schon
ins SAM7S64 Linkerscript gebaut hatte:

/* .data section which is used for initialized data */
[...]
. = ALIGN(4);
*(.fastrun)         /* "RAM-Functions" */ /* added by mthomas * /
[...]

Ich hab mal das File angehängt, für den Fall jemand hat ähnliche
Probleme.

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.