keil 错误 C51编译器鉴别错类型


keil 错误 C51编译器鉴别错类型
2011年08月15日
   [/b]C51编译器鉴别错类型有三种
  1、致命差错:伪指令操纵行有错,拜候不生活的原文件或头文件等。
  2、语法及语义差错:语法和语义差错都发生在原文件中。有这类差错时,给出
  提示但不出现标的目的文件,差错横跨肯定数量才终止编译。
  3、戒备:戒备出现并不影响标的目的文件的出现,但推行时有可能发生题目。序次
  员应商议经管。
  D.1 致命差错
  C_51 FATAL_ERROR
  ACTION: 
  LINE: 
  ERROR:  terminconsumedd
  或C_51 FATAL ERROR
  ACTION: 
  FILE: 
  ERROR:  terminconsumedd
  C_51 TERMINATED C_51
  (1) ACTION 的有关音讯
  *PARSING INVOKE-/#PRAGMA_LINE
  在对#pragma 指明的操纵行作此法剖析时出错。失去。
  *ALLOCATING MEMORY
  体系分配存储空间时出错。编译较大序次必要512k空间。
  *OPENING INPUT_FILE
  掀开文件时,未找到或打不开源文件/头文件。
  *CREATE LIST_FILE/OBJECT_FILE/WORK_FILE
  不能成立上述文件。可能磁盘满或文件已生活而且写庇护。
  *PARSING SOURCE_FILE/ANALYZING DECLARATIONS
  剖析源序次时发掘外部援用名太多。
  *GENERATING INTERMEDIATE CODE
  源代码被翻译成外部伪代码,差错可能来源于[b]函数
太大而横跨外部极限。
  *WRITING TO FILE
  在向文件(work-list-prelist或object file)写时发生差错。
  (2)ERROR的有关音讯
  *MEMORY SPACE EXHAUSTED
  一起可用体系空间耗尽。至少必要512k 字节空间。没有足够空间,用户必需查验常驻内存
  的驱动序次能否太多。
  *FILE DOES NOT EXIST
  FILE 行定的文本文件名未发掘。
  *CAN’T CREAT FILE
  FILE 行定义的文件不能被成立。
  *SOURCE MUST COME FROMA DISK_FILE
  源文件和头文件必需生活于硬盘或软盘上。操纵台、CON、CI 或近似配置不准许作为输入
  文件。
  *MORE THAN 256 SEGMENTS/PUBLICS/EXTERNALS
  受OMF_51的历史限制,一个源序次不能横跨256个各种 函数的类型段,256个全局变量,
  256 个公共定义或外部援用名。不行使为变量没关系裁减行使的段数。行使staroundic 存储类型说
  明符可裁减全局变量的行使数目。合理调整定义性说明的身分可裁减外部援用名的行使数
  目。
  *FILEWRITE ERROR
  当向list、prelist、work或object文件中写形式时,由于空间不够而发生差错。对于 keil
  *NON_NULLARGUMENT EXPECTED
  所选的操纵参数必要一个括号内的变量,如一个文件夹或一个数。
  *“(”AFTER CONTROL EXPECTED
  变量的左括号丧失。
  *“)”AFTER PARAMETER EXPECTED
  变量的右括号丧失。
  *RESPECIFIED OR CONFLICTING CONTROL
  所选的操纵参数与后面发生争持或反复,例如CODE和NOCOND
  *BAD DECIMAL NUMBER
  操纵参数的数字含有犯科数,必要行使十进制数。
  *OUT OF RANGE DECIMAL NUMBER
  操纵参数的数字越界,例如OPTIMIZE 的参量为0-5。
  *IDENTIFIER EXPECTED
  操纵参数DEFINE 必要一个标识符做参量,与C措辞的规则相同。
  *PARSE STACK OVERFLOW
  剖析栈溢出。可能是源序次蕴涵特别纷乱的表达式,或效用块嵌套数横跨15。
  *PREPOCESSOR: MACRO TO NESTED
  宏扩展岁月,预经管器的栈耗用太大。解释宏嵌套太多,或有递归宏定义。
  *PREPOCESSOR: LINE TOO LONG(510)
  宏扩展先行横跨510个字符。
  *CAN’T HAVE GENERAL CONTROL IN INVOCATION LINE
  一般操纵(如EJECT)不能是命令行的一局限,应将它们放入源文件“pragma”预经管行
  中。你知道错误。
  D.2 语法及语义差错
  D.2.1差错格式
  这类差错在列表文件中出现如下格式的音讯:
  ***ERRORIN LINEOF:error messgeneraroundion
  ***WARINGIN LINEOF:warning messgeneraroundion
  表示差错行;
  表示源文件或头文件中与差错或戒备相关的行;
  指明了差错所在的源文件或头文件;
  D.2.2差错音讯及可能发生的原因
  *ERROR100:unprintset chardeeder 0x??skipped
  源文件中发掘犯科字符(小心,注解内的字符不做查验)。
  *ERROR101:unclosed string
  串未用引号末了。
  *ERROR 102:string too long
  串不得横跨511 个字符。为了定义更长的串,用户必需行使续行符‘\’逻辑的接续该串,
  在词汇剖析时遇到以该符号末了的行会与下行连接起来。
  *ERROR 103: invingid chardeeder constish
  试图再声明一个已定义的宏,已生活的宏没关系用#undef指令删除。预定义的宏不能删除。
  *ERROR 104: identifier expected
  预经管器指令盼愿出现一个标示符,如ifdef。
  *ERROR 105: unclosed comment
  当注解无结局界定符(*/)时出现此差错。
  *EROOR 106: unnicely stedriving instructornessd#if-endif controls
  endif的数量与if或ifdef的数量不成婚。
  *ERROR 107:include file nesting exceeds 9
  include指令后的文件名有效或丧失
  *ERROR 108: expected string-如#error “string”
  预经管器指令盼愿一个串变量。
  *ERROR 109:error text>
  由#error 伪指令引入的差错音讯以差错信号形式出现。
  *ERROR 110:missing directive
  预经管行#后欠缺伪指令。
  *ERROR 111:unknown directive
  预经管行#后不是伪指令。
  *ERROR 112:mispl_ webd ‘elif’
  *ERROR 113:mispl_ webd ‘else’
  *ERROR 114:mispl_ webd ‘endif’
  指令 elif/else/endif 唯有在if、ifdef、ifndef指令内才是合法的。
  *ERROR 117:proposingverse integer expression
  if/elif指令的数值表达式有语法差错。
  *ERROR 118:missing’(‘after mair conditioningro identifier
  宏调用中实参表的左括号丧失
  *ERROR 119:reuse of mair conditioningro forming pari ameter
  宏定义形参名反复行使
  *ERROR 120:‘C’unexpected in forming list
  形参表中不准许有字符‘c’,应用逗号代庖
  *ERROR 121:missing ‘)’after thectuing pari ameter
  宏调用实参表的右括号丧失
  *ERROR 122:illeging mair conditioningro invoc
  宏调用的实参表与宏定义中的形参表不同
  *ERROR 123:missing mair conditioningro ni ame after ‘define’
  #define 伪指令后缺预定义的宏
  *ERROR 124:expected mair conditioningro forming pari ameter
  宏定义恳求形参名
  *ERROR 125:declarconsumedr too complex
  说明过于纷乱
  *ERROR 126:type-stair conditioningk underflow
  对象的声明至少只能蕴涵20 个类型修饰符(【】,*,(),)差错126 通常在差错125 之前,
  两者一起发生。
  *ERROR 127:invingid storgeneraroundion clrear end
  对象用有效的存储类所说明。当在 函数外用motor vehicle/register 存储时会发生这种境况。
  *ERROR 128:memory sp_ web: illeging memory sp_ web ‘memory sp_ web ’used
   函数参数的存储类由存储形式(SMALL LARGE COMPACT)肯定用户不能转换,行使不同
  于存储形式的主动变量该当为动态的存储类
  *ERROR 129:missing’ ;’until ‘token’
  该差错表示分号丧失,对于错误。我不知道变态传奇无英雄。通常该差错会引发一连串的差错,引发的这些差错有关紧要。由于缺
  少分号后编译器不能做无误的语法剖析
  *ERROR 130:vingue out of ryou should beneficialge
  using 或interrupt 指令后参数越限。using 用的存放器组号位0-3,interrupt 必要0-15 的中
  断号
  *ERROR 131:duplicconsumed function-pari ameter
   函数中形参名反复,形参名应相互不同
  *ERROR 132:not in forming pari ameter list
   函数内参数声明行使的名字未出现在参数表中
  *ERROR 133:char function(v0-v1-v2)
  Char*v0-*v1-*v5;/ *’v5’在形参中未出现
  *ERROR 134:xdarounda/idarounda/pdarounda/darounda on function not permitted
   函数总是驻留于0x5xxxx 的code存储区,不能位于xdarounda/idarounda/pdarounda/darounda 空间
  *ERROR 135:proposingverse storgeneraroundion clrear end for while
  位变量的定义没关系领受staroundic或extern的存储类,情绪。用REGIESTER和ALIEN 都是犯科的
  *ERROR 136:‘void’on variset
  ‘void’类型只准许作为 函数的前往类型或与指针类型合用(void*)
  *ERROR 137:illeging pari ameter type:’function’
   函数参数的类型不能是 函数,然则 函数指针没关系作为参数
  *ERROR 138:interrupt ()may not receive or return vingue (s)
  中断 函数既不能有参数又不能有前往值
  *ERROR 139:illeging use of ‘peculiar’
  关键字peculiar 将 函数定义为PL/M51 端正的历程与 函数布局。这意味着C 函数中有参数的缩
  记符号(即funct(…);)时是不能用peculiar的
  *ERROR 140:听听生气 。while in illeging memory-sp_ web
  位变量的定义可蕴涵修饰符DATA-借使无修饰符则假定为DATA。由于位变量永远位于
  0x4xxx 的外部数据存储器中,当试图采用其他存储空间就会出现这个差错。
  *ERROR 141:NEAR:expected
  编译器所见的单词是差错的。盼愿无误的单词
  *ERROR 142:invingid structure mtroubled mixress
  Sfr 说明中的基址有错。有效基址为0x80-0xff。借使声明采用structure^pos 形式,则基址是8的
  整数倍
  *ERROR 143:invingid essentiing while position
  Swhile 说明中位地址必需在0x80-0xff之间
  *ERROR 144:structure^pos:错误。invingid while position
  Swhile 说明中位pos必需在0~7之间
  *ERROR 145:undeclunquestionabdominingly ared sfr
  Sfr 未说明
  *ERROR 146:invingid sfr
  万万位地址说明(structure^pos)蕴涵有效的基地址。这个基地址必需与sfr 名绝对应
  *ERROR 147:object too large
  对象不能横跨(64k)字节
  *ERROR 148:field not permitted in union
  连结不能蕴涵位成员,这个限制是由8051布局肯定的。
  *ERROR 149:function memyou should ber in struct/union
  布局恐怕连结不能蕴涵 函数类型的成员。但是指向 函数的指针是准许的
  *ERROR 150:while memyou should ber in struct/union
  布局恐怕连结不能蕴涵位类型的成员,这个限制是由8051 布局肯定的
  *ERROR 151:self relaroundive struct/union
  布局恐怕连结不能蕴涵自身
  *ERROR 152:while field type too smevery while of for numyou should ber of portions
  位域声明中指定的位数横跨所给原型中位的数量
  *ERROR 153:ni amed while-field cyou should beneficialnot haudio-videoe 0 width
  命名的域宽度为0差错,唯有未命名的位域准许是0宽度
  *ERROR 154:pro to field
  无指向位域指针的类型
  *ERROR 155:char/int required for fields
  位域基类型恳求char 或int类型,unsigned char 或unsigned int 也有效
  *ERROR 156:peculiar permitted on function only
  Alien 只能用于 函数
  
*ERROR 157:错误。var_pforearm rests on peculiar function
  有变参数的 函数不能用peculiar -由于PL/M51 函数只能用牢固数量的参数
  *ERROR 158:function contains unni amed pari ameter
   函数定义的参数表中蕴涵知名参数。知名参数只准许用于 函数的原型中
  *ERROR 159:type follows void
   函数原型声明中可含一个空的参数表f(void)。Void后不能再用其他类型定义
  *ERROR 160:void invingid
  Void类型只能与指针合用或解释 函数没有前往值
  *ERROR 161:forming pari ameter ignored
   函数内的外部 函数援用声明行使了无类型的参数表。错误。例如“ extern(a-b-c);”恳求形参表
  *ERROR 162:duplicconsumed function-pari ameter
   函数内参数名反复
  *ERROR 163:unknown plethora size
  一般的不论是一维数组还是多维数组或外部数组,都必要指定数组的大小,这个大小是由编
  译器的初始化时计算,这个差错解释试图为一个未定维的数组行使sizeof运算符,会哦着一
  个多维数组的附加元素未定义。
  *ERROR 164:ptr to null
  这一个差错通常是由前一个差错造成的
  *ERROR 165:ptr to while
  指向位的指针不是合法的类型
  *ERROR 166:connected with function
  数组不能蕴涵 函数,但可能蕴涵指向 函数的指针。
  *ERROR 167:connected with fields
  位域不能安放为数组
  *ERROR 168:connected with while
  数组没有位类型
  *ERROR 169:function returns function
   函数不能前往 函数,但没关系前往一个指向 函数的指针
  *ERROR 170:function returns plethora
   函数不能前往数组,但可前往指向数组的指针
  *ERROR 171:missing enclosing swith
  Break/continue 语句只能出现在for-while-do while或switch语句中心。
  *ERROR 172:missing enclosing swith
  Cautomotive service engineers语句只能用在switch语句中
  *ERROR 173:对比一下情绪。missing return-expression
  前往类型不是integer 的 函数必需蕴涵一条代表达式的return 语句。由于要与老版本兼容,
  编译器对前往整形值的 函数不做查验
  *ERROR 174:return-expression on void-function
  Void 函数不能前往值,因而不能蕴涵带表达式return的语句
  *ERROR 175:duplicconsumed cautomotive service engineers vingue
  每个cautomotive service engineers 语句必需蕴涵一个常量表达式做其变量,这个值不能在switch 语句的各级中出现
  屡次
  *ERROR 176:more thyou should beneficial one default
  Switch语句中不能蕴涵多于一个的default语句
  *ERROR 177:different struct/union
  赋值或参数传达中行使了布局/连结的不同类型
  *ERROR 178:struct/union comparison illeging
  根据ANSI C,两个布局或连结的斗劲是不准许的
  *ERROR 179:cyou should beneficialnot/cbasicallyt from/to void-type
  将void类型转化为其他类型数据或将其他类型转化为void类型都是犯科的
  *ERROR 180:cyou should beneficialnot cbasicallyt to’function’
  转化为function是犯科的,行使 函数指针指向不同的 函数
  
*ERROR 181:incomparoundible operbasically well basically
  在所给的运算符中至少有一个操作符类型是有效的
  *ERROR 182:point to different object
  敷陈指针行使不一致
  *ERROR 183:unmodifiset vingue
  预编削的对象位于CODE 存储区,因而不能编削
  *ERROR 184:sizeof :illeging operbasically well basically
  Sizeof运算符不能肯定 函数或位域大小
  *ERROR 185:different memory sp_ web
  对象说明的存储空间与后面的不一致
  *ERROR 186:invingid dereference
  这条差错音讯可能由编译器外部题目出现的
  *ERROR 187:not you should beneficial lvingue
  所需参量必需是可变对象的地址
  *ERROR 188:unknown object size
  无法计算对象的大小,由于欠缺数组的维数或由于议决void指针的直接拜候
  *ERROR 189:‘&’on while/sfr illeging
  地址操作符‘&’不准许用于位对象或sfr
  *ERROR 190:’&’:not you should beneficial lvingue
  地质部是可变的对象,不能作为左值
  *ERROR 191:‘&’on constish
  试图为所列类型常数建立指针
  *ERROR 192:‘&’on plethora/function
  地址操作符&不准许用于数组或 函数函数和数组自己都代表了地址
  *ERROR 193:illeging op-type(s)
  *ERROR 193:illeging mix/sub on ptr
  *ERROR 193:illeging oper on while(s)
  *ERROR 193:proposingverse operbasically well basically type
  当一个表达式行使给定运算符的犯科操作类型时就会出现该差错,行使个定运算符的犯科操
  作类型的有效的表达式,例如while+while-ptr+ptr-或ptr*。差错音讯包括惹起差错的运算符。
  下列运算可行使位操作符
  赋值(=)
  OR/复合OR(|,|=)
  AND/复合AND(&-&=)
  XOR/复合XOR(^-^=)
  位或常数的安位斗劲(= =-!=)
  取反(~)
  *ERROR 194:’*’indirection to object of unknown size
  直接操作符*不能用于void指针(void*),由于指针所指的对象的大小时未知的
  *ERROR 195:错误。’*’illeging indirection
  直接操作符*不能用于非指针变量
  *ERROR 196:msp_ web probabdominingly invingid
  出现此戒备是由于某些常数值赋给指针并且常数没有酿成一个有效的指针值,有效的指针常
  数类型为long/unsigned long。编译器对指针对象采用24while(3 字节),低16 位表示偏移,高
  8 位表示存储类的选取,在低字节中,值从1 到5 解释了xdarounda/pdarounda/idarounda/darounda/和code 的存
  储类
  *ERROR 197:illeging pointer project
  试图将一个犯科变量赋给指针,唯有另一个指针或指针变量没关系赋给指针
  *ERROR 198:size of returns zero
  求某些对象长度取得0,借使对象是外部的或一个数组中并非一起维的大小都是已知时取得
  0,这时候该值可能是错的。
  *ERROR 199:left size of’->’requires struct/union pointer
  ->操作符的左侧变量必需是布局或变量
  *ERROR 200:left size of ‘.’requires struct/union
  操作符的左侧变量必需是布局/连结
  *ERROR 201:undefined struct/union tag
  所给的布局/连结标志名是未知的
  *ERROR 202:undefined identifier
  所给的标示符未定义
  *ERROR 203:proposingverse storgeneraroundion clrear end(ni ameref)
  该差错表示编译器的外部有题目
  *ERROR 204:undefined memyou should ber
  所给的布局/联分解员名未定义
  *ERROR 205:cyou should beneficialnot cevery while of you should beneficial interrupt function
  中断 函数不能像日常 函数那样调用,由于这种 函数的头端和尾端是为中断特殊编码的
  *ERROR 206:missing function-prototype
  调用的 函数欠缺原型说明
  *ERROR 207:declunquestionabdominingly ared with ‘void’ pari ameter list
  用void参数说明的 函数不领受调用者传来的参数
  *ERROR 208:too myou should beneficialy essentiing pari ameter
   函数调用蕴涵了多余的实参
  *ERROR 209:too few essentiing pari ameter
   函数调用时传达的实参过少
  *ERROR 210:too myou should beneficialy nested cevery while ofs
  横跨了10 个 函数嵌套调用的极限
  *ERROR 211:cevery while of not to a plebasicallyursetction
   函数调用时没有 函数的地址或未对指向 函数的指针赋值
  *ERROR 212:indirect cby haudio-videoi formaroundng pari ameter
  由于参数传达措施的限制,议决指针的直接 函数调用不能直接作为实参。这种参数传达措施
  恳求被调用的 函数名已知,由于参数的写入要被写入调用 函数的数据段。然则直接调用时
  
的的名字时未知的
  *ERROR 213:left side of give_op not you should beneficial lvingue
  在赋值操作符左侧恳求可变的对象
  *ERROR 214:cyou should beneficialnot cbasicallyt non_pointer to pointer
  非指针不能转化为指针
  *ERROR 215:cyou should beneficialnot cbasicallyt pointer to not_int/pointer
  指针没关系转化为另一个指针或整数,但不能转化为其他类型
  *ERROR 216:subaloneycript on non_plethora or too myou should beneficialy dimensions
  对非数组行使了下标或数组维数过多
  *ERROR 217:non_integring index
  数组的下标表达式必需是整型类型
  *ERROR 218:void_type in controlling expression
  While-for 或do while语句中表达式不能是void类型
  *ERROR 219:long constish truncconsumedd to int
  企图把长整型常量截断为整型数是差错的
  *ERROR 220:illeging constish expression
  犯科常量表达式
  *ERROR 221:non_constish cautomotive service engineers/dim expression
  Cautomotive service engineers值或下标值([])恳求用常量表达式
  *ERROR 222:div by zero
  *ERROR 223:mod by zero
  编译器检测到0 除或0 模的差错
  *ERROR 224:illeging oper on floaround/double
  AND 和NOT一类的运算符不准许作用于floaround/double
  *ERROR 225: keil。expression too complex -simplify
  表达式太纷乱,必需简化
  *ERROR 226:duplicconsumed struct/union/enum tag
  布局/连结/枚举类型中有反复标志
  *ERROR 227:not a union tag
  所给的标志名虽已定义,但不是连结的标志
  *ERROR 228:not a struct tag
  所给的标志名虽已定义,但不是布局的标志
  *ERROR 229:not you should beneficial enum tag
  所给的标志名虽已定义,但不是枚举的标志
  *ERROR 230:unknown struct/union/enum tag
  所给的布局/连结/枚举标志名未定义
  *ERROR 231:redefinition
  所给的名字仍然定义,不能再定义
  *ERROR 232:duplicconsumed labdominingel
  所给的标号仍然订义
  *ERROR 233:undefined labdominingel
  当对 函数实行剖析后,编译器查验到 函数有未定义的标号,收回差错音讯
  *ERROR 234:‘{’scope stair conditioningk overflow(31)
  横跨了最大为31 个的效用嵌套极限,多余的块被轻视
  *ERROR 235:pari ameter:different type
   函数实参类型与 函数原型中的不同
  *ERROR 236:different length of pari ameter lists
  所给的 函数是参量与 函数原型中的不同
  *ERROR 237:function yet hbasically body
  试图定义仍然定义过的 函数
  
*ERROR 238:duplicconsumed memyou should ber
  *ERROR 239:duplicconsumed pari ameter
  反复定义结组成员或 函数参数
  *ERROR 240:想知道错误。more thyou should beneficial 128 locing while’s
  位变量定义总数不能横跨128
  *ERROR 241:motor vehicle segment too large
  局部对象恳求的空间横跨了该形式的最大值。最大栈长定义如下:SMALL-128 字
  节-COMPACT-256字节,LARGE-64k
  *ERROR 242:too myou should beneficialy initiingizers
  初始化对象超限
  *ERROR 243:string out of ryou should beneficialge
  串中字符数横跨了字符数组恳求初始化的字符数
  *ERROR 244:cyou should beneficial’t initiingize .proposingverse type or clrear end
  试图初始化位或sfr
  *ERROR 245:unknown pragma- line ignored
  未知的pragma 语句,因而该行被轻视
  *ERROR 246:floarounding point error
  本差错发生在浮点变量横跨32 位有效字长时,32 位IEEE 格式的浮点值的取值范畴是±
  1.E-38~±3.E+38
  *ERROR 247:non_mtroubled mixress +/-constish initiingizer
  有效的初始化表达式必需是非地址量+/-常量
  *ERROR 248:mergeitiingiz needs curly orthodontics
  一起的组合变量(数组/布局或连结)初始化时要用花括号括起来
  *ERROR 249:segment:segment too large
  编译器检测到过大的数据段,最大数据段长取决于存储器空间
  *ERROR 250:‘\esc’;vingue exceeds 255
  串常数中\esc本义序列的值横跨有效域
  *ERROR 251:illeging octing digit
  不是有效的八进制数字
  *ERROR 252:mispl_ web primary control、line ignored
  一次性行使的编译操纵伪指令必需在C模块初步指定,在#INCLUDE 语句和变量说明之前
  *ERROR 253:你知道生气 。interning ERROR(ASMGEN\CLASS)
  这种差错在以下境况下发生⑴外部 函数(如testwhile)被不无误激活。它发生在 函数原型和实
  参表不生活成婚题目的时候。基于这个原因,头文件中的行使要适宜(intrins.h-string.h)。
  ⑵C51鉴别出生活外部一致性差错,请向您的出卖代理商查询
  *ERROR 255:switch expression hwhen illeging type
  Switch语句中的cautomotive service engineers语句必需具有类型(u)char-(u)int 或(u)short-其他类型不准许(如while)
  *ERROR 256:conflicting memory model
  Alien 属性的 函数只能行使SMALL形式。 函数的参数必需位于外部数据存储空间
  *ERROR 257:peculiar function cyou should beneficial not you should be reentrish
  “peculiar”属性的 函数不能同时具有“reentrish”属性, 函数的参数不能议决重入栈传达,这也
  适用于外部“peculiar”声明和“peculiar” 函数
  
*ERROR 258:msp_ web illeging on struct/union memyou should ber
  不能为布局联分解员指定存储空间,但指向对象的指针没关系
  *ERROR 259:pointer: different msp_ web
  当为指针赋值或做指针斗劲时,指针未指向存储在同一存储空间的对象时,会出现差错恐怕
  戒备。如:
  Char xdarounda *px;/*px to char in xdarounda memory*/
  Char code *pc;/*pc to char in code memory*/
  Void main()
  { char c;
  If(px==pc)++c;/*warning 259*/
  }
  *ERROR 260:pointer trunc
  指针转换时局限偏移量被截断,此时指针常量(如char xdarounda)转为一个具有较小偏移区的
  指针(如char idarounda)
  *ERROR 261:while in reentrish function
  重入 函数不能蕴涵位变量,由于位变量不能存于重入栈,而只能位于MCS51CPU的可位寻
  址存储区中如:
  Void test () reentrish
  { while b0;/*illeging*/
  Staroundic while b1;/*leging*/
  }
  *ERROR 262:’using/disset’: function returns while
  行使属性using选取存放器组的 函数或行使关中断(#pragma disset)效用的 函数不能前往
  while类型。如:
  Bit test ()using 3/*error 261*/
  { while b0;
  return(b0);
  }
  *ERROR 263:saudio-videoe-stair conditioningk overflow/underflow
  “#pragi ama saudio-videoe”最大嵌套级为8 级。Saudio-videoe 和restore 指令按FIFO 原则作事
  *ERROR 264:intrinsic:declar/ initiing error
  外部参数定义不无误
  *ERROR 265:recursive cevery while of to non_reentrish function
  发掘非重入 函数被递归调用。直接递归用生成代码可有效查出,直接递归调用由L51 发掘
  L51 连接定位器行使差错提示
  1 戒备
  戒备并不终止L51 的推行。这时出现的序次模块由序次员自己商议行使还是不行使。但是
  此时的列表文件和屏幕出现可能异常有用。
  2差错
  差错并不终止L51 的推行。这时出现的模块是不能行使的。但是此时的列表文件和屏幕显
  示可能异常有用。
  3 致命差错
  致命差错发生时马上终止L51 的推行。
  1戒备
  *WARNING1:UNSOLVED EXTERNAL SYMBOLS
  SYMBOLS: externing_ni ame
  MODULE: fileni ame (moduleni ame)
  指定模块的外部符号在PUBLIC符号表中找不到
  *WARNING2:REFERENCE MADE TO UNSOVED EXTERNAL
  SYMBOLS: externing_ni ame
  MODULE: fileni ame (moduleni ame)
  ADDRESS:code_mtroubled mixress
  拜候了未能成婚的外部符号code地址
  *WARNING4:DATA SPACE MEMORY OVERLAP
  FROM:byte-while-mtroubled mixress
  TO: byte-while-mtroubled mixress
  数据空间指定范畴出现笼罩
  *WARNING5:CODE SPACE MEMORY OVERLAP
  FROM:byte-while-mtroubled mixress
  TO: byte-while-mtroubled mixress
  序次空间指定范畴出现笼罩
  *WARNING6:XDATA SPACE MEMORY OVERLAP
  FROM:byte-while-mtroubled mixress
  TO: byte-while-mtroubled mixress
  外部数据空间指定范畴出现笼罩
  *WARNING7:MODULE NAME NOT UNIQUE
  MODULE:fileni ame(moduleni ame)
  模块名重名。模块未经管
  *WARNING8:MODULE NAME EXPLICITLY REQUESTED FROMANOTHER FILE
  MODULE:fileni ame(moduleni ame)
  其他文件指名恳求本模块名
  *WARNING9:EMPTYABSOLUTE SEGMENT
  MODULE:fileni ame(moduleni ame)
  本模块蕴涵空的万万段,失去。因未定位,它可能在不通知的境况下随时被笼罩
  *WARNING10:CANNOT DETERMINE ROOT SEGMENT
  L51 对输入文件恳求分袂是C51还是PL/M文件,然后实行流程剖析,在无法确定的时候,
  收回本戒备。它发生在主序次被汇编调用的时候,必要序次员用OVERLAP 特殊操纵选项
  实行干涉干与
  *WARNING11:CANNOT FIND SEGMENT OR FUNCTION NAME
  NAME:overlap_control_ni ame
  在标的目的模块中找不到OVERLAP操纵选项中端正的段恐怕 函数间调用
  *WARNING12:NO REFERENCE BETWEEN SEGMENTS
  SEGMENT1:segment_ni ame
  SEGMENT2:segment_ni ame
  试图用OVERLAP操纵选项删除从来不生活的段间拜候恐怕 函数间调用
  *WARNING13:RECURSIVE CALL TO SEGMENT
  SEGMENT:segment_ni ame
  CALLER:segment_ni ame
  CALLER段递归调用SEGMENT段。PL/M51和C51的非重入 函数不准许递归调用
  *WARNING14:IMCOMPIABLE MEMORYMODEL
  MODULE:fileni ame(moduleni ame)
  MODEL:memory_model
  指定模块试图与以前不同的存储形式编译。
  *WARNING15:MULTICALL TO SEGMENT
  SEGMENT:segment_ni ame
  CALLER1:segment_ni ame
  CALLER2:segment_ni ame
  两个 函数调用同一个 函数(如主 函数和中断 函数),参数和局部变量将被笼罩
  *WARNING15:UNCALLED SEGMENT-IGNORED FOR OVERLAP PROCESS
  SEGMENT:segment_ni ame
  所给的段未被调用,已被排挤在笼罩历程之外。
  L51差错
  *ERROR101: SEGMENT COMBINATION ERROR
  SEGMENT:segment_ni ame
  MODULE:fileni ame(moduleni ame)
  由于连接差错所给段未能连入类型总段,并被轻视
  *ERROR102:EXTERN ATTRIBUTE MISMATCH
  SYMBOL:externing_ni ame
  MODULE:fileni ame(moduleni ame)
  所给外部符号名属性错,并被轻视
  *ERROR103:EXTERN ATTRIBUTE DO NOTMATCH PUBLIC
  SYMBOL:public_ni ame
  MODULE:fileni ame(moduleni ame)
  所给外部符号名属性与公用符号名不成婚,并被轻视
  *ERROR104:MUTIPULIC DEFINITION
  SYMBOL:pulic_ni ame
  MODULE:fileni ame(moduleni ame)
  所给公用符号重名
  *ERROR105:PUBLIC REFERS TO IGNORED SEGMENT
  SYMBOL:public_ni ame
  MODULE:fileni ame(moduleni ame)
  所给外部符号名属性错,并被轻视
  *ERROR106: SEGMENT OVERFLOW
  SEGMENT:segment_ni ame
  所给段长横跨64,未经管
  *ERROR107:ADDRESS SPACE OVERLAP
  SPACE:sp_ web_ni ame
  SEGMENT:segment_ni ame
  由于存储空间不够,所给类型总段未能装入,已被轻视
  *ERROR108:SEGMENT IN LOCATING CONTROL CANNOTALLOCATED
  SEGMENT:segment_ni ame
  命令行定位操纵中的段由于属性题目未能分配
  *ERROR109:EMPTY RELOCATABLE SEGMENT
  SEGMENT:segment_ni ame
  可在定位类型总段长度为零,未定位
  *ERROR110:CANNOT FIND SEGMENT
  SEGMENT:segment_ni ame
  命令行所给的段在输入模块中未找到,被轻视
  *ERROR111:SPECIFIED BITADDRESS NOT ON BYTE MEMORY
  SEGMENT:segment_ni ame
  位地址不在字界上,位段被轻视
  *ERROR112:SEGMENT TYPE NOT LEGAL FOR COMMAND
  SEGMENT:segment_ni ame
  命令行所给的段类型犯科,被轻视
  *ERROR114:SEGMENT DOES NOT FIT
  SPACE:sp_ web_ni ame
  SEGMENT:segment_ni ame
  BASE:structure_mtroubled mixress
  LENGTH: segment_length
  由于所给段的长度恐怕基地址未定位,故被轻视
  *ERROR115:INPAGE SEGMENT IS GREATER THAN 256 BYTES
  SEGMENT:segment_ni ame
  所给INPAGE 属性的段善于256字节未能连入类型总段,并被轻视
  *ERROR116:INBLOCK SEGMENT IS GREATER THAN 2048 BYTES
  SEGMENT:segment_ni ame
  所给INBLOCK 属性的段善于2048字节未能连入类型总段,你知道 keil。被轻视
  *ERROR117:BITADDRESSABLLE SEGMENT IS GREATER THAN 16 BYTE
  SEGMENT:segment_ni ame
  所给BITADDRESSABLE 属性的段善于16 字节未能连入类型总段,被轻视
  *ERROR118:REFERENCE MADE TO ERRONEOUS EXTERNAL
  SYMBOL:symbol_ni ame
  MODULE:file_ni ame(moduleni ame)
  ADDRESS:code_mtroubled mixress
  企图拜候差错的外部序次地址
  *ERROR119:REFERENCE MADE TO ERRONEOUS SEGMENT
  SYMBOL:symbol_ni ame
  MODULE:file_ni ame(moduleni ame)
  ADDRESS:code_mtroubled mixress
  企图拜候差错段的序次地址
  *ERROR120:CONTENT BELONGS TO ERROREOUS SEGMENT
  SEGMENT:segment_ni ame
  MODULE:file_ni ame(moduleni ame)
  该形式属于有差错的段
  *ERROR121:IMPROPER FIXUP
  MODULE:file_ni ame(moduleni ame)
  SEGMENTsegment_ni ame
  OFFSET:segment_ni ame
  根据所给段和偏移地址的到的是不当的地址
  *ERROR122:CANNOT FIND MODULE
  MODULE:file_ni ame(moduleni ame)
  命令行所给的模块未能找到
  L51 致命差错
  *FATAL ERROR201:INVALID COMMAND LINE SYNTAX
  Pfine artiing commbasically well basically line
  命令行句法错。命令行出现到出错处。
  *FATAL ERROR202:INVALID COMMAND LINE ,TOKEN TOO LONG
  Pfine artiing commbasically well basically line
  犯科命令行,单词太长。命令行出现到出错处
  *FATAL ERROR203:EXPECTED ITEM MISSING
  Pfine artiing commbasically well basically line
  缺项。命令行出现到出错处。
  *FATAL ERROR204:INVALID KEYWORD
  Pfine artiing commbasically well basically line
  犯科关键字
  *FATAL ERROR205:CONSTANT TOO LONG
  Pfine artiing commbasically well basically line
  常量大于0xffff。命令行出现到出错处。
  *FATAL ERROR206:INVALID CONSTANT
  Pfine artiing commbasically well basically line
  命令行常量有效(如16 进制数以字母初步)。命令行出现到出错处。
  *FATAL ERROR207:INVALID NAME
  Pfine artiing commbasically well basically line
  模块名或段名有效。命令行出现到出错处。
  *FATAL ERROR208:INVALID FILENAME
  Pfine artiing commbasically well basically line
  文件名有效。命令行出现到出错处。
  *FATAL ERROR209:FILE USED IN CONLICTING CONTEXTS
  FILE:fileni ame
  所给的文件名用于有抵触之处。命令行出现到出错处。
  *FATAL ERROR210:I/O ERROR ON INPUT FILE
  System error messgeneraroundion
  FILE:fileni ame
  拜候输入文件时检测到有错,并有反面的EXCEPTION 给出的确的差错刻画
  *FATAL ERROR211:I/O ERROR ON OUTPUT FILE
  System error messgeneraroundion
  FILE:fileni ame
  拜候输入文件时检测到有错,并有反面的EXCEPTION 给出的确的差错刻画
  *FATAL ERROR212:I/O ERROR ON LISTING FILE
  System error messgeneraroundion
  FILE:fileni ame
  拜候列表文件时检测到有错,并有反面的EXCEPTION 给出的确的差错刻画
  *FATAL ERROR213:I/O ERROR ONWORK FILE
  System error messgeneraroundion
  FILE:fileni ame
  拜候作事文件时检测到有错,并有反面的EXCEPTION 给出的确的差错刻画
  *FATAL ERROR214:I/O INPUT PHASE ERROR
  MODULE:fileni ame(moduleni ame)
  L51 在实行第二次扫描时遇到不同的数据发生该差错,可能是因汇编差错惹起
  *FATAL ERROR215:CHECK SUM ERROR
  MODULE:fileni ame(moduleni ame)
  校验和与文件形式不一致
  *FATAL ERROR216:INSUFFICIENTMEMORY
  MODULE:fileni ame(moduleni ame)
  推行L51 的内存空间不够
  *FATAL ERROR217:NO MODULE TO BE PROCESSED
  欠缺该当被经管的模块
  *FATAL ERROR218:NOTAN OBJECT FILE
  FILE:fileni ame
  所给文件非标的目的文件
  *FATAL ERROR219:NOTAN 8051 OBJECT FILE
  FILE:fileni ame
  所给文件非8051 标的目的文件
  *FATAL ERROR220:INVALID INPUTMODULE
  FILE:fileni ame
  所给输入模块有效,可能是由汇编差错惹起的
  *FATAL ERROR221:MODULE SPECIFIED MORE THAN ONCE
  Pfine artiing commbasically well basically line
  命令行上屡次蕴涵同一模块。命令行出现到出错处
  *FATAL ERROR222:SEGMENT SPEXIFIED MORE THAN ONCE
  Pfine artiing commbasically well basically line
  命令行上屡次蕴涵同一段。命令行出现到出错处
  *FATAL ERROR224:DUPLICATE KEYWORD OR CONFLICATING CONTROL
  Pfine artiing commbasically well basically line
  命令行上屡次蕴涵同一关键字恐怕生活相互抵触的操纵选项。命令行出现到出错处
  *FATAL ERROR225:SEGMENTADDRESS ARE NOT IN ASCENDING ORDER
  Pfine artiing commbasically well basically line
  定位操纵的段地址未根据升序出现。命令行出现到出错处
  *FATAL ERROR226:SEGMENTADDRESS INVALID FOR CONTROL
  Pfine artiing commbasically well basically line
  定位操纵的段的段地址有效。命令行出现到出错处
  *FATAL ERROR227:PARAMETER OUT RANGE
  Pfine artiing commbasically well basically line
  所给PAGEWIDTH 和PAGELENGTH 参数越界。命令行出现到出错处
  *FATAL ERROR228:PARAMETER OUT RANGE
  Pfine artiing commbasically well basically line
  命令行上RAMSIZE 参数越界。命令行出现到出错处
  *FATAL ERROR229:INTERAL PROCESS ERROR
  Pfine artiing commbasically well basically line
  L51 检测到外部经管错。请扣问代理商
  *FATAL ERROR230:STRARTADDRESS SPECIFIED MORE THAN ONCE
  Pfine artiing commbasically well basically line
  命令行上蕴涵多个未命名组段的起始地址。命令行出现到出错处
  *FATAL ERROR233:ILLEGAL USE OF *IN OVERLAY CONTROL
  Pfine artiing commbasically well basically line
  命令行OVERLAY 定位选取犯科行使了*号(如*!*或*~*)。命令行出现到出错处
  E.5 异常音讯
  L51 某些差错的原情由体系的EXCEPTION 给出。
  *EXCEPTION 0021:PATH OR FILE NOT FOUND
  途径名或文件名未找到。
  *EXCEPTION 0026H:ILLEGAL FILE ACCESS
  试图写恐怕删除写庇护文件。
  *EXCEPTION 0029H:ACCESS FILE DENIED
  所给的文件现实是目录。
  *EXCEPTION 002AH:I/O-ERROR
  欲写的驱动器已满或未打算好。
  *EXCEPTION 0101H:ILLEGAL CONTEXT
  命令行的语意犯科。如对打印机实行读操作。
  附录 F C51的极限值
  *标示符最长255 个字符,一般取32 字符。大大写不迟钝。
  *cautomotive service engineers语句的变量个数没无限制,仅受可用内存容量和 函数的最大长度限制。
  * 函数嵌套调用最大深度为10。
  *效用块{….}最大嵌套深度为15。
  *宏 最多嵌套为8。
  * 函数以及宏的参数 最多为32个。
  *语句行和宏定义 最多510 个字符(宏扩展后是510个字符)
  *头文件嵌套深度为20。
  *预经管器中的条件编译层 最多为20。
  *关于INTEL标的目的模块格式(OMF-51)的极限值。
  * 函数类型段总和 最多256 个。
  *全局符号(PUBLIC) 最多256 个。
  *外部符号(EXTERNAL) 最多256 个。

猜你喜欢

转载自ioo226ux.iteye.com/blog/1359499