The Kinetis Software Development Kit is intended to ease evaluation, prototyping and development with Kinetis MCUs. Apart from the Peripheral Drivers, HAL layer, System Services, RTOS abstraction and software stacks, KSDK implements a robust hardware interrupt mechanism.

The attached document is intended to explain the interrupt handling mechanism of KSDK platform and how to use it for baremetal KSDK or "MQX for KSDK" projects. Some of the topics covered are:

>> Interrupt manager

>> Installing vector table in Flash or RAM

>> Interrupt priorities

>> Peripheral IRQ files (fsl_<peripheral>_irq.c)

>> Installing, defining or registering ISRs

>> Callbacks

>> MQX hardware interrupts system

>> Interrupts and callbacks with Processor Expert

The last chapter explains the considerations of interrupt handling when using Kinetis Design Studio in 4 different cases:

1) KSDK baremetal project

2) KSDK baremetal + Processor Expert project

3) MQX for KSDK project

4) MQX for KSDK + Processor Expert project

I hope this document is useful for all of you who have already adopted KSDK as development solution.

Yes thank you for this! I just attempted to add a couple of pin interrupts using INT_SYS_InstallHandler on a platform running MQX which did not work. I found this post and found that I should be using OSA_InstallHandler and now it works.

I tried to add UART1 Rx interrupt based on Section 4.2 in your document using KL25Z Freedom board. However, if I follow to uncheck "Vector table copy in RAM", my program hang at HW initi. Do I necessary to follow that step? If I check, my interrupt was not triggered. Is it supposed to be also? I may missed some important steps.

Actually the KSDK v2.0 uses a different interrupt handling technique, so this document does not apply completely. There is a brief about interrupt handling in the KSDK v2.0 API Reference Manual, included in the KSDK package or in the web:

I'm trying to handle my WDOG interrupts with KSDK2.0 in KDS3.2 using Freertos, but even declaring everything just like the example of ADC16_Interrupt it won't capture the interruption. As my colleague said, it would be great if there's a document "about interrupt as good as the one you wrote".