Hi, everybody!
I've a problem with F28M35. Similar problem was discussed here:
http://e2e.ti.com/support/microcontrollers/c2000/f/17..
but no soution was suggested.
So, sometimes I get "ILLEGAL_ISR". I can get rid of it, changin optimization level OR changing code (that's same things, if opt is used =) ).
I've examined this ISR, removed for(;;). Program continues running from one of my functions (let's call C code line, where it gets back, "return line"). That function is placed into a EPwm ISR.
Also I can see, that a part of the code just is not being executed (some of my variables are not being updated, some are).
But it's strange, that setting a breakpoint in that function (above return line in C) makes ILLEGAL ISR disappear. I can move that breakpoint two/three/four... lines above the reurn line, but it stops helping at some point.
Also we have problems with starting Concerto. Bootmodes are "Boot from flash" for both ARM and C28 cores. To make them run I have to reset and start cores some times. Like "Start -> not working -> reset cores -> start -> not working -> reset ->... ... ... -> reset -> start -> working". What can be wrong?
Sorry for my english ;)
switch{
………
case MC_WORKING:
p->IA = MKAdc.IA; // Breakpoint in here does not help
p->IB = MKAdc.IB; // Breakpoint in here helps
p->IC = MKAdc.IC; // Breakpoint in here helps
if (control == 0) // Breakpoint in here helps
{
p->mcOff(&MKmc);
p->mcState = MC_READY;
}
else if (p->I2temp - p->I2nom > 0) // Breakpoint in here helps
{
p->mcOff(&MKmc);
p->mcState = MC_OVERHEAT;
} // return line getting back here and pressing “Step line” gets right to the end of switch {}
else if ((p->UDC > p->UDCmax) || (p->UDC < p->UDCmin))
{
p->mcOff(&MKmc);
p->mcState = MC_UDC_NOT_NORM;
}
…….
} // end switch