The openrisc bugtracker has been moved to: bugzilla.opencores.org. This page is read-only
cannot handle interrupt expectedly from simulator library API
Information:
Type :: REQUEST
Status :: CLOSED
Assigned to ::
Jeremy, Bennett
Description:
or1ksim_interrupt() only provides report_interrupt to PIC.
There was no method to call clear_interrupt of PIC.
In 0.3.0rc2,
pic/pic.c
if (cpu_state.pic_lines & lmask)
{
/* No edge occured, warn about performance penalty and exit */
fprintf (stderr, "Warning: Int line %d did not change state\n", line);
return;
}
or1ksim cannot generate external interrupt any more for above code without calling clear_interrupt(i) to PIC.
I think that two method should be added for simulator library.
for level sensitive : add or1ksim_clear_interrupt method
for edge sensitive : call clear_interrupt( i ) in or1ksim_run function after report_interrupt function of libtoplevel.c
Regards,
swaka
Comments:
| Wakatsuki, Shinji | Jan 15, 2009 |
|---|---|
|
I think current version also has a problem about edge triggered interrupt, addition to level triggered interrupt.
An edge triggered case did not call clear_interrupt. So interrupt only calls once. I hope both be fixed. |
|
| Bennett, Jeremy | Jan 15, 2009 |
|---|---|
| Marked as closed - will be tracked through the earlier bug report. | |
| Bennett, Jeremy | Jan 15, 2009 |
|---|---|
|
Hi Wakatsuki-san, You are correct. This is the same issue reported in the bug "Or1ksim does not handle level triggered interrupts correctly" of 13 Nov 2008. There is some discussion of the issue in that report. New functions to separately raise and clear interrups will be added in the next release of Or1ksim. Jeremy |
|
Post a comment:
Login to post comments!
