Embedded micro C中不允许重入

Embedded micro C中不允许重入,embedded,pic,Embedded,Pic,在使用micro C编程pic16f77a微控制器时,我遇到了一个奇怪的错误 1- 64 365 Reentrancy is not allowed: function 'I2C1_Repeated_Start' called from two threads __Lib_I2C_c34.c 2- 77 365 Reentrancy is not allowed: function 'SPI1_Write' called from two threads __Lib_SPI_c345.c 我没

在使用micro C编程pic16f77a微控制器时,我遇到了一个奇怪的错误

1- 64 365 Reentrancy is not allowed: function 'I2C1_Repeated_Start' called from two threads __Lib_I2C_c34.c
2- 77 365 Reentrancy is not allowed: function 'SPI1_Write' called from two threads __Lib_SPI_c345.c

我没有在代码中使用这些函数。我只是写了一个依赖于timer0的代码,那么问题出在哪里呢?

不确定micro C,但在xc8中,这与编译堆栈和“普通”堆栈有关。不能使用已编译的堆栈重新进入。在这种情况下,Xc8再次生成警告,并创建函数的第二个副本


编辑(添加):错误消息中的函数名很可能来自MCC。

发布整个构建日志,包括命令调用,以便我们可以看到您如何调用编译器和确切的诊断信息。对日志使用代码标记以保留格式和换行符。我猜您正在ISR和主循环中调用相同的函数。您是否使用库的任何I²C和SPI函数?@Mike我没有调用其中的ant,也没有包括I2C或SPI库。@thebusybee否,我并不抱歉,但我不知道什么是MCC,我也不知道在我不使用这些函数或库的情况下,这个错误是如何产生的。然而,这并不是真正的问题。问题是链接他不是有意使用的代码。