- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm trying to read current value of the Complex GPIO timer (GPIO [25]) whenever i get the Strobe signal from the sensor. One of the GPIO pin (GPIO[19]) is configured as interrupt to Strobe signal. The issue here is whenever the camera exposure is changed, GPIO Interrupt is not invoked for both positive edge or negative edge of the Strobe signal. Also Interrupt is missing for only one strobe signal and after that interrupt for next strobe signal is received properly. Upon debugging I have found that CY_U3P_DMA_CB_PROD_EVENT in the DmaRead Callback function is pre-empting the GPIO Interrupt. I have tried changing the interrupt priority for USB Dma Block and GPIO block using CyU3PVicIntSetPriority(vectorNum,priority) API but this API function doesn't seems to have any effect in the interrupt priority. Please let me know whether setting priority in this API changes the priority of the interrupts.
Is there any other ways to handle priorities between Interrupts or Callback functions ?
Thanks,
Karthick S
Solved! Go to Solution.
- Tags:
- fx3
- fx3 interrupt
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Karthick,
As per the FX3APIGuide, there are two types of interrupts:
The high priority (non pre-emptable interrupts) are:
USB interrupt
DMA interrupt for USB sockets
DMA interrupt for GPIF sockets
DMA interrupt for Serial peripheral sockets
The low priority (pre-emptable interrupts) are: System control interrupt (used for suspend/wakeup)
OS scheduler interrupt (timer based)
GPIF interrupt
SPI interrupt
I2C interrupt
I2S interrupt
UART interrupt
GPIO interrupt
Some interrupts in the FX3 system need to be prioritized over others to ensure that the application can meet all the USB spec
requirements and transfer rates. In particular, the USB core interrupt must be handled at the highest priority , and all the DMA interrupts should be allotted the next high priority level.
So, it not advisable to change the priority of these interrupts.
Also, CyU3PVicIntSetPriority() function is not used in the library and is not expected to be called
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Karthick,
As per the FX3APIGuide, there are two types of interrupts:
The high priority (non pre-emptable interrupts) are:
USB interrupt
DMA interrupt for USB sockets
DMA interrupt for GPIF sockets
DMA interrupt for Serial peripheral sockets
The low priority (pre-emptable interrupts) are: System control interrupt (used for suspend/wakeup)
OS scheduler interrupt (timer based)
GPIF interrupt
SPI interrupt
I2C interrupt
I2S interrupt
UART interrupt
GPIO interrupt
Some interrupts in the FX3 system need to be prioritized over others to ensure that the application can meet all the USB spec
requirements and transfer rates. In particular, the USB core interrupt must be handled at the highest priority , and all the DMA interrupts should be allotted the next high priority level.
So, it not advisable to change the priority of these interrupts.
Also, CyU3PVicIntSetPriority() function is not used in the library and is not expected to be called
Regards,
Rashi
Rashi