Debugging 函数在中断中重入

Debugging 函数在中断中重入,debugging,interrupt,reentrancy,Debugging,Interrupt,Reentrancy,我有一个将调试输出打印到UART的函数。如果此函数工作时发生中断,则中断中断前一个调试文本的调试输出。所以我有这样的想法: “03:32:46加载数据fr03:32:46按钮按下”。 我考虑一些解决办法。我更喜欢不禁用中断,而不是在中断其他调试打印功能时禁用调试输出。 解决此问题的好方法是什么?基本上不要在ISR中打印语句,因为这会影响性能。如果您想知道是否调用了ISR(例如通过按下按钮),请通过设置输出引脚和切换连接的LED来尝试 使用ISR设置标志或执行简短的计算。实际上,您不应该在ISR中

我有一个将调试输出打印到UART的函数。如果此函数工作时发生中断,则中断中断前一个调试文本的调试输出。所以我有这样的想法: “03:32:46加载数据fr03:32:46按钮按下”。 我考虑一些解决办法。我更喜欢不禁用中断,而不是在中断其他调试打印功能时禁用调试输出。
解决此问题的好方法是什么?

基本上不要在ISR中打印语句,因为这会影响性能。如果您想知道是否调用了ISR(例如通过按下按钮),请通过设置输出引脚和切换连接的LED来尝试


使用ISR设置标志或执行简短的计算。

实际上,您不应该在ISR中打印语句之类的东西,因为它速度慢,可能不太灵活。这是一个很好的建议。但我有一个在ISR方面做了大量工作的系统。它必须重新设计。但是现在我真的不知道怎么做。