PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVRStudio stürzt ab mit C (WinAVR) [behoben]



oberallgeier
09.11.2007, 23:33
Schönen Abend,

wünsch ich wenigstens Euch. Ich bin leicht deprimiert.

Habe bisher schon einige (aber vermutlich weniger als 1000 .. 2000) Zeilen Assembler in AVRStudio geschrieben und wollte jetzt mal "in C einsteigen".

Also >heute< WinAVR geholt von sourceforge.net und installiert. Installiert ist also derzeit:
AVR Studio 4 Version 4.12 Build 460 oder, genauer (aus der AVRStudio-Hilfe)

AVR Studio 4.12.460
GUI Version 4, 12, 0, 460

Operating System
Major 5
Minor 1
PlatformID 2
Build 2600
Service Pack 2

Plugins:

AvrPluginAvrAsmObject 1, 0, 0, 43
AvrPluginavrgccplugin 1, 0, 0, 4
Stk500Dll 1, 0, 0, 58

-------

Fujitsu Siemens Celsius M410, P4 3,06 GHz, WXP Pro (mit allen bisherigen updates)

-------

Und danach (heute) installiert:

WinAVR-20070525-install.exe

---------

und jetzt locker ein neues Projekt in AVRStudio aufgemacht: gewählst avr gcc - mega8 - und losgelegt. Einen einfachen Code eingetragen (aus einem Thread geklaut) :

#include <avr/io.h>
#include <stdbool.h>
#include <stdlib.h>
#include <avr/io.h>
#include <AVR/iom8.h>
#include <inttypes.h>
#include <util/delay.h>

#define F_CPU 9600000 // clock

// Timer1 initialisieren

void timer1_init(void)
{
TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1A0); // initalize mega8 Timer1 with 9Bit, inverted, Prescaler 256
TCCR1B = (1<<CS12); // this gives us a signal with 21.76ms at 12MHz

OCR1A = 476; // pulse of 1.5ms 512- 1500*(F_CPU/256/1000000)/2
// Hier wieder der PWM auf mittelstellung gebracht oder?
}

int main (void)
{

unsigned char i; /* Variable i */

DDRB = ( 1 << PB3 ); /* Pin PB3 als Ausgang für Servo */

DDRB &= ~ (1<<PD4); /* Pin B4 als Eingang */
PORTB |= (1<<PB4); /* Pull Up von PIN B4 aktivieren */


while(1){
if (!( PINB & (1<<PINB4))) /* mache was wenn PinB4 low ist */
{
if(OCR1A > 452){
OCR1A--; /* Pulsbreite verkürzen */
}
} else {
OCR1A = 476;
}
for(i=0;i<50;i++)
_delay_ms(10);
}
}

und auf F7 gedrückt. Gleich bleibt das AVRStudio "stehen" - und endet mit "... das Programm reagiert nicht ..." und "... abbrechen ..." und "... Problembericht senden ...".

Also habe ich BEIDE Programme deinstalliert. Neustart des Rechners. Beide Programme installiert - diesmal aber zuerst WinAVR und DANACH AVRStudio. Der Fehler ist eher gleich geblieben: sobald ich das neu angelegte Projekt mit dem C-Code aufmache - bleibt das AVRStudio stehen ](*,) . Es ist zum Heulen. Die Assembler-Projekte gehen klaglos (ich habe nur EINES getestet :( ) und liefern beim Assemblieren auch einen einwandfrei flashbaren (und funktionierenden) *hex-file.

Ich geb´s ja zu ich habe das readme von WinAVR nicht durchgelesen - na ja, nicht wirklich. Weil eben in den verschiedensten Threads vom eher problemlosen Anfang mit WinAVR die Rede ist. Z.B.:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=35248&highlight=avrstudio+winavr

Könnte mir jemand bitte trotzdem einen Rat geben? Ist das normal? Muss ich bei der Installation anders vorgehen?

Vielleicht hat jemand aber trotzdem einen Ratschlag für mich? Bitte :)


Ach so - ein Nachtrag:

Auch das minimale Programm aus dem C-Turorial in RN-Wissen:


#include <stdio.h>

int Zahl1;
char Zeichen1;

int main (void)
{
int zahl2;

/* Anweisungen */
return 0;
}

führt beim "Build" , also beim Druck auf F7 , zu einem abrupten Anstieg der Systemleistung auf 100 % und der Taskmanager meint "..keine Rückmeldung ..."

Besserwessi
09.11.2007, 23:54
Ich hatte auch mal ähnliche Probleme. Es scheint da einige Probleme mit dem Zusammenspiel von AVRStudio und WINAVR geben. Bei mit ließ sich kein Porjekt file vom GCC typ laden. Das Problem ist nicht ganz unbekannt. Mit neueren Versionen von ARVstudio (4.13 Build 557, Service PACK 1) und WinAVR(20070525) kriege ich die Abstürze wenigstens nur noch selten. Für AVR Studio gibt es auch ein service pack das im gewissen rahmen ein Update durchführt.
Die älteren Versionen von AVRstudio hatten probleme mit dem umschalten ziwschen simulator und compiler/Assembler. Dieses Problem soll behoben sein und ist bei mir auch nicht mehr aufgetreten.

Wenn man schon neu installiert dann würde ich die die neueren Versionen empfehlen (wenigstens wenn bei DSL Verbindung).

oberallgeier
10.11.2007, 01:28
Besserwessi - VIELEN DANK.

Puhhhhh - aber nun, nach einem Download-Marathon (weisst Du, dass Rauchzeichen manchmal ne höhere Datendichte haben als DSL auf dem Lande?) läuft bei mir:
AVR Studio 4.13.557 Service Pack 1
GUI Version 4, 13, 0, 557
und
WinAVR 2007 0525

und schon - stürzt es wenigstens nicht ab. Das minimale Programm aus dem C-Turorial in RN-Wissen (siehe oben) wird zwar mit der Warnung "../test-in-c.c:8: warning: unused variable 'zahl2' " beendet - aber ohne diese dämllichen 100%-Systemauslastung. Und auch das vorhin getestete Assemblerprogramm lässt sich assemblieren.
War etwas mühevoll, aber - Du hast meinen Schlaf gerettet.

Danke.