Themen / Inhaltsliste / English

ATMEL programmieren in C++ mit AVR Studio mit Plugin AVRGCC

Content (automatic)

Dies ist meine Anleitung zur Benutzung des AVR Studio mit Plugin AVRGCC zur Kompilierung meiner *.cpp-Dateien in C:\home\cc

Warnung

Das Atmel AVR Studio astudio Version 4.21 Service Pack 4 Build 498 neigt zu häufigen Abstürzen. Eine Alternative wäre vielleicht IAR-Studio.
Siehe #abstuerze

Installation

Herunterladen von gnu WinAVR von (Datei: [WinAVR-20060125-install.exe]) von sf.net http://winavr.sourceforge.net
Herunterladen von Atmel AVR Studio 4 (Datei : [aStudio4.12SP1b462.exe]) von der Atmel home page http://www.atmel.com
Herunterladen von  Ponyprog (Datei: PONYPROGV206F) von der Lancos homepage http://www.lancos.com/

Installiere erst WinAVR, das installiert auch andere Tools wie z.B. sh, grep, tar ...nach C:\WinAVR\bin. (Siehe auch ../../winlin/winavr/00idx.htm)
Die zugehörige Hilfe wird nach C:\WinAVR\doc installiert:
C:\WinAVR\doc\avr-libc\avr-libc-user-manual-1.4.3.pdf -
C:\WinAVR\doc\gcc\cpp.pdf -
C:\WinAVR\doc\gcc\gcc.pdf -
C:\WinAVR\doc\simulavr-0.1.2.1\simulavr.pdf -

Erst danach wird das Atmel AVR Studio installiert und gestartet.


Bei Installation:
Problem Mit der Registrierung der dll
C:\Program Files\Atmel\AVR Tools\AvrStudio4\dll\AvrRot3.dll

Behebung:
cd "C:\Program Files\Atmel\AVR Tools\AvrStudio4\dll"
all *.dll regsvr32 $

Bei Start: kann MFC80.DLL MSVCR80.DLL nicht im Pfad finden.

Deswegen die DLL von \inst\dll\...\*.dll nacj C:\Winnt\system32 kopieren.

Generelles zu der Benutzung

Ich benutze das AVR-Studio nur um zu debuggen. Die Projektverwaltung mache ich immer durch die Datei makefile, (z.B. in C:\home\cc\qq\avr\qqtraff\makefile) und die Datei makedefs (in C:\home\cc\avrbat\makedefs).
makefile erzeuge ich für jedes Projekt neu manuell. Beispiele siehe ../../../../cc/qq/avr/qqtraff/makefile

Aufruf des AVR-Studio

[Start] [Programs] [Atmel AVR Tools] [AVR STudio 4]

Vorbereitung eines Projekts

[Project] [New Project]
Project Type : AVR GCC
Location : C:\HOME\CC\QQ\AVR
[ ] Create initial file (Die Vorwahl wegnehmen! Es wird eine Datei aus dem Verzeichnis C:\HOME\CC\QQ genommen)
Project name: QQTRAFF
-- Next >> --

Select Platform AVR Simulator, Device AT90S2323 oder 8535, je für welches Ziel entwickelt wird.
Das kann später korrigiert werden durch [Debug] [Select Platform and Device]

Jetzt ist das AVR Studio mit einem leeren Projekt zu sehen.
  QQTRAFF (default)
   +- Source Files
   +- Header Files
   +- External Dependencies
   +- Other Files


Rechter Mausklick auf [Source Files],  Add existing source files und die Datei qqtraff.cpp auswählen.

[Project] [Configuration Options]
Im linken Fenster Include Directories das Standard-Includeverzeichnis hinzufügen [Add...] C:\HOME\CC\INCLUDE

[Project] [Configuration Options]
Im linken Fenster General  Benutze eine externe Steuerdatei Makefile.

Den Makefile anpassen. Dazu einen vorhandenen Makfile herbeikopieren, z.B. von C:\HOME\CC\QQ\AVR\QQTSHAR\Makefile oder von C:\HOME\CC\QQ\AVR\QQTSSER\Makefile und editieren: Den alten Projektnamen und Hauptprogrammnamen ersetzen und mehr Library-Dateien hinzufügen.

Arbeiten mit dem AVR Studio

F7 - neues Kompilieren (
F12 - Bereinigen (Ende der täglichen Arbeit)

F10 - Step Over
F11 - Step Into

Beschreibung der Ziel-Hardware

Die Hardware-Beschreibung erfolgt in der Datei makedefs, etwa durch:

DEFS = \
    -DNPRGPATH=$(NPRGPATH) \
    -DF_CPU=8000000L \
    -DBAUD=38400L \
    -DGETTICK_TIMER=0 \
    -DAVR_TIMER_DIVIDER_CODE=3 \

MCU     = at90s2313

Fehler

Probleme mit "Microsoft Visual C++ Runtime Library".
(Dieses Problem tritt häufig auf, deswegen den workspace von Zeit zu Zeit sichern) Alle viertel Stunde.

Probleme wenn das gleiche Verzeichnis ??? wird
Meldung: Mapped files at 'C:\HOME\cc\qq\AVR\QQTSHAR\' to 'C:\HOME\cc\qq\AVR\QQTSHAR\'.

Fehlermeldung: gcc plug-in: Could not insert Project data intoProject tree
Ursache: Das default-Vezeichnis fehlt
Abhilfe: Erzeugen mit md C:\HOME\CC\QQ\AVR\QQTSHAR\default
Abhilfe: Erzeugen mit md C:\HOME\CC\QQ\AVR\QQTSHAR\default\dep
Abhilfe: Den Debug-Start-Pfeil clicken und bestätigen

In die Quelldateien einfügen: #if defined AVR bzw. #if !defined AVR um prozessorabhängige Teile (nicht) zu kompilieren.

Projekte, die mit ATMEL AVR laufen

Project Build OK Simulation i.O.
Auf Zielhardware i.O. Anmerkung
qqmain




qqtraff 2006-05-21
Problem mit Dauer der Zeitschleifen
2006-10-07- Zeit überprüft!
blinkt mit drei LED : Rot - Gelb - Grün
qqtshar
2006-05-23
2006-09-30
Nicht erkennbar
Könnte optimiert werden dadurch, dass es in Assembler neu programmiert wird.
qqtstraf



Sollte blinken wie qqtraff, benutzt aber tshar, um die Zeitscheiben zu berechnen.
qqtsser
2006-08-08
2006-10-09
2006-10-09
Ein einfacher Dialog über die serielle Schnittstelle. c zeigt die Variable "counter", t Zeigt Uhrzeit, Fehler: Kann Uhrzeit nicht setzen.
Siehe qq/qqtsser.htm
qqtsfloa





Abstürze

AVR-Studio Version 4.1 Service Pack 4 Build 498 stürzt ab:

Wenn das Disassembler-Fenster mit dem Mausrad gerollt wird.

Siehe astudcra/00idx.htm

Ich verwende 2007-09-21 AVR-Studio4.13 build 528

Siehe auch

avr/ccall.htm - Wie Unterpgrogramme aufgerufen werden
util/simbase.htm - Mein Simulationsprogramm
../../winlin/winavr/00idx.htm - Die Hilfprogramme, die mit WinAVR mitkommen (shell, grep, tar ...)

WWW

http:// www.atmel.no
http://www.atmel.no/beta_ware - Beta-Versionen (Erforderlich 2007)