www.mikrocontroller.net

Forum: Compiler & IDEs WINAVR und AVR-Studio


Autor: Norbert Dehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich beschätige mich seit einigen Tagen mit der ATMEL 90er Serie. Als 
Enwicklungstools habe ich mir WINAVR und das ATMEL AVR-Studio 3... und 
4.. vom Internet geladen und installiert.
Ausserdem habe ich mir ein Demoprogramm heruntergeladen.
Das Programm bsteht aus einem c-File (Main), einem c-File mit 2 
Unterprogrammen, einem .h-File und dem Makefile.

Das Demo kann ich ohne Probleme mit WINAVR übersetzen.
Nach dem Listing zu urteilen ist der Code auch in Ordnung. Es wird auch 
eine entprechende .cof - File erzeugt.

Bei der Simulation auf dem AVR-Studio 3 oder 4 geschieht folgendenes: 
Aus dem Hauptprogramm "main" wird das 1. externe Unterprogramm 
aufgerufen. Dieses Unterprogramm kehrt jedoch nicht an die Stelle im 
Hauptprogramm zurück, sondern auf der der Adresse 0 und startet somit 
das Hauptprogramm erneut.

Mache ich da was falsch???

Nachfolgend die Files:

         ####### testit.c ################


/*********************************************************************** 
**
 ************************************************************************ 
*
 Title          : Small sample project for WinAvr 3.3
 Author         : Kai Klenovsek <firepower@firemail.de>
                  Known as "BAB"

 Company        :

 Date           :
 Last Change    :
 Compiler       : WINAVR 3.3
 Target         : any AVR device // Makefile is written for AT90S8515
 Hardware       : Tested on STK300 and AVR-Studio 3.5
 ------------------------------------------------------------------------ 
-

 DESCRIPTION:


 USAGE:
        for more information take a look to the header file (projectx.h)

 CONNECTION:
        for more information take a look to the header file (projectx.h)

 CHANGE HISTORY:
        for more information take a look to the header file (projectx.h)
************************************************************************ 
***
************************************************************************ 
***/



// ***************************************
// ************ Include Files ************
// ***************************************
#include <avr/io.h>
#include "projectx.h"


// For testing sample project


int main(void)
{


    setportb_output();

    writevalue_portb(5);

    return (0);

}



         ######## projectx.c ############



/*********************************************************************** 
**
 ************************************************************************ 
*
 Title          : Small sample project for WinAvr 3.3
 Author         : Kai Klenovsek <firepower@firemail.de>
                  Known as "BAB" http://www.elektronik-4u.de

 Company        :

 Date           :
 Last Change    :
 Compiler       : WINAVR 3.3
 Target         : any AVR device // Makefile is written for AT90S8515
 Hardware       : Tested on STK300 and AVR-Studio 3.5
 ------------------------------------------------------------------------ 
-

 DESCRIPTION:


 USAGE:
        for more information take a look to the header file (projectx.h)

 CONNECTION:
        for more information take a look to the header file (projectx.h)

 CHANGE HISTORY:
        for more information take a look to the header file (projectx.h)
************************************************************************ 
***
************************************************************************ 
***/


// ***************************************
// ************ Include Files ************
// ***************************************

#include <avr/io.h>
#include "projectx.h"



extern void setportb_output(void)
{
    // OUTPUT is defined in the headerfile as 0xFF !
    DDRB = OUTPUT;
}

extern void writevalue_portb(unsigned char value)
{
    // Write value to PORTB
    PORTB = value;
}






/*********************************************************************** 
**
 ************************************************************************ 
*
 Title          : Small sample project for WinAvr 3.3 (projectx.c)
 Author         : Kai Klenovsek <firepower@firemail.de>
                  Known as "BAB" http://www.elektronik-4u.de

 Company        :

 Date           : 23.12.03
 Last Change    : 23.12.03
 Compiler       : WINAVR 3.3
 Target         : any AVR device // Makefile is written for AT90S8515
 Hardware       : Tested on STK300 and AVR-Studio 3.5
 ------------------------------------------------------------------------ 
-
 DESCRIPTION:


 USAGE:


 TO DO:


 CHANGE HISTORY:


************************************************************************ 
***
************************************************************************ 
***/




// ************************************************
// ************ Header file definition ************
// ************************************************
#ifndef PROJECTX_H
#define PROJECTX_H




// *******************************************
// ************ Diverse constants ************
// *******************************************
#define OUTPUT 0xFF






// **************************************
// ************ Functiontyps ************
// **************************************

extern void setportb_output(void);

extern void writevalue_portb(unsigned char value);


     ############# Headerfile Projectx.h ############


#endif //PROJECTX_H




Besten Dank
und schöne Osterfeiertage an Euch alle

Autor: BAB (Kai K.) (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo norbert,

die version die du hast war für ein älteren winavr release und es hat 
sich einiges im makefile geändert (wo aber nach meiner meinung nicht das 
problem liegt).
nimm mal bitte diese version hier. hab da das aktuelle makefile aus 
winavr drin mit ein paar modifikationen.
das funnktioniert bei mir einwandfrei mit avrstudio 3.55.

Gruss,
BAB

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ps.: bitte IMMER die aktuelle WinAVR version nehmen.
zu finden unter: https://sourceforge.net/projects/winavr/

Autor: Norbert Dehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

ich bedanke mich zunächst für Deine schnelle Antwort.
Ich habe Dein Projekt (SimpleTest) übersetzt und versuchte es im 
AVR-Studio 3.. bzw. 4.. zu simulieren. Im AVR-Studio 4 komme ich genau 
zum 1. Funktionsaufruf, dann geht die Statusanzeige in der Satuszeile 
auf "Running" (grün) und man kann die Simulation nur über "BREAK" oder 
"RESET" abbrechen.

Ich will Dir kurz meine Vorgehensweise mit dem AVR-Studio beschreiben: 
Ich gehe im Menu auf: File -> open und wähle mir das .cof - File aus und 
lade dieses. Durch das Programm steppe ich mit F10. Ich denke das ist 
korrekt oder ??.
Ich denke auch, dass ich die neueste WINAVR-Versíon habe.
Ich habe folgende Installation: WinAVR 20030312-bin-install.exe. Ich 
habe mal die Ausgabeinformation von WINAVR im Anschluss reinkopiert.

Weiters Info: Ich habe einen PC mit P4 und Win XP, aber das dürfte 
eigentlich nichts ausmachen.


Als Anhang den WINAVR - Kommentar

###################################

make

-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3 20030310 (prerelease)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.

Size before:
   text    data     bss     dec     hex filename
      0     108       0     108      6c testit.hex
-------- end --------
Size after:
   text    data     bss     dec     hex filename
      0     108       0     108      6c testit.hex
Errors: none

############################################

Viele Grüße und
schöne Osterfeiertage
Norbert

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. winxp dürfte kein problem sein das nutze ich auch.

2. F10 ist soweit korrekt aber bedenke das du damit einen step over 
machst und nicht selber die funktion die da hinter steckt debugs. für 
ein step into nimm F11.

3. WinAVR 20030312-bin-install.exe ist die aktuellste stimmt somit auch.

4. was macht eigentlich portb bei der simulation?
es sollte im DDRB wie auch im PortB selber 0xFF stehen.
check das mal bitte.

5. ich arbeite ausschliesslich mit avrstudio 3.55.
die 4er version ist eine komplett neue und hat nichts mit der 3er 
version zu tun. ich hatte damals auch reichlich probleme mit der 4er und 
bin deswegen bei der 3er geblieben also probiers mal bitte mit der oder 
hast du damit das selbe problem?

Gruss,
Kai

Autor: Norbert Dehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

jetzt klappt alles wunderbar, mit AVR-Studio 3.. und 4.. .
Als ich mir alles nochmal durchgeschaut habe, ist mir aufgefallen, dass 
im IO-Fenster von AVR-Studio ein anderer CPU-Type eingestellt war, als 
im MAKEFILE angegeben. Nach korrektur im AVR-Studio läuft alles. Das 
wars wohl.

Ich danke Dir für Deine tatkräftige Unterstützung.

Ich habe noch eine Frage:

Wo bekomme ich eine Beschreibung (Buch) in der WINAVR-Compiler und 
WINAVR-Make beschrieben sind. Mir geht es vor allem auch um die Switches 
die es gibt.

Besten Dank nochmal für alles.

Mit freundlichem Gruß

Norbert Dehn

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Norbert,

wie Joerg Wunsch schon in einem anderen Thread geschrieben hat ist 
WinAVR nicht der compiler sondern eine entwicklungsumgebung bestehend 
z.b aus:
- AVR-LIBC
- Binutils
- AVRDUDE usw. und viele sachen mehr.

lies dir mal bitte das readme file im winavr ordner durch.
dort beschreibt eric was winavr ist und was so alles mitgeliefert wird.
dokumentationen über die lib, makefile und andere sachen findest du im 
ordner c:\winavr\doc.

Gruss,
Kai

Autor: Norbert Dehn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

danke für die Info.

Mit freundlichem Gruß

Norbert Dehn

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.