个人在移植freemodbus的时候, 按照下面来实现了临界段函数:


#define ENTER_CRITICAL_SECTION __disable_irq();

#define EXIT_CRITICAL_SECTION __enable_irq();


但是发现EXIT_CRITICAL_SECTION方法调用后, 出现了返回的PC指针不对, 而且出现了修改其他变量的值. 

请问一下该如何正确实现呢?