Dieser ArtikelBenutzerSuche |
AVR-Simulation
[bearbeiten] SimulAVRSimulAVR ist ein Simulator, der einige Prozessoren der AVR-Familie auf einem PC-Hostsystem simulieren kann. Dieser Simulator ist im WinAVR-Paket enthalten (/WinAVR/bin/simulavr.exe). SimulAVR wird über ein dazu passendes Frontend bedient. GDB und Insight sind zwei, ebenfalls in WinAVR enthaltene, Programme, die ein solches Frontend bilden. Wer "textorientiertes" Debugging mag, oder beispielsweise emacs als Frontend verwenden möchte, der nutzt den GDB, den GNU Debugger. Er ist im WinAVR-Paket enthalten (/WinAVR/bin/avr-gdb.exe). Wer gleich eine grafische Benutzeroberfläche (GUI) verwenden möchte, nutzt Insight (welches intern ebenfalls den GDB verwendet). Beide Debugger, also GDB oder Insight, benötigen ein Backend. Entweder handelt es sich dabei um einen ICE/JTAG-Debugger wie z.B. AVaRICE als Interface zu einem realen AVR-Mikrocontroller oder um einen Simulator. [bearbeiten] Starten von SimulAVRUm SimulAVR mit default-Parametern zu starten, reicht es aus, folgende Zeile in einer Shell/Eingabeaufforderung einzugeben: $ simulavr -g -d <AVR-Prozessortyp> SimulAVR startet dann mit den defaultparametern und stellt einen GDBServer-Prozess auf dem lokalen oder entfernten Host auf Port 1212 zur Verfügung. Das Backend der Simulation ist nun Einsatzbereit. Eine Übersicht der unterstützten AVR-Prozessoren und der SimulAVR spezifischen Parameter bekommt man durch folgende Zeile: $ simulavr --help [bearbeiten] Starten des GDBUm das (vorläufige) Frontend GDB zu starten, reicht folgende Zeile: $ avr-gdb Der GDB meldet sich mit folgendem Bildschirm: Current directory is c:/WinAVR/testprj4/ GNU gdb 6.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i686-pc-cygwin --target=avr". (gdb) (gdb) ist der Prompt. [bearbeiten] Simulieren/DebuggenIm ersten Schritt muss dem GDB die gewünschte Datei (vorher mittels entsprechendem Makefile erzeugt) bekannt gemacht werden: (gdb) file main.elf Reading symbols from main.elf...done. Als nächstes muss dem GDB mitgeteilt werden, welches Ziel (target) er als Backend verwenden soll: (gdb) target remote localhost:1212 oder kürzer: (gdb) targ rem :1212 Remote debugging using :1212 0x00000000 in __vectors () Jetzt muss das Programm in den Simulator geladen werden: (gdb) load Loading section .data, size 0x32 lma 0x1bc Loading section .text, size 0x1bc lma 0x0 Start address 0x0, load size 494 Transfer rate: 3952 bits in <1 sec, 30 bytes/write. Damit der Simulator nicht das gesamte Programm abarbeitet, sollte man breakpoints setzen. Den Ersten am besten bei main: (gdb) b main Breakpoint 1 at 0xd2: file main.c, line 16. Jetzt kann man das Programm im Simulator mit continue starten: (gdb) c Continuing. Bei Erreichen des zuvor gesetzten breakpoints stoppt GDB und meldet: Breakpoint 1, main () at main.c:16 (gdb) Eine Liste der verfügbaren debug-befehle des GDB findet sich durch die Eingabe von help. [TODO] Einige häufige GDB-Commands als Beispiel einfügen. [bearbeiten] VMLabVMLab ist eine komplette IDE mit Debugger und Simulator. VMLab arbeitet mit WinAVR zusammen und kann auch AVR Peripheriehardware simulieren. (engl., Windows, Freeware) Leider hat der Autor von VMLab die Entwicklung im Jahr 2006 eingestellt, da dem Projekt nicht der gewünschte kommerzielle Erfolg vergönnt war. Siehe auch:
[bearbeiten] AVRStudioAVR Studio enthält neben dem Übersetzungsteil, dem Debuggingteil auch einen Simulatorteil. Eine Übersicht über alle drei Programmteile gibt der Powerpoint-Vortrag AVR Studio: The comprehensive tutorial von Jeremy Gummeson und Brendan Kemp. [TODO: Konkreter Ablauf einer Simulation] Externe Signale können mit den Tools HAPSIM oder ganz direkt mit einer Stimulidatei in den Simulator eingespeist werden. [bearbeiten] HAPSIMHAPSIM ist ein Tool zur graphischen Simulation von Tasten /LED /LCD und Terminalfunktionen in AVR Studio. (deutsch/engl., Windows, Freeware) [bearbeiten] StimultiÜber eine sog. Stimuli-Datei lassen sich von ausserhalb Signale dem AVR Studio zuführen. Informationen zum Aufbau einer Stimulidatei finden sich in obigem "AVR Studio: The comprehensive tutorial" und bei Atmel (What is the format of the AVR Studio simulator stimuli files?). Der Stimuli Generator for AVR Studio ist eine Freeware für die Erzeugung von Stimulidateien und deren grafischen Darstellung. Für dieses Programm ist .NET 1.1 oder 2.0 erforderlich. [bearbeiten] LogAnalyserLogAnalyser v1.00 (c) 2008 Jon Escombe is a graphical "logic analyser" style display of Atmel AVR Studio simulator log files. The project is built using the (excellent) zedGraph charting class library, and the source code is made available under GPL license. Requires Windows XP and .NET framework 2.0 to run. [bearbeiten] Avrora(TODO) Avrora, a research project of the UCLA Compilers Group, is a set of simulation and analysis tools for programs written for the AVR microcontroller produced by Atmel and the Mica2 sensor nodes. Avrora contains a flexible framework for simulating and analyzing assembly programs, providing a clean Java API and infrastructure for experimentation, profiling, and analysis. |