AnsweredAssumed Answered

I2C Periperal Config Mode FreeRTOS: Missing SetPriority

Question asked by Tommy Sparber on Nov 15, 2018
Latest reply on Nov 20, 2018 by Jorge Antonio Alcala Vazquez

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?

Outcomes