电流电压检测项目调试【持续更新】

开发环境:KEIL 5

一、调试过程

1.***错误L118:参考错误外部

原因:uchar keyvalue[]={0,0,0,0,0};在main.c中定义了,在key.h中声明导致的。

解决方法:改成在key.c中定义。

2.*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL

SYMBOL: TIME
MODULE: .\Objects\action.obj (ACTION)
ADDRESS: 0D9DH

原因:time在main.c中定义,在action.c中使用,在action.h中声明。

解决方法:在action.c中使用。在action外部声明。

3.DRIVE\MAIN.C(96): error C214: illegal pointer conversion(非法指针转换)

原因:void sendc(unsigned char * pd);形参为指针内型,print为字符串数组

   sendc(print[0]);错误

解决方法:改成sendc(print);

4.***错误L107:地址空间溢出

原因:一般 KEIL在small 模式。small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为你程序所有,寄存器 R0-R7必须映射到低RAM,要占去 8 个字节,如果使用寄存组切换,占用的更多。所以可以使用 data 区最大为 120 字节,超出 120 个字节则必须用 idata 显示的指定为间接寻址,另外堆栈至少要占用一个字节,所以你最多能使用 127 上字节。

解决方法:

猜你喜欢

转载自www.cnblogs.com/yiyezhiqiu-/p/12078170.html