Dieser Teil meiner Webseite soll helfen, das WinAVR-Programmpaket effektiver nutzen zu können.
Mir persönlich war es nämlich auf Dauer zu mühselig, ständig die Windows Eingabeaufforderung zum Kompilieren mit avrgcc, das Programmers Notepad mit meinem Quelltext und Pony-Prog zur Programmierung des Controllers parallel geöffnet zu halten.
Glücklicherweise kann man all diese Funktionen unter der Oberfläche des Programmers Notepad vereinigen.
Hierzu muss das PN gestartet werden. Man findet dann unter Tools --> Options die Möglichkeit, die entsprechenden Modifikationen vorzunehmen.
Die Betätigung des Buttons "ADD" ermöglicht es nun, die Einstellungen
einzutragen. Hier sollten der Reihe nach folgende Einstellungen eingetragen
werden:
Name |
Command |
Folder |
Parameters |
Save |
This tool will modify… |
Capture output? |
Clear output… |
Use built-in parser |
Make All |
make |
%d |
all |
Current File |
No |
Main |
No |
Yes |
Make Clean |
make |
%d |
clean |
None |
No |
Main |
No |
Yes |
Make Extcoff |
make |
%d |
extcoff |
None |
No |
Main |
No |
Yes |
Program Device |
make |
%d |
program |
None |
No |
Main |
No |
Yes |
Nun sollten alle soeben definierten Zusatzfunktionen unter Tools verfügbar sein.
Make All sorgt dafür, dass die im Makefile unter Target
angegebene *.c-Datei kompiliert wird.
Make Clean löscht alle bei Make All entstandenen Dateien wieder.
Make Extcoff erzeugt eine Datei, mit deren Hilfe die Arbeit des MC im AVR-Studio
simuliert werden kann.
Program Device programmiert, wie der Name schon sagt, die mit Make All erzeugte
*.hex-Datei in den MC.
Unter Umständen kann es aber sein, dass zusätzlich noch das makefile angepasst werden muss. Beispielsweise muss für den avrdude (Programmer aus dem WinAVR Paket, äquivalent zu Pony-Prog) noch eingetragen werden, welcher Programmieradapter verwendet wird. Zusätzlich muss noch definiert werden, über welche Schnittstelle des Computers die Datenübertragung laufen soll. In meinem Fall sieht das Ganze wie folgt aus:
AVRDUDE_PROGRAMMER = pony-stk200
AVRDUDE_PORT = lpt1 # programmer connected to parallel port
Soll aus welchen Gründen auch immer Pony-Prog verwendet
werden, so sind die folgenden Codezeilen nötig:
Das steht standardmäßig im Makefile:
# Program the device.
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
Diese Zeilen sollten durch die folgenden ersetzt werden:
# Programming support using ponyprog.
Settings and variables.
#PONYPROG= ponyprog2000.exe
PONYPROG= C:\Programme\ponyprog2000\ponyprog2000.exe
# Program the device.
program: $(TARGET).hex $(TARGET).eep
echo -e "SELECTDEVICE $(MCU)\nLOAD-PROG $(TARGET).hex\n#LOAD-DATA
$(TARGET).eep\nWRITE-PROG" >isp.e2s
$(PONYPROG) isp.e2s
WICHTIG: Vor "echo -e" muss ein Tabulator gesetzt werden.
Der folgende Code muss eine zusammenhängende Zeile sein, bis $(PONYPROG). Davor
muss nach dem Zeilenumbruch erneut ein Tabulator gesetzt werden.
Generell gilt, dass in einem Makefile ein wesentlicher Unterschied zwischen
einem Leerzeichen und einem Tabulator besteht!
Bei der Verwendung müssen unter den Betriebssystemen Windows NT / 2000 / XP zusätzlich noch Treiber installiert werden. Hierbei handelt es sich um "giveio.sys". Eine Suche bei Google unter dem entsprechenden Stichwort sollte schnell zum Erfolg führen.
Bei Verwendung des WinAVR-Paketes besteht im Prinzip keinerlei Notwendigkeit Ponyprog zu verwenden, da avrdude alle benötigten Features mitbringt. Einzig zum Setzen der Fuse-Bits sind Ponyprog bzw. Yaap gut geeignet.
Prinzipiell muss ein Anfänger im Standard-Makefile von WinAVR nur die folgenden Sachen editieren:
MCU name --> verwendeter Mikrocontroller
Target file name --> die zu kompilierende Zieldatei
AVRDUDE_PROGRAMMER --> verwendeter Programmierstecker
AVRDUDE_PORT --> am Rechner genutzte Schnittstelle COM bzw. LPT
Die restlichen Sachen sind im Normalfall bereits gebrauchsfertig eingetragen.