First, are you sure this issue is related to FreeRTOS? Do the interrupts work when you have not started the scheduler?
Second, did you see this page: https://www.freertos.org/RTOS-Cortex-M3-M4.html It is complex, but that is due to the architecture rather than the kernel. If you are using the last couple of versions of FreeRTOS with configASSERT() defined then the asserts will catch nearly all, and maybe even all, misconfigurations.