keil 错误Word下载.docx
- 文档编号:19674895
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:27
- 大小:29.77KB
keil 错误Word下载.docx
《keil 错误Word下载.docx》由会员分享,可在线阅读,更多相关《keil 错误Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
*FILEDOESNOTEXIST
FILE行定的文本文件名未发现。
*CAN’TCREATFILE
FILE行定义的文件不能被创建。
*SOURCEMUSTCOMEFROMADISK_FILE
源文件和头文件必须存在于硬盘或软盘上。
控制台、CON、CI或类似设备不允许作为输入
文件。
*MORETHAN256SEGMENTS/PUBLICS/EXTERNALS
受OMF_51的历史限制,一个源程序不能超过256个各种函数的类型段,256个全局变量,
256个公共定义或外部引用名。
不使用为变量可以减少使用的段数。
使用static存储类型说
明符可减少全局变量的使用数目。
合理调整定义性说明的位置可减少外部引用名的使用数
目。
*FILEWRITEERROR
当向list、prelist、work或object文件中写内容时,由于空间不够而发生错误。
*NON_NULLARGUMENTEXPECTED
所选的控制参数需要一个括号内的变量,如一个文件夹或一个数。
*“(”AFTERCONTROLEXPECTED
变量的左括号丢失。
*“)”AFTERPARAMETEREXPECTED
变量的右括号丢失。
*RESPECIFIEDORCONFLICTINGCONTROL
所选的控制参数与前面发生冲突或重复,例如CODE和NOCOND
*BADDECIMALNUMBER
控制参数的数字含有非法数,需要使用十进制数。
*OUTOFRANGEDECIMALNUMBER
控制参数的数字越界,例如OPTIMIZE的参量为0-5。
*IDENTIFIEREXPECTED
控制参数DEFINE需要一个标识符做参量,与C语言的规则相同。
*PARSESTACKOVERFLOW
分析栈溢出。
可能是源程序包含特别复杂的表达式,或功能块嵌套数超过15。
*PREPOCESSOR:
MACROTONESTED
宏扩展期间,预处理器的栈耗用太大。
表明宏嵌套太多,或有递归宏定义。
LINETOOLONG(510)
宏扩展后行超过510个字符。
*CAN’THAVEGENERALCONTROLININVOCATIONLINE
一般控制(如EJECT)不能是命令行的一部分,应将它们放入源文件“pragma”预处理行
中。
D.2语法及语义错误
D.2.1错误格式
这类错误在列表文件中产生如下格式的信息:
***ERROR<
number>
INLINE<
line>
OF<
file>
:
errormessage
***WARING<
warningmessage
<
表示错误行;
表示源文件或头文件中与错误或警告相关的行;
指明了错误所在的源文件或头文件;
D.2.2错误信息及可能发生的原因
*ERROR100:
unprintablecharacter0x?
?
skipped
源文件中发现非法字符(注意,注解内的字符不做检查)。
*ERROR101:
unclosedstring
串未用引号结尾。
*ERROR102:
stringtoolong
串不得超过511个字符。
为了定义更长的串,用户必须使用续行符‘\’逻辑的继续该串,
在词汇分析时遇到以该符号结尾的行会与下行连接起来。
*ERROR103:
invalidcharacterconstant
试图再声明一个已定义的宏,已存在的宏可以用#undef指令删除。
预定义的宏不能删除。
*ERROR104:
identifierexpected
预处理器指令期望产生一个标示符,如ifdef<
name>
。
*ERROR105:
unclosedcomment
当注解无结束界定符(*/)时产生此错误。
*EROOR106:
unbalanced#if-endifcontrols
endif的数量与if或ifdef的数量不匹配。
*ERROR107:
includefilenestingexceeds9
include指令后的文件名无效或丢失
*ERROR108:
expectedstring,如#error“string”
预处理器指令期望一个串变量。
*ERROR109:
usererrortext>
由#error伪指令引入的错误信息以错误信号形式显示。
*ERROR110:
missingdirective
预处理行#后缺少伪指令。
*ERROR111:
unknowndirective
预处理行#后不是伪指令。
*ERROR112:
misplaced‘elif’
*ERROR113:
misplaced‘else’
*ERROR114:
misplaced‘endif’
指令elif/else/endif只有在if、ifdef、ifndef指令内才是合法的。
*ERROR117:
badintegerexpression
if/elif指令的数值表达式有语法错误。
*ERROR118:
missing’(‘aftermacroidentifier
宏调用中实参表的左括号丢失
*ERROR119:
reuseofmacroformalparameter
宏定义形参名重复使用
*ERROR120:
‘C’unexpectedinformallist
形参表中不允许有字符‘c’,应用逗号代替
*ERROR121:
missing‘)’afteractualparameter
宏调用实参表的右括号丢失
*ERROR122:
illegalmacroinvocation
宏调用的实参表与宏定义中的形参表不同
*ERROR123:
missingmacronameafter‘define’
#define伪指令后缺预定义的宏
*ERROR124:
expectedmacroformalparameter
宏定义要求形参名
*ERROR125:
declaratertoocomplex
说明过于复杂
*ERROR126:
type-stackunderflow
对象的声明至多只能包含20个类型修饰符(【】,*,(),)错误126经常在错误125之前,
两者一起发生。
*ERROR127:
invalidstorageclass
对象用无效的存储类所说明。
当在函数外用auto/register存储时会发生这种情况。
*ERROR128:
memoryspace:
illegalmemoryspace‘memoryspace’used
函数参数的存储类由存储模式(SMALLLARGECOMPACT)决定用户不能改变,使用不同
于存储模式的自动变量应该为静态的存储类
*ERROR129:
missing’;
’before‘token’
该错误表示分号丢失,通常该错误会引发一连串的错误,引发的这些错误无关紧要。
因为缺
少分号后编译器不能做正确的语法分析
*ERROR130:
valueoutofrange
using或interrupt指令后参数越限。
using用的寄存器组号位0-3,interrupt需要0-15的中
断号
*ERROR131:
duplicatefunction-parameter
函数中形参名重复,形参名应彼此不同
*ERROR132:
notinformalparameterlist
函数内参数声明使用的名字未出现在参数表中
*ERROR133:
charfunction(v0,v1,v2)
Char*v0,*v1,*v5;
/*’v5’在形参中未出现
*ERROR134:
xdata/idata/pdata/dataonfunctionnotpermitted
函数总是驻留于0x5xxxx的code存储区,不能位于xdata/idata/pdata/data空间
*ERROR135:
badstorageclassforbit
位变量的定义可以接受static或extern的存储类,用REGIESTER和ALIEN都是非法的
*ERROR136:
‘void’onvariable
‘void’类型只允许作为函数的返回类型或与指针类型合用(void*)
*ERROR137:
illegalparametertype:
’function’
函数参数的类型不能是函数,然而函数指针可以作为参数
*ERROR138:
interrupt()maynotreceiveorreturnvalue(s)
中断函数既不能有参数又不能有返回值
*ERROR139:
illegaluseof‘alien’
关键字alien将函数定义为PL/M51规定的过程与函数结构。
这意味着C函数中有参数的缩
记符号(即funct(…);
)时是不能用alien的
*ERROR140:
bitinillegalmemory-space
位变量的定义可包含修饰符DATA,如果无修饰符则假定为DATA。
因为位变量始终位于
0x4xxx的内部数据存储器中,当试图采用其他存储空间就会产生这个错误。
*ERROR141:
NEAR<
token>
expected<
编译器所见的单词是错误的。
期望正确的单词
*ERROR142:
invalidbaseaddress
Sfr说明中的基址有错。
有效基址为0x80-0xff。
如果声明采用base^pos形式,则基址是8的
整数倍
*ERROR143:
invalidabsolutebitposition
Sbit说明中位地址必须在0x80-0xff之间
*ERROR144:
base^pos:
invalidbitposition
Sbit说明中位pos必须在0~7之间
*ERROR145:
undeclaredsfr
Sfr未说明
*ERROR146:
invalidsfr
绝对位地址说明(base^pos)包含无效的基地址。
这个基地址必须与sfr名相对应
*ERROR147:
objecttoolarge
对象不能超过65536(64k)字节
*ERROR148:
fieldnotpermittedinunion
联合不能包含位成员,这个限制是由8051结构决定的。
*ERROR149:
functionmemberinstruct/union
结构或者联合不能包含函数类型的成员。
但是指向函数的指针是允许的
*ERROR150:
bitmemberinstruct/union
结构或者联合不能包含位类型的成员,这个限制是由8051结构决定的
*ERROR151:
selfrelativestruct/union
结构或者联合不能包含自身
*ERROR152:
bitfieldtypetoosmallfornumberofbits
位域声明中指定的位数超过所给原型中位的数量
*ERROR153:
namedbit-fieldcannothave0width
命名的域宽度为0错误,只有未命名的位域允许是0宽度
*ERROR154:
protofield
无指向位域指针的类型
*ERROR155:
char/intrequiredforfields
位域基类型要求char或int类型,unsignedchar或unsignedint也有效
*ERROR156:
alienpermittedonfunctiononly
Alien只能用于函数
*ERROR157:
var_parmsonalienfunction
有变参数的函数不能用alien,因为PL/M51函数只能用固定数量的参数
*ERROR158:
functioncontainsunnamedparameter
函数定义的参数表中包含无名参数。
无名参数只允许用于函数的原型中
*ERROR159:
typefollowsvoid
函数原型声明中可含一个空的参数表f(void)。
Void后不能再用其他类型定义
*ERROR160:
voidinvalid
Void类型只能与指针合用或表明函数没有返回值
*ERROR161:
formalparameterignored
函数内的外部函数引用声明使用了无类型的参数表。
例如“extern(a,b,c);
”要求形参表
*ERROR162:
函数内参数名重复
*ERROR163:
unknownarraysize
一般的不管是一维数组还是多维数组或外部数组,都需要指定数组的大小,这个大小是由编
译器的初始化时计算,这个错误表明试图为一个未定维的数组使用sizeof运算符,会哦着一
个多维数组的附加元素未定义。
*ERROR164:
ptrtonull
这一个错误通常是由前一个错误造成的
*ERROR165:
ptrtobit
指向位的指针不是合法的类型
*ERROR166:
arrayoffunction
数组不能包含函数,但可能包含指向函数的指针。
*ERROR167:
arrayoffields
位域不能安排为数组
*ERROR168:
arrayofbit
数组没有位类型
*ERROR169:
functionreturnsfunction
函数不能返回函数,但可以返回一个指向函数的指针
*ERROR170:
functionreturnsarray
函数不能返回数组,但可返回指向数组的指针
*ERROR171:
missingenclosingswith
Break/continue语句只能出现在for,while,dowhile或switch语句中间。
*ERROR172:
Case语句只能用在switch语句中
*ERROR173:
missingreturn-expression
返回类型不是integer的函数必须包含一条代表达式的return语句。
由于要与老版本兼容,
编译器对返回整形值的函数不做检查
*ERROR174:
return-expressiononvoid-function
Void函数不能返回值,因此不能包含带表达式return的语句
*ERROR175:
duplicatecasevalue
每个case语句必须包含一个常量表达式做其变量,这个值不能在switch语句的各级中出现
多次
*ERROR176:
morethanonedefault
Switch语句中不能包含多于一个的default语句
*ERROR177:
differentstruct/union
赋值或参数传递中使用了结构/联合的不同类型
*ERROR178:
struct/unioncomparisonillegal
根据ANSIC,两个结构或联合的比较是不允许的
*ERROR179:
cannot/castfrom/tovoid-type
将void类型转化为其他类型数据或将其他类型转化为void类型都是非法的
*ERROR180:
cannotcastto’function’
转化为function是非法的,使用函数指针指向不同的函数
*ERROR181:
incompatibleoperand
在所给的运算符中至少有一个操作符类型是无效的
*ERROR182:
pointtodifferentobject
报告指针使用不一致
*ERROR183:
unmodifiablevalue
预修改的对象位于CODE存储区,因而不能修改
*ERROR184:
sizeof:
illegaloperand
Sizeof运算符不能决定函数或位域大小
*ERROR185:
differentmemoryspace
对象说明的存储空间与前面的不一致
*ERROR186:
invaliddereference
这条错误信息可能由编译器内部问题产生的
*ERROR187:
notanlvalue
所需参量必须是可变对象的地址
*ERROR188:
unknownobjectsize
无法计算对象的大小,因为缺少数组的维数或因为通过void指针的间接访问
*ERROR189:
‘&
’onbit/sfrillegal
地址操作符‘&
’不允许用于位对象或sfr
*ERROR190:
’&
’:
地质部是可变的对象,不能作为左值
*ERROR191:
’onconstant
试图为所列类型常数建立指针
*ERROR192:
’onarray/function
地址操作符&
不允许用于数组或函数,函数和数组本身都代表了地址
*ERROR193:
illegalop-type(s)
illegaladd/subonptr
illegaloperationonbit(s)
badoperandtype
当一个表达式使用给定运算符的非法操作类型时就会出现该错误,使用个定运算符的非法操
作类型的无效的表达式,例如bit+bit,ptr+ptr,或ptr*<
any>
错误信息包括引起错误的运算符。
下列运算可使用位操作符
赋值(=)
OR/复合OR(|,|=)
AND/复合AND(&
&
=)
XOR/复合XOR(^,^=)
位或常数的安位比较(==,!
取反(~)
*ERROR194:
’*’indirectiontoobjectofunknownsize
间接操作符*不能用于void指针(void*),因为指针所指的对象的大小时未知的
*ERROR195:
’*’illegalindirection
间接操作符*不能用于非指针变量
*ERROR196:
mspaceprobablyinvalid
产生此警告是因为某些常数值赋给指针并且常数没有形成一个有效的指针值,有效的指针常
数类型为long/unsignedlong。
编译器对指针对象采用24bit(3字节),低16位表示偏移,高
8位表示存储类的选择,在低字节中,值从1到5表明了xdata/pdata/idata/data/和code的存
储类
*ERROR197:
illegalpointerassignment
试图将一个非法变量赋给指针,只有另一个指针或指针变量可以赋给指针
*ERROR198:
sizeofreturnszero
求某些对象长度得到0,如果对象是外部的或一个数组中并非所有维的大小都是已知时得到
0,这时候该值可能是错的。
*ERROR199:
leftsizeof’->
’requiresstruct/unionpointer
->
操作符的左边变量必须是结构或变量
*ERROR200:
leftsizeof‘.’requiresstruct/union
操作符的左边变量必须是结构/联合
*ERROR201:
undefinedstruct/uniontag
所给的结构/联合标记名是未知的
*ERROR202:
undefinedidentifier
所给的标示符未定义
*ERROR203:
badstorageclass(nameref)
该错误表示编译器的内部有问题
*ERROR204:
undefinedmember
所给的结构/联合成员名未定义
*ERROR205:
cannotcallaninterruptfunction
中断函数不能像普通函数那样调用,因为这种函数的头端和尾端是为中断特殊编码的
*ERROR206:
missingfunction-prototype
调用的函数缺少原型说明
*ERROR207:
declaredwith‘void’parameterlist
用void参数说明的函数不接受调用者传来的参数
*ERROR208:
toomanyactualparameter
函数调用包含了多余的实参
*ERROR209:
toofewactualparameter
函数调用时传递的实参过少
*ERROR210:
toomanynestedcalls
超过了10个函数嵌套调用的极限
*ERROR211:
callnottoafunction
函数调用时没有函数的地址或未对指向函数的指针赋值
*ERROR212:
indirectcallwithparameter
由于参数传递方法的限制,通过指针的间接函数调用不能直接作为实参。
这种参数传递方法
要求被调用的函数名已知,因为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- keil 错误