1/1

|
Issue with the Interrupt handling on OR1200.
by avamsi on Oct 1, 2012 |
avamsi
Posts: 54 Joined: Apr 16, 2012 Last seen: Jul 30, 2014 |
||
|
Hi,
Can any one help in solving this issue. When or1200 is being interrupted by two external interrupt sources continuously, after serving some number of interrupts, PC suddenly goes to 0x0. Same behavior is observed when I enabled timer and one external interrupt.Moreover the issue is not consistent means it fails at different points for each run.I could not make sure if the issue is with software that I am running or the RTL that I am using or is it some issue with latencies. I believe if it is a software issue, It would have failed in the first run and pretty sure that code is not accessing any non exist memory. I am using the tool chain and RTL that are downloaded from opencore SVN. Thanks, A.Vamsi |
|||
|
RE: Issue with the Interrupt handling on OR1200.
by Kuoping on Oct 1, 2012 |
Kuoping
Posts: 41 Joined: Mar 27, 2009 Last seen: May 25, 2021 |
||
|
Hi Avamsi,
I had met the same problem before. This is my patch, it works for me. But this patch did made by me on several years before, I don't know it still works on current RTL version or not. You can try it. Kuoping
or1200_except.v.patch (0 kb)
|
|||
|
RE: Issue with the Interrupt handling on OR1200.
by avamsi on Oct 3, 2012 |
avamsi
Posts: 54 Joined: Apr 16, 2012 Last seen: Jul 30, 2014 |
||
|
Hi Kuoping,
Thank you for the reply and patch. We tried to use that patch.But it did not solve the problem. Still the problem comes and behavior is same as before. As I mentioned, the issue is not consistent and halting at different locations for each run. Regards, A.Vamsi |
|||
|
RE: Issue with the Interrupt handling on OR1200.
by ClockworkRed on Oct 10, 2012 |
ClockworkRed
Posts: 19 Joined: May 6, 2011 Last seen: Oct 26, 2016 |
||
|
Hello Vamsi,
there was a problem in the tool chain newlib implementation inside the interrupt handler function. We posted the bug report here: http://bugzilla.opencores.org/bugzilla4/show_bug.cgi?id=86 I just saw that parts of our suggestions were committed to the SVN. I still believe, there remains a problem in the current version inside the SVN if you have nested interrupt calls but I have to study it in detail (It's all assembler). I think the problem occurs when an external interrupt is issued while the processor is inside an interrupt service routine, which can basically only happen with two interrupt sources. We tried to address this in our version of the interrupt handler (see attached file). I do not know, if it causes the problem you are having, but maybe you want to try it. Ourselves, we only tried simulation with or1ksim, not RTL yet. To use the new interrupt handler, you need to rebuilt the gnu toolchain though after you replaced the file in gnu-src/newlib-1.18.0/newlib/libc/machine/or32. Best regards, Daniel
or1k-support-asm.S (25 kb)
|
|||
1/1

