Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

Spurious interrupts - my final contribution

Spurious interrupts - my final contribution

2006-03-24 by brendanmurphy37

I'm sure it'll come as a great relief to everyone when I say I won't be 
making any further contributions on this topic.

I think the technical issues involved have been well aired, and little 
further is being added at this stage. 

I'm sure everyone can make up their own minds on the merits of each of 
the points made.

My apologies to everyone in the group, including Jaya, for the length 
of some of the posts, and the repitition involved.

Brendan

Re: Spurious interrupts - my final contribution

2006-03-24 by rtstofer

--- In lpc2000@yahoogroups.com, "brendanmurphy37" <brendan.murphy@...>
wrote:
>
> 
> I'm sure it'll come as a great relief to everyone when I say I won't be 
> making any further contributions on this topic.
> 
> I think the technical issues involved have been well aired, and little 
> further is being added at this stage. 
> 
> I'm sure everyone can make up their own minds on the merits of each of 
> the points made.
> 
> My apologies to everyone in the group, including Jaya, for the length 
> of some of the posts, and the repitition involved.
> 
> Brendan
>

Brendan,

Not a problem!  I have been following this debate with interest and I
think I will just use your code.

OK, the VIC has a hardware problem; it is less than perfect.  Maybe
that is why there is a new and improved model.  There's nothing I can
do about that; it is a fact not subject to debate.

But the warts appear to be well known and a workaround exists.  I'll
just use it.  There are millions of these devices in use and in far
more serious applications than mine.

Thanks for putting forth a workaround.  It may have taken me months to
discover the problem and come up with a solution.

Richard

RE: [lpc2000] Re: Spurious interrupts - my final contribution

2006-03-24 by Karim Virani

Given the assertion that Brendon's solution/approach/workaround meets my needs - Are there any LPC RTOSes out there that already handle this problem similarly or are amenable to this solution given that device drivers are crafted accordingly?  I'm thinking about FreeRTOS specifically, but I'd like to know if this has been considered a significant reliability factor for LPC RTOSes - from the perspective of the practical (as opposed to academic) community.

Thanks,

Karim
Show quoted textHide quoted text
-----Original Message-----
From: lpc2000@yahoogroups.com [mailto:lpc2000@yahoogroups.com]On Behalf
Of rtstofer
Sent: Friday, March 24, 2006 10:44 AM
To: lpc2000@yahoogroups.com
Subject: [lpc2000] Re: Spurious interrupts - my final contribution


--- In lpc2000@yahoogroups.com, "brendanmurphy37" <brendan.murphy@...>
wrote:
>
> 
> I'm sure it'll come as a great relief to everyone when I say I won't be 
> making any further contributions on this topic.
> 
> I think the technical issues involved have been well aired, and little 
> further is being added at this stage. 
> 
> I'm sure everyone can make up their own minds on the merits of each of 
> the points made.
> 
> My apologies to everyone in the group, including Jaya, for the length 
> of some of the posts, and the repitition involved.
> 
> Brendan
>

Brendan,

Not a problem!  I have been following this debate with interest and I
think I will just use your code.

OK, the VIC has a hardware problem; it is less than perfect.  Maybe
that is why there is a new and improved model.  There's nothing I can
do about that; it is a fact not subject to debate.

But the warts appear to be well known and a workaround exists.  I'll
just use it.  There are millions of these devices in use and in far
more serious applications than mine.

Thanks for putting forth a workaround.  It may have taken me months to
discover the problem and come up with a solution.

Richard
 






 
Yahoo! Groups Links

Re: Spurious interrupts - my final contribution

2006-03-24 by rtstofer

--- In lpc2000@yahoogroups.com, "Karim Virani" <karim@...> wrote:
>
> Given the assertion that Brendon's solution/approach/workaround
meets my needs - Are there any LPC RTOSes out there that already
handle this problem similarly or are amenable to this solution given
that device drivers are crafted accordingly?  I'm thinking about
FreeRTOS specifically, but I'd like to know if this has been
considered a significant reliability factor for LPC RTOSes - from the
perspective of the practical (as opposed to academic) community.
> 
> Thanks,
> 
> Karim

Why should there be an issue with ANY of the RTOSes?  You need to have
a default VIC interrupt handler, you need to point the default entry
of the VIC to the default handler and the default handler needs to do
exactly nothing except tell the VIC the interrupt has been handled and
return.

The RTOS doesn't even need to know the interrupt happened.  Any real
vectored interrupt will be handled via the RTOS (presumably) but it
doesn't need to know about the transient interrupt because it won't
cause a context change.

Personally, I might keep a counter just for reference but I'm not sure
how I would get at the value.  It would be application specific.

Richard

Re: Spurious interrupts - my final contribution

2006-03-24 by nospam@FreeRTOS.org

>Given the assertion that Brendon's solution/
>approach/workaround meets my needs - Are 
>there any LPC RTOSes out there that already 
>handle this problem similarly or are amenable 
>to this solution given that device drivers are 
>crafted accordingly?  I'm thinking about FreeRTOS 
>specifically, but I'd like to know if this has been 
>considered a significant reliability factor for 
>LPC RTOSes - from the perspective of the 
>practical (as opposed to academic) community.

Sorry I cannot give a specific answer as I stopped following this thread 
some days (weeks?) ago so did not read the post to which you refer.  
However, with regard to FreeRTOS I\ufffdm not aware that the code need do 
anything, and therefore why this is such a big subject. 

I tend to use startup code as supplied by the compiler or silicon 
manufacture.  This sometimes does and sometimes does not add a default 
handler.  Such a handler does nothing anyway other than return (this is my 
understanding of the situation without having trawled through all the posts 
which may suggest otherwise).  This is easy for an application writer to 
include, and presumably will be checked by anybody deploying a real 
application. 

I have run FreeRTOS apps with heavy interrupt overhead for days with a 
default handler that does nothing but jump to itself, and I have never seen 
it get called.  Also I cannot think of any time in my career when I have 
ever needed to check whether a function was called synchronously or by an 
interrupt by checking the I bit of the status register. 

In summary, FreeRTOS does nothing special with default handlers and cannot 
therefore be considered as 'designed' with this in mind. 

Regards,
Richard.

Re: Spurious interrupts - my final contribution

2006-03-25 by brendanmurphy37

Richard,

I know I said I wouldn't post anything else on this topic, but 
please bear with me on the following: I hope you'll understand why.

From your statement "I have run FreeRTOS apps with heavy interrupt 
overhead for days with a default handler that does nothing but jump 
to itself", am I correct in assuming that the handler you refer to 
just loops to itself?

If I am correct in this assumption, you should really look at doing 
something else. 

Just because you haven't seen the behaviour, doesn't mean it doesn't 
exist. We first encountered it, before it was documented, by running 
a very severe stress test. After something of the order of few 
hundred million interrupts handled perfectly, the default interrupt 
handler was called, and the system failed.

It is this very sporadic nature of the problem that makes it so 
invidious.

So as not to re-invoke controversy, I won't promote one solution 
over another. I believe both those described recently are valid 
approaches: there are probably other solutions too.

If I'm incorrect in my interpretation of what you wrote, I hope you 
won't mind me making this point in any case.

Brendan


--- In lpc2000@yahoogroups.com, nospam@... wrote:
>
> >Given the assertion that Brendon's solution/
> >approach/workaround meets my needs - Are 
> >there any LPC RTOSes out there that already 
> >handle this problem similarly or are amenable 
> >to this solution given that device drivers are 
> >crafted accordingly?  I'm thinking about FreeRTOS 
> >specifically, but I'd like to know if this has been 
> >considered a significant reliability factor for 
> >LPC RTOSes - from the perspective of the 
> >practical (as opposed to academic) community.
> 
> Sorry I cannot give a specific answer as I stopped following this 
thread 
> some days (weeks?) ago so did not read the post to which you 
refer.  
> However, with regard to FreeRTOS I'm not aware that the code need 
do 
> anything, and therefore why this is such a big subject. 
> 
> I tend to use startup code as supplied by the compiler or silicon 
> manufacture.  This sometimes does and sometimes does not add a 
default 
> handler.  Such a handler does nothing anyway other than return 
(this is my 
> understanding of the situation without having trawled through all 
the posts 
> which may suggest otherwise).  This is easy for an application 
writer to 
> include, and presumably will be checked by anybody deploying a 
real 
> application. 
> 
> I have run FreeRTOS apps with heavy interrupt overhead for days 
with a 
> default handler that does nothing but jump to itself, and I have 
never seen 
> it get called.  Also I cannot think of any time in my career when 
I have 
> ever needed to check whether a function was called synchronously 
or by an 
> interrupt by checking the I bit of the status register. 
> 
> In summary, FreeRTOS does nothing special with default handlers 
and cannot 
Show quoted textHide quoted text
> therefore be considered as 'designed' with this in mind. 
> 
> Regards,
> Richard.
>

Re: Spurious interrupts - my final contribution

2006-03-25 by nospam@FreeRTOS.org

>From your statement "I have run FreeRTOS apps with heavy interrupt 
>overhead for days with a default handler that does nothing but jump 
>to itself", am I correct in assuming that the handler you refer to 
>just loops to itself?

Yes. 

>If I am correct in this assumption, you should really look at doing 
>something else.

Naturally.  The only purpose of this was for my own amusment, to see if the 
interrupt was called frequently or rarely/erratically.  I was not suggesting 
this was a solution!  As I also said, those deploying real applications 
would surely check that an appropriate ISR was installed. 

Regards,
Richard. 

http://www.FreeRTOS.org

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.