heise online
  • c't
  • iX
  • Technology Review
  • Mac & i
  • mobil
  • Security
  • Netze
  • Open Source
  • Developer
  • c't-TV
  • Download
  • Telepolis
  • Resale
  • Foto
  • Autos
  • Preisvergleich
  • Stellenmarkt
  • Abo
  • weitere Angebote
    • Shop
    • Artikel-Archiv
    • Veranstaltungen
    • Whitepapers
    • heise-marktplatz
    • IT-Markt
    • Tarifrechner
    • Jobs bei Heise

c't Magazin
  • Startseite
  • Artikel
  • c't-Projekte
  • Hotline & FAQ
  • Treiber & mehr
  • Kolumnen
Software zu Projekten Allgemeine Hinweise
Archiv-Suche Newsletter RSS-FeedRSS

c't › c't-Projekte

Trac
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • Start Page
  • Index
  • History
  • Last Change

Nützliche Tools für AVR

Hier soll eine kleine Übersicht enstehen, welche Tools und Tricks die Entwicklung von Software für AVR-µController erleichtern.

  • Mit avr-nm --size-sort --print-size ct-Bot.elf erhält man eine sortierte Liste, welche Funktionen und Variablen wieviel Platz in Flash und RAM belegen. In der ersten Spalte steht die Adresse, in der Zweiten die Größe (hexadezimal). T: Globale Funktionen, t: Statische Funktionen und D oder d: Globale bzw. statische Daten. All diese liegen im Flash. B und b hingegen belegen nur Platz im RAM, da sie beim Start mit 0 initialisiert werden.
  • Float-Ausgaben mit printf für Display und Log: In den Linkereinstellungen (Miscellaneous) folgende Linker-Flags ergänzen: -Wl,-u,vfprintf -lprintf_flt
  • Vom Compiler generierten Assembler-Code als .s-Dateien erhalten: In den Compilereinstellungen (Miscellaneous) folgendes unter Other Flags ergänzen: -save-temps -fverbose-asm -dA
  • Assembler-Listing des gesamten Codes generieren: avr-objdump -h -S ct-Bot.elf > ct-Bot.s
  • Erzeugtes Binary zu Debug-Zwecken disassemblieren: avr-objdump -d -m avr5 ct-Bot.elf
  • Automatisch alle nicht verwendeten Funktionen aus dem Binary entfernen:
    1.) Dem Compiler mit -ffunction-sections -fdata-sections sagen, dass er jede Funktion in eine eigene Section stecken soll.
    2.) Den Linker mit -Wl,--gc-sections anweisen, nicht verwendete Sections zu verwerfen (gc für Garbage Collection) - damit werden dann allerdings auch alle zurzeit nicht benutzten EEPROM-Daten entfernt.

Download in other formats:

  • Plain Text

Trac Powered

Powered by Trac 0.11.7
By Edgewall Software.

http://www.ctmagazin.de/
http://www.ctmagazin.de/projekte/

  • Datenschutzhinweis
  • Impressum
  • Kritik, Anregungen bitte an c't-WWW
  • Mediadaten
  • Copyright © 2011 Heise Zeitschriften Verlag
  • International: The H, The H Security, The H Open Source