Forum: Compiler & IDEs WinAVR : Frage zum MAP-File


von Gast (Gast)


Lesenswert?

Hallo,

ich habe folgende Frage :

Vom IAR Compiler bin ich es gewohnt, im Map-File die RAM-Adressen von 
statischen globalen Variablen angezeigt zu bekommen. Aus dem MAP-File 
des WinAVR (aktuellste Version) kann ich diese Info leider nicht 
entnehmen.

Kann man es einstellen ? Oder geht es garnicht ?


Warum stelle ich diese Frage =>
Mit der Info der SpeicherAdresse ist es möglich per Zeiger den 
Variableninhalt auszulesen. Mittels serieller Kommunikation übergebe ich 
dem µC die Adresse und erhalte als Antwort den Inhalt. Somit kann ich 
jederzeit   (auch in einer späteren Applikation!) debuggen. Es besteht 
sogar die Möglichkeit das Programm so zu gestalten, dass auf die 
gewünschte Variable jederzeit von "AUSSEN" geschrieben wird (gut zum 
Tuning von aussen, z.B. Totzeitoptimierung).
Nun gut, wenn der WinAVR im Map-File keine Angabe zur Adresse einer 
statischen globalen macht, kann die obige Debug-Möglichkeit natürlich 
nicht genutzt werden (wäre schade :-( ).

von Stefan B. (stefan) Benutzerseite


Lesenswert?

siehe http://www.mikrocontroller.net/articles/AVR-GCC#Tipps_.26_Tricks

"Mit dem Tool avr-nm erhält man eine Übersicht über die Platzausnutzung 
in der erzeugten ELF-Datei bzw. dem damit gefüllten AVR. Das Tool wird 
per Kommandozeile mit avr-nm --size-sort --print-size <name of your ELF 
file> aufgerufen. Alle Symbole mit einem "T" (globale Funktionen), "t" 
(statische Funktionen) und letztlich auch mit einem "D" oder "d" 
(globale bzw. statische Daten, die haben ihre Initialisierungswerte im 
ROM) betreffen das FLASH-ROM. "B" und "b" brauchen ausschließlich RAM 
(werden beim Start mit 0 initialisiert). Die erste Spalte ist die 
Adresse des Symbols, die zweite ist die Größe (beides hexadezimal). 
(nach Forenbeitrag von Jörg Wunsch)"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.