07-03-2011 09:13 PM
I'm using ml507 board and trying to implement interrupt handling using Xilkernel. My design is simple and includes Interrupt Controll and GPIO 5 Buttons and something else. I'm following the document "Using EDK to RunXilkernel on a PowerPC440 Processor" and facing several problems.
1. I can't see the following messages in console as in the example:
XMK: Initializing interrupt controller
XMK: Connecting timer interrupt
XMK: Starting the interrupt controller
XMK: Initializing PIT device.
XMK: System initialization...
XMK: Enabling interrupts and starting system...
I just can see this:
XMK: Starting kernel.
XMK: Initializing Hardware.
XMK: System initialization.
XMK: Process scheduling starts.
Is it enought for interrupt handling?
2. Next I used register_int_handler(), enable_interrupt() and enabled Global Interrupt Enable Register and IP Interrupt Enable in the GPIO Core. Interrupt handler contains just 1 line of code with call print() function. When I press the button once I can see an endless output of that interrupt handler.
Should I reset an interrupt manually and where? What I'm doing wrong?
07-04-2011 04:41 AM
I fixed it with a call of ***_InterruptClear() at the end of interrupt handler function. Where *** is the type of the block which raised an interrupt. Is it the way it should be in Xilkernel or I've missed something and this routine must be done by kernel. I'm asking about this because I've not seen this call in examples and everything worked fine.