Should S32K344 SDK add __DSB() in the interrupt handler last position

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Should S32K344 SDK add __DSB() in the interrupt handler last position

625 次查看
Fovery
Contributor II

In the RT1061(cortex M7) SDK, there are __DSB() in every interrupt handler last position. The S32K344 is cortex M7, but the S32K344 SDK didn't add __DSB() in the interrupt, why not??

RT106x SDK :

* ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping
* exception return operation might vector to incorrect interrupt.
* For Cortex-M7, if core speed much faster than peripheral register write speed,
* the peripheral interrupt flags may be still set after exiting ISR, this results to
* the same error similar with errata 83869.
*/
#if (defined __CORTEX_M) && ((__CORTEX_M == 4U) || (__CORTEX_M == 7U))
#define SDK_ISR_EXIT_BARRIER __DSB()
#else
#define SDK_ISR_EXIT_BARRIER
#endif

void CAN0_DriverIRQHandler(void)
{
   assert(NULL != s_flexcanHandle[0]);

   s_flexcanIsr(CAN0, s_flexcanHandle[0]);
   SDK_ISR_EXIT_BARRIER;
}

 

0 项奖励
回复
1 回复

586 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Due to limited resources, we are currently unable to support customers writing from generic email accounts such as gmail.com or qq.com or similar. Please ensure that you use your company email address when communicating with NXP so that we can prioritize your question accordingly. Thank you for your understanding.

 

Regards,

Daniel

0 项奖励
回复