> - I did a lengthly bug report describing all of this > (http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001456). I submited a > patch to add into eCos kernel a supplementary call to handle the interrupt > pending bit problem, but it's stuck in bugzilla since February since it's a > kernel API change.. > > Hope it helps!
Wow, that's a lot of detail to sort through - I'm going to have to think about that for a bit. On the face of it, we may well have that problem. However, I haven't worked out how that matches our symptoms. I thought that all of the ISRs (and the PendSV/DSR) could only run once at a time. If an ISR triggers the PendSV, it will be off the stack by the time PendSV runs. It can then pre-empt the PendSV exception (so both will appear on the stack at once), but only once. The PendSV exception bit may well be set again, but it will have to wait for the first one to finish (and presumably be off the stack) before running again. Lots of different ISRs could all pre-empt each other, but I don't _think_ that's what's happening. Did you see any issues like this when you were investigating, or was unnecessary ISR/DSR calls the key issue? Thanks very much Alan -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss