i.MX8QM Cortex-M FLEXCAN FreeRTOS

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

i.MX8QM Cortex-M FLEXCAN FreeRTOS

ソリューションへジャンプ
1,340件の閲覧回数
io
Contributor II

Hello,
I’m working with i.MX8QM Cortex-M4 running FreeRTOS.
I use the NXP FlexCAN driver with interrupt callback. Inside the callback I try to call xSemaphoreGiveFromISR(), but the program always hangs/stuck at that point.

I already tried changing interrupt priority and checked FreeRTOS config, but still same result.
Does anyone have a simple example how to use FlexCAN with FreeRTOS task (semaphore or task notify) on i.MX8QM?

Here is my main program.
https://pastebin.com/BrhXQC1w 

Thanks.

ラベル(1)
タグ(3)
0 件の賞賛
返信
1 解決策
1,262件の閲覧回数
io
Contributor II

Just wanna share for anyone who may need it.

The problem was just the interrupt setup. I wrongly set the NVIC Priority
NVIC_SetPriority(DMA_FLEXCAN0_INT_IRQn, 3); which should be NVIC_SetPriority(IRQSTEER_4_IRQn, 3);

The FLEXCAN0 interrupt was connected to IRQSTEER_4_IRQn. Because the interrupt priority was wrongly set, it defaulted to a high priority (maybe 0). Then when calling xSemaphoreGiveFromISR() inside isr flexcan_callback, it causing the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() failure and the program to stuck there.

Ref:
https://community.nxp.com/t5/i-MX-Processors/imx8qm-IRQSTEER-interrupt-mapping/m-p/1067519/highlight...

https://www.freertos.org/Documentation/02-Kernel/03-Supported-devices/04-Demos/ARM-Cortex/RTOS-Corte...

 

Regards,

io

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
1,263件の閲覧回数
io
Contributor II

Just wanna share for anyone who may need it.

The problem was just the interrupt setup. I wrongly set the NVIC Priority
NVIC_SetPriority(DMA_FLEXCAN0_INT_IRQn, 3); which should be NVIC_SetPriority(IRQSTEER_4_IRQn, 3);

The FLEXCAN0 interrupt was connected to IRQSTEER_4_IRQn. Because the interrupt priority was wrongly set, it defaulted to a high priority (maybe 0). Then when calling xSemaphoreGiveFromISR() inside isr flexcan_callback, it causing the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() failure and the program to stuck there.

Ref:
https://community.nxp.com/t5/i-MX-Processors/imx8qm-IRQSTEER-interrupt-mapping/m-p/1067519/highlight...

https://www.freertos.org/Documentation/02-Kernel/03-Supported-devices/04-Demos/ARM-Cortex/RTOS-Corte...

 

Regards,

io

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2175915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX8QM%20Cortex-M%20FLEXCAN%20FreeRTOS%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2175915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3CBR%20%2F%3E%E7%A7%81%E3%81%AFFreeRTOS%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%20i.MX8QM%20Cortex-M4%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E4%BB%98%E3%81%8D%E3%81%AE%20NXP%20FlexCAN%20%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E5%86%85%E3%81%A7%20xSemaphoreGiveFromISR()%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%9D%E3%81%86%E3%81%A8%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E5%B8%B8%E3%81%AB%E3%81%9D%E3%81%AE%E6%99%82%E7%82%B9%E3%81%A7%E3%83%8F%E3%83%B3%E3%82%B0%2F%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%99%E3%81%A7%E3%81%AB%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E8%A9%A6%E3%81%BF%E3%80%81FreeRTOS%20%E6%A7%8B%E6%88%90%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E7%B5%90%E6%9E%9C%E3%81%AF%E5%90%8C%E3%81%98%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3Ei.MX8QM%20%E4%B8%8A%E3%81%AE%20FreeRTOS%20%E3%82%BF%E3%82%B9%E3%82%AF%20(%E3%82%BB%E3%83%9E%E3%83%95%E3%82%A9%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%BF%E3%82%B9%E3%82%AF%E9%80%9A%E7%9F%A5)%20%E3%81%A7%20FlexCAN%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E7%B0%A1%E5%8D%98%E3%81%AA%E4%BE%8B%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E4%BA%BA%E3%81%AF%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%8C%E7%A7%81%E3%81%AE%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CA%20title%3D%22flexcan_rtos%22%20href%3D%22https%3A%2F%2Fpastebin.com%2FBrhXQC1w%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fpastebin.com%2FBrhXQC1w%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2175915%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%20%7C%20i.MX%208QuadMax%E2%80%AF(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2178167%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX8QM%20Cortex-M%20FLEXCAN%20FreeRTOS%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2178167%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%BF%85%E8%A6%81%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E5%85%B1%E6%9C%89%E3%81%97%E3%81%9F%E3%81%84%E3%81%A0%E3%81%91%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%95%8F%E9%A1%8C%E3%81%AF%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E8%A8%AD%E5%AE%9A%E3%81%A0%E3%81%91%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82NVIC%E3%81%AE%E5%84%AA%E5%85%88%E5%BA%A6%E3%82%92%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%3CBR%20%2F%3ENVIC_SetPriority(DMA_FLEXCAN0_INT_IRQn%2C%203)%3B%20%E3%81%93%E3%82%8C%E3%81%AF%20NVIC_SetPriority(IRQSTEER_4_IRQn%2C%203)%3B%20%E3%81%A7%E3%81%82%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3EFLEXCAN0%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AF%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3EIRQSTEER_4_IRQn%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%E3%81%AB%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%86%E3%83%83%E3%83%89%E3%80%82%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%8C%E8%AA%A4%E3%81%A3%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%81%9F%E3%82%81%E3%80%81%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E9%AB%98%E3%81%84%E5%84%AA%E5%85%88%E5%BA%A6%20(%E3%81%8A%E3%81%9D%E3%82%89%E3%81%8F%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E0)%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E6%AC%A1%E3%81%AB%E3%80%81isr%20flexcan_callback%20%E5%86%85%E3%81%A7%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3ExSemaphoreGiveFromISR()%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E3%81%A8%E3%80%81%20%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3EportASSERT_IF_INTERRUPT_PRIORITY_INVALID()%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%E3%81%AE%E5%A4%B1%E6%95%97%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%8C%E3%81%9D%E3%81%93%E3%81%A7%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%8F%82%E7%85%A7%3A%3CBR%20%2F%3E%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2Fimx8qm-IRQSTEER-interrupt-mapping%2Fm-p%2F1067519%2Fhighlight%2Ftrue%23M156853%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2Fimx8qm-IRQSTEER-interrupt-mapping%2Fmp%2F1067519%2Fhighlight%2Ftrue%23M156853%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.freertos.org%2FDocumentation%2F02-Kernel%2F03-Supported-devices%2F04-Demos%2FARM-Cortex%2FRTOS-Cortex-M3-M4%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fwww.freertos.org%2FDocumentation%2F02-Kernel%2F03-Supported-devices%2F04-Demos%2FARM-Cortex%2FRTOS-Cortex-M3-M4%3C%2FA%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3Eio%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2177512%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20i.MX8QM%20Cortex-M%20FLEXCAN%20FreeRTOS%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2177512%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FiMX8QM-FLEXCAN-enable-and-test-case-on-A-core%2Fta-p%2F1349003%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FiMX8QM-FLEXCAN-enable-and-test-case-on-A-core%2Fta-p%2F1349003%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2FHow-to-read-from-CAN-through-M4%2Fm-p%2F1695836%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors%2FCAN%20%E3%81%8B%E3%82%89%20M4%20%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E6%96%B9%E6%B3%95%2Fmp%2F1695836%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E