Hallo Fachleute,
vielleicht bin ich auf einen Bug gestoßen. Ich möchte bei Scheduler die Funktion interruptible verwenden, aber dann kommt es zu dem Bug. Die Beschreibung des Bugs habe ich als Kommentar im code unten in der Main_Proc eingefügt.
Betrifft AVRco Version 5.04.91 mit XMEGA128A1U
Gruß
program interruptible;
{ $W+}
Device = xmega128A1U, VCC = 3.3;
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
FuseBits5 = [BODLEVEL1, BODLEVEL2, BODACT0]; // BOD=2.8V if USB variant
ProgFuses = true;
Import SysTick;
From System Import processes;
Define
OSCtype = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1, faildet;
SysTick = 10;
StackSize = 256, iData;
FrameSize = 256, iData;
Scheduler = iData, interruptible;
Implementation
{$IDATA}
{-------------------------------------------------------------------------------
process
-------------------------------------------------------------------------------}
process process1(32, 32 : iData);
begin
sleep(self,100);
end;
{-------------------------------------------------------------------------------
Main Program
-------------------------------------------------------------------------------}
begin
Debug_Break; // Bugbeschreibung: Der Debugger stoppt hier immer wieder,
// obwohl eine Endlosschleife implementiert ist.
// Wenn man im define für den Scheduler interruptible entfernt,
// läuft das Programm richtig und der Debugger stoppt hier nur
// beim erstmaligen "run simulation" (Taste F9 im Debugger).
Start_Processes($87); // EnableInts($87);
loop // Endlosschleiße für Main_Proc
endloop;
end interruptible.
vielleicht bin ich auf einen Bug gestoßen. Ich möchte bei Scheduler die Funktion interruptible verwenden, aber dann kommt es zu dem Bug. Die Beschreibung des Bugs habe ich als Kommentar im code unten in der Main_Proc eingefügt.
Betrifft AVRco Version 5.04.91 mit XMEGA128A1U
Gruß
Code
program interruptible;
{ $W+}
Device = xmega128A1U, VCC = 3.3;
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
FuseBits5 = [BODLEVEL1, BODLEVEL2, BODACT0]; // BOD=2.8V if USB variant
ProgFuses = true;
Import SysTick;
From System Import processes;
Define
OSCtype = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1, faildet;
SysTick = 10;
StackSize = 256, iData;
FrameSize = 256, iData;
Scheduler = iData, interruptible;
Implementation
{$IDATA}
{-------------------------------------------------------------------------------
process
-------------------------------------------------------------------------------}
process process1(32, 32 : iData);
begin
sleep(self,100);
end;
{-------------------------------------------------------------------------------
Main Program
-------------------------------------------------------------------------------}
begin
Debug_Break; // Bugbeschreibung: Der Debugger stoppt hier immer wieder,
// obwohl eine Endlosschleife implementiert ist.
// Wenn man im define für den Scheduler interruptible entfernt,
// läuft das Programm richtig und der Debugger stoppt hier nur
// beim erstmaligen "run simulation" (Taste F9 im Debugger).
Start_Processes($87); // EnableInts($87);
loop // Endlosschleiße für Main_Proc
endloop;
end interruptible.