How to Get Back to Main after Calling Interrupt #65767
Replies: 5 comments
-
You will need to describe your problem more precisely, because your title is exactly how interrupts normally work. They interrupt the normal program flow, do their thing, and when they're done, the program continues where it was interrupted. |
Beta Was this translation helpful? Give feedback.
-
main.c
apply for n = 0, 1, 2 taskn.h
Below is the Behavior when I interrupt:
After calling interrupt, it never returns back to the Task2 to execute |
Beta Was this translation helpful? Give feedback.
-
Sounds more like you're not acknowledging the interrupt, so it keeps firing. Impossible to say without knowing what interrupt and for what device it is. |
Beta Was this translation helpful? Give feedback.
-
FPGA Setup NEORV32 RISC-V Processor on Cyclone V De0-CV NEORV32 Version: V1.8.6 (Purpose: compatible to Zephyr latest version) CFS_INTERRUPT Based on the Official Documentation on CFS Interrupt (https://stnolting.github.io/neorv32/#_neorv32_specific_fast_interrupt_requests); I'm trying to only access Channel 1, CFS is not a device it's a module for (adding additional functionality to the NEORV32 RISC-V Processor) Below is its corresponding FIRQ Table for neorv32
Below is how I Define IRQ
It seems that on Zephyr side, I haven't see any API that could be used to acknowledging the Interrupt, what would be a corresponding API for that? Btw, do I need to clear the bit of the irq after calling interrupt? |
Beta Was this translation helpful? Give feedback.
-
I haven't dug in very far, but it seems like the documentation you linked already provides some information on this:
https://stnolting.github.io/neorv32/#_custom_functions_subsystem_cfs You need find out how to make the CFS stop raising an interrupt, which is obviously highly hardware-specific. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Is there a way for interrupt to get back to main after it execute its my_isr function?
It seems that it keep executing
printf("INSIDE my_isr\n");
whenever an interrupt occurs.
Beta Was this translation helpful? Give feedback.
All reactions