Hauptschleife wird ignoriert!

Gast #2392650
Lesenswert?

Sehr geehrte Forum-Mitglieder,

ich habe den unten stehen Source Code in AVR Studio 4 sowie in AVR 
Studio 5 simuliert und habe festgestellt, dass in AVR Studio 4 die 
Hauptschleife in der "main()" Funktion "einfach" ignoriert wird. In der 
Version 5 des Programmes läuft das Programm im Simulator in die 
Schleife. In der Version 4 wird das Programm an der Stelle der Schleife 
beendet. Habe ich noch irgendwas bezüglich dies nicht verstanden oder 
sind da irgendwelche verrückten Einstellungen die Hauptschuldigen ? Die 
Compiler Settings (wie
Code Optimization etc..) habe bei beiden Versionen soweit identisch.
Die Schleife funktioniert in AVR Studio 4 nur dann, wenn die Schleife
der erste Befehl in der "main()" Funktion ist und sie funktioniert dann,
wenn in der Schleife irgendein Befehl ausgeübt wird. In der Forensuche 
habe ich zwar einen Beitrag bezüglich dieses Problem gefunden, welcher 
aber keine eindeutige Problemlösung beinhaltet. Die Frage lautet daher, 
warum funktioniert das in AVR Studio 5 und nicht in AVR Studio 4 ?!

Hier der Code:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
    DDRB |= (1<<PB0);   
6
 
7
    while(1)
8
    {
9
 
10
    }
11
}

Bin für jede Hilfestellung dankbar.

Einen guten Start in die Woche und freundliche Grüße,
opcode
#2392898
Lesenswert?

opcode schrieb:
> Die Schleife funktioniert in AVR Studio 4 nur dann, wenn die Schleife
> der erste Befehl in der "main()" Funktion ist und sie funktioniert dann,
> wenn in der Schleife irgendein Befehl ausgeübt wird.

Das ist korrekt.
Ein Simulator kann nur dort halten, wo auch Code generiert wird.
Eine '{' oder gar Leerzeile enthält aber nichts, wo der Simulator 
anhalten kann.

Der Simulator führt eine Anweisung aus und setzt dann den Kursor auf die 
zugehörige Quell-Zeile, nicht umgekehrt.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren