MPLAB X 编译常见问题

问题一:

non-reentrant function "_xxxxx_" appears in multiple call graphs and has been duplicated by the compiler

出现这样的提示,大多情况下是在其它程序中与中断程序中同时使用了该函数,询问有没有做好安全防范,检查完善可忽略。

关于除法运算

在中断程序中,最好不要使用除法运算符 “/”, 用于 char 以上数据类型的除法运算,不然也会出现 non-reentrant function “___lwdiv” appears in multiple call graphs and has been duplicated by the compiler 提示。

 

关于浮点数运算

在 XC8 编译器中,尽量少用浮点数运算,那样的话会占用超高程序存储。因为对于没有硬件浮点数单元(FPU)的 MCU 来说,浮点运算只能靠软件实现,运算稍大一点的数据,会非常对耗时,所以要考虑到性能损失。