Benchmarks Documentation Examples Repository Blog Contact

Interrupt service routines

By default, all the interrupt service routines have higher priority than the kernel service call handler. CMRX is not expecthing this to change. This configuration causes that service call handler is not callable from within interrupt service handlers. Following routines are provided so that interrupt service routines can ask kernel to perform certain tasks while in servicing interrupt.

Never perform direct calls into kernel other than methods listed in this group. These methods are not reentrant and calling them from within interrupt handler may corrupt kernel internal state.

Functions

void isr_kill(Thread_t thread_id, uint32_t signal)

This routine is an equivalent of kill()

thread_id thread, which should receive the signal

signal signal to be sent

  • thread_id thread, which should receive the signal
  • signal signal to be sent

void isr_notify_object(const void *object)

This routine is an equivalent of notify_object()

object object to be notified

  • object object to be notified

64kB of protected memory ought to be enough for everyone.