欢迎来到天天文库
浏览记录
ID:57686759
大小:58.50 KB
页数:17页
时间:2020-09-01
《C51-keil编译常见错误和警告处理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、keil错误 C51编译器识别错类型有三种1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出提示但不产生目标文件,错误超过一定数量才终止编译。3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序员应斟酌处理。D.1致命错误C_51FATAL_ERRORACTION:<当前行为>LINE:<错误所在行>ERROR:<错误信息>terminated或C_51FATALERRORACTION:<当前行为>FILE:<错误所在文件>ERROR:<错误信息
2、>terminatedC_51TERMINATEDC_51(1)ACTION的有关信息*PARSINGINVOKE-/#PRAGMA_LINE在对#pragma指明的控制行作此法分析时出错。*ALLOCATINGMEMORY系统分配存储空间时出错。编译较大程序需要512k空间。*OPENINGINPUT_FILE打开文件时,未找到或打不开源文件/头文件。*CREATELIST_FILE/OBJECT_FILE/WORK_FILE不能创建上述文件。可能磁盘满或文件已存在而且写保护。*PARSINGSOURCE_FILE/ANALYZINGDECLA
3、RATIONS分析源程序时发现外部引用名太多。*GENERATINGINTERMEDIATECODE源代码被翻译成内部伪代码,错误可能来源于函数太大而超过内部极限。*WRITINGTOFILE在向文件(work,list,prelist或objectfile)写时发生错误。(2)ERROR的有关信息*MEMORYSPACEEXHAUSTED所有可用系统空间耗尽。至少需要512k字节空间。没有足够空间,用户必须检查常驻内存的驱动程序是否太多。*FILEDOESNOTEXISTFILE行定的文本文件名未发现。*CAN’TCREATFILEFILE行定
4、义的文件不能被创建。*SOURCEMUSTCOMEFROMADISK_FILE源文件和头文件必须存在于硬盘或软盘上。控制台、CON、CI或类似设备不允许作为输入文件。*MORETHAN256SEGMENTS/PUBLICS/EXTERNALS受OMF_51的历史限制,一个源程序不能超过256个各种函数的类型段,256个全局变量,256个公共定义或外部引用名。不使用为变量可以减少使用的段数。使用static存储类型说明符可减少全局变量的使用数目。合理调整定义性说明的位置可减少外部引用名的使用数目。*FILEWRITEERROR当向list、prel
5、ist、work或object文件中写内容时,由于空间不够而发生错误。*NON_NULLARGUMENTEXPECTED所选的控制参数需要一个括号内的变量,如一个文件夹或一个数。*“(”AFTERCONTROLEXPECTED变量的左括号丢失。*“)”AFTERPARAMETEREXPECTED变量的右括号丢失。*RESPECIFIEDORCONFLICTINGCONTROL所选的控制参数与前面发生冲突或重复,例如CODE和NOCOND*BADDECIMALNUMBER控制参数的数字含有非法数,需要使用十进制数。*OUTOFRANGEDECIMA
6、LNUMBER控制参数的数字越界,例如OPTIMIZE的参量为0-5。*IDENTIFIEREXPECTED控制参数DEFINE需要一个标识符做参量,与C语言的规则相同。*PARSESTACKOVERFLOW分析栈溢出。可能是源程序包含特别复杂的表达式,或功能块嵌套数超过15。*PREPOCESSOR:MACROTONESTED宏扩展期间,预处理器的栈耗用太大。表明宏嵌套太多,或有递归宏定义。*PREPOCESSOR:LINETOOLONG(510)宏扩展后行超过510个字符。*CAN’THAVEGENERALCONTROLININVOCATIO
7、NLINE一般控制(如EJECT)不能是命令行的一部分,应将它们放入源文件“pragma”预处理行中。D.2语法及语义错误D.2.1错误格式这类错误在列表文件中产生如下格式的信息:***ERRORINLINEOF:errormessage***WARINGINLINEOF:warningmessage表示错误行;表示源文件或头文件中与错误或警告相关的行;指明了错误所在的源文件或头文件;D.2.2错误信息及可能发生的原因*ERRO
8、R100:unprintablecharacter0x??skipped源文件中发现非法字符(注意,注解内的字符不做检查)。*ERROR
此文档下载收益归作者所有