Keil c51调试有关问题总结
1.
出现warning C182 : pointer to different objects.
re:
A pointer was assigned the address of a different type.
2.
出现warning L16 : uncalled segment, ignored for overlay proess segment:.
re:
函数未被其它函数调用 也会占用程序记忆体空间。
3.
出现ERROR : Target DLL has been cancelled Debugger aborted.
re:
这是硬件仿真,如果不带仿真器就会出现这样的问题。
4.
出现warning L15: MULTIPLE CALL TO SEGMENT.
re:
一.用reentrant使函数重入
关于reentrant的说明:
1)重入函数不能传递bit类型的参数和变量;
2)重入函数建立的是模拟堆栈区,所以不使用一般函数位于存储模式默认空间的可覆盖式堆栈,而是在同一空间从顶端另行分配一个非覆盖式的重入堆栈。
small 默认空间是 data;
compact 默认空间是 pdata;
largr 默认空间是 xdata;
3)由于要保存参数和局部变量,所以会消耗很大的栈空间;尽量少用这种模式;
4)在同一程序中可以定义和使用不同存储器模式的重入函数,任意模式的重入函数不能调用不同存储器模式的重入函数,但可以调用普通函数。
5)实际参数可以传递给间接调用的重入函数。无重入属性的间接调用函数不能包含调用参数。
二.如果空间多的话,可以定义两个同功能的函数,分别在中断和中断外调用。
5.
出现warning L1: UNRESOLVED EXTERNAL SYMBOL.
warning L2: REFFERENCE MADE TO UNRESOLVED EXTERNAL.
re:
由于你使用了某个函数但这个函数没有被定义,或代码被define限制没有参与编译。