编程时Keil中常见的错误 联系客服

发布时间 : 星期日 文章编程时Keil中常见的错误更新完毕开始阅读787529c00c22590102029d7c

If(px==pc)++c;/*warning 259*/ }

*ERROR 260:pointer truncation

指针转换时部分偏移量被截断,此时指针常量(如char xdata)转为一个具有较小偏移区的 指针(如char idata)

*ERROR 261:bit in reentrant function

重入函数不能包含位变量,因为位变量不能存于重入栈,而只能位于MCS51CPU的可位寻 址存储区中如:

Void test () reentrant { bit b0;/*illegal*/ Static bit b1;/*legal*/ }

*ERROR 262:’using/disable’: function returns bit

使用属性using选择寄存器组的函数或使用关中断(#pragma disable)功能的函数不能返回 bit类型。如:

Bit test ()using 3/*error 261*/ { bit b0; return(b0); }

*ERROR 263:save-stack overflow/underflow

“#pragama save”最大嵌套级为8 级。Save 和restore 指令按FIFO 原则工作 *ERROR 264:intrinsic:declaration/ activation error 内部参数定义不正确

*ERROR 265:recursive call to non_reentrant function

发现非重入函数被递归调用。直接递归用生成代码可有效查出,间接递归调用由L51 发现 L51 连接定位器使用错误提示 1 警告

警告并不终止L51 的执行。这时产生的程序模块由程序员自己斟酌使用还是不使用。但是 此时的列表文件和屏幕显示可能非常有用。 2 错误

错误并不终止L51 的执行。这时产生的模块是不能使用的。但是此时的列表文件和屏幕显 示可能非常有用。 3 致命错误

致命错误发生时立即终止L51 的执行。 1警告

*WARNING1:UNSOLVED EXTERNAL SYMBOLS

SYMBOLS: external_name MODULE: filename (modulename)

指定模块的外部符号在PUBLIC符号表中找不到 *WARNING2:REFERENCE MADE TO UNSOVED EXTERNAL SYMBOLS: external_name MODULE: filename (modulename) ADDRESS:code_address

访问了未能匹配的外部符号code地址 *WARNING4:DATA SPACE MEMORY OVERLAP FROM:byte,bit,address TO: byte,bit,address 数据空间指定范围出现覆盖

*WARNING5:CODE SPACE MEMORY OVERLAP FROM:byte,bit,address TO: byte,bit,address 程序空间指定范围出现覆盖

*WARNING6:XDATA SPACE MEMORY OVERLAP FROM:byte,bit,address TO: byte,bit,address

外部数据空间指定范围出现覆盖 *WARNING7:MODULE NAME NOT UNIQUE MODULE:filename(modulename) 模块名重名。模块未处理

*WARNING8:MODULE NAME EXPLICITLY REQUESTED FROMANOTHER FILE MODULE:filename(modulename) 其他文件指名要求本模块名 *WARNING9:EMPTYABSOLUTE SEGMENT MODULE:filename(modulename)

本模块包含空的绝对段,因未定位,它可能在不通知的情况下随时被覆盖 *WARNING10:CANNOT DETERMINE ROOT SEGMENT

L51 对输入文件要求分辨是C51还是PL/M文件,然后进行流程分析,在无法确定的时候, 发出本警告。它发生在主程序被汇编调用的时候,需要程序员用OVERLAP 特殊控制选项 进行干预

*WARNING11:CANNOT FIND SEGMENT OR FUNCTION NAME NAME:overlap_control_name

在目标模块中找不到OVERLAP控制选项中规定的段或者函数间调用

*WARNING12:NO REFERENCE BETWEEN SEGMENTS SEGMENT1:segment_name SEGMENT2:segment_name

试图用OVERLAP控制选项删除本来不存在的段间访问或者函数间调用 *WARNING13:RECURSIVE CALL TO SEGMENT SEGMENT:segment_name CALLER:segment_name

CALLER段递归调用SEGMENT段。PL/M51和C51的非重入函数不允许递归调用 *WARNING14:IMCOMPIABLE MEMORYMODEL MODULE:filename(modulename) MODEL:memory_model

指定模块试图与以前不同的存储模式编译。 *WARNING15:MULTICALL TO SEGMENT SEGMENT:segment_name CALLER1:segment_name CALLER2:segment_name

两个函数调用同一个函数(如主函数和中断函数),参数和局部变量将被覆盖 *WARNING15:UNCALLED SEGMENT,IGNORED FOR OVERLAP PROCESS SEGMENT:segment_name

所给的段未被调用,已被排除在覆盖过程之外。 L51错误

*ERROR101: SEGMENT COMBINATION ERROR SEGMENT:segment_name MODULE:filename(modulename)

由于连接错误所给段未能连入类型总段,并被忽略 *ERROR102:EXTERN ATTRIBUTE MISMATCH SYMBOL:external_name MODULE:filename(modulename) 所给外部符号名属性错,并被忽略

*ERROR103:EXTERN ATTRIBUTE DO NOTMATCH PUBLIC SYMBOL:public_name

MODULE:filename(modulename)

所给外部符号名属性与公用符号名不匹配,并被忽略 *ERROR104:MUTIPULIC DEFINITION SYMBOL:pulic_name

MODULE:filename(modulename)

所给公用符号重名

*ERROR105:PUBLIC REFERS TO IGNORED SEGMENT SYMBOL:public_name

MODULE:filename(modulename) 所给外部符号名属性错,并被忽略 *ERROR106: SEGMENT OVERFLOW SEGMENT:segment_name 所给段长超过64,未处理

*ERROR107:ADDRESS SPACE OVERLAP SPACE:space_name SEGMENT:segment_name

由于存储空间不够,所给类型总段未能装入,已被忽略 *ERROR108:SEGMENT IN LOCATING CONTROL CANNOTALLOCATED SEGMENT:segment_name

命令行定位控制中的段由于属性问题未能分配 *ERROR109:EMPTY RELOCATABLE SEGMENT SEGMENT:segment_name

可在定位类型总段长度为零,未定位 *ERROR110:CANNOT FIND SEGMENT SEGMENT:segment_name

命令行所给的段在输入模块中未找到,被忽略

*ERROR111:SPECIFIED BITADDRESS NOT ON BYTE MEMORY SEGMENT:segment_name

位地址不在字界上,位段被忽略

*ERROR112:SEGMENT TYPE NOT LEGAL FOR COMMAND SEGMENT:segment_name

命令行所给的段类型非法,被忽略 *ERROR114:SEGMENT DOES NOT FIT SPACE:space_name SEGMENT:segment_name BASE:base_address LENGTH: segment_length

由于所给段的长度或者基地址未定位,故被忽略

*ERROR115:INPAGE SEGMENT IS GREATER THAN 256 BYTES SEGMENT:segment_name

所给INPAGE 属性的段长于256字节未能连入类型总段,并被忽略