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 :-( ).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.