We would like to use the I2C periperal using the fsl_i2c_freertos driver. Configuring this in the MCUXpresso Config Tool works, but it is not possible to specify the interrupt priority for the periperal.
The current workaround, is to manually configure the interrupt priority using the following code.
#include "fsl_common.h" const IRQn_Type s_i2cIrqs[] = I2C_IRQS; uint32_t I2C_GetInstance(I2C_Type *base); NVIC_SetPriority(s_i2cIrqs[I2C_GetInstance(I2C_LED_rtosHandle.base)], 2u);
Not setting the NVIC priority results in assertions by FreeRTOS, as a interrupt with a priority of 0 is not allowed to use the FreeRTOS functions (see configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY).
When selecting the "Interrupt" Mode it is possible to configure the priority as expected.
Is this functionality missing or is there another way to configure the priority?
Hi Tommy Sparber
Yes, the method to set the priority is through the NVIC_SetPriority(), this is not implemented in the fsl_i2c_freertos driver and so it is not implemented in the Peripheral config tools.
Hope this helps
Best regards
Jorge Alcala
Why not fix this? As is, the freertos spi driver as shipped does not work.