Spurious interrupts - my final contribution
2006-03-24 by brendanmurphy37
Yahoo Groups archive
Index last updated: 2026-04-28 23:31 UTC
Thread
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
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
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
-----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
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
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.
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
> therefore be considered as 'designed' with this in mind. > > Regards, > Richard. >
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