I2C Periperal Config Mode FreeRTOS: Missing SetPriority

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

I2C Periperal Config Mode FreeRTOS: Missing SetPriority

1,986件の閲覧回数
tsparber
Contributor II

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).

pastedImage_2.png

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?

ラベル(1)
タグ(2)
2 返答(返信)

1,732件の閲覧回数
jorge_a_vazquez
NXP Employee
NXP Employee

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

0 件の賞賛
返信

1,732件の閲覧回数
bradarno
Contributor I

Why not fix this? As is, the freertos spi driver as shipped does not work.

0 件の賞賛
返信