Hi RiscV,
I don't know of any documents but here is a C snippet that illustrates how to do it with the pulp-runtime (https://github.com/pulp-platform/pulp-runtime):
#include "pulp.h"
void handle_soc_event_interrupts(void ) __attribute((interrupt));
void handle_soc_event_interrupts(void) {
// normal C code here. Do something useful, call other functions etc.
}
int main() {
// some other initialization
// Set interrupt handle for SoC events (IRQ 26)
rt_irq_set_handler(26, handle_soc_event_interrupts);
// Enable soc_event interrupts (IRQ 26)
hal_itc_enable_set(1<<26);
while (1)
hal_itc_wait_for_interrupt(); // Calls _WFI instruction and stalls the core until an interrupt arrives
}
I don't know of any documents but here is a C snippet that illustrates how to do it with the pulp-runtime (https://github.com/pulp-platform/pulp-runtime):
#include "pulp.h"
void handle_soc_event_interrupts(void ) __attribute((interrupt));
void handle_soc_event_interrupts(void) {
// normal C code here. Do something useful, call other functions etc.
}
int main() {
// some other initialization
// Set interrupt handle for SoC events (IRQ 26)
rt_irq_set_handler(26, handle_soc_event_interrupts);
// Enable soc_event interrupts (IRQ 26)
hal_itc_enable_set(1<<26);
while (1)
hal_itc_wait_for_interrupt(); // Calls _WFI instruction and stalls the core until an interrupt arrives
}