Про использование констант приоритетов:
Смотрите исходники порта. Для Cortex-M3 эти константы должны записываться в регистр ядра BASEPRI.
Будет что-то типа (на Си):
Код
__set_BASEPRI(configMAX_SYSCALL_INTERRUPT_PRIORITY)
или же конструкция типа (на Асме)
Код
LDR r0,#configMAX_SYSCALL_INTERRUPT_PRIORITY
MSR BASEPRI, r0
Прерывания с приоритетом выше чем "configMAX_SYSCALL_INTERRUPT_PRIORITY" нельзя использовать, потому что для своей корректной работы ядро FreeRTOS и Ваш код (если пожелаете) входит в "критические секции". Во время нахождения в критической секции блокируются структуры ядра на запись только из "критической секции". Для того, чтобы внезапно возникщее прерывание не испортило работу ядра ОС.
Фактически вход в критическую секцию - запрет всех прерываний с приоритетом <= configMAX_SYSCALL_INTERRUPT_PRIORITY, а выход из КС - разрешение прерываний.
Если Ваш обработчик прерывания использует вызовы FreeRTOS-овских функций - приоритет должен быть ниже или равен configMAX_SYSCALL_INTERRUPT_PRIORITY.
Если же Вы не задействуете FreeRTOS-овские функции в обработчике прерывания (например, реализуете какой-то свой механизм синхронизации потоков с прерываниями) - можете делать приоритет выше чем configMAX_SYSCALL_INTERRUPT_PRIORITY. В этом случае FreeRTOS никогда не запретит Вашему обработчику вызов.