uncalled+segment
答:可能是运算超出范围。
答:程序没错。只是警告。是由于你的延时程序有2个,而且是一样的。去掉一个延时程序就好了。把最后的那一小段延时程序void delay(uchar x) 开始全部去掉就OK!
答:没什么意思,就是未被调用的程序代码 比如说前面定义了些什么函数、变量啊,实际上,你没有使用他们,就出现这个警告
答:把第二个main 函数中的num 变量定义插入到第一个main的变量定义中,然后把第二个main 函数中while(1)中的函数插入到第一个main 函数的while(1)中的else前面 注意格式和大括号以及分号移植的时候的完整性
答:是的,你没有调用,因为你调用错了,应该写为:led(p[i]);
答:主程序中调用3个子程序,画红框的3个,子程序写在头文件中了吗。还有变量keyval,调用Key_Scan( )函数后并不会改变的,初值为0,将始终为0,switch语句根据keyval去跳转没有意义。
答:主要是三个问题:第一、前面两个警告是说函数定义了却没有调用, 可以不用管。第二、Error L116的错误是说超过2K的程序都被切掉,没有编译它们了。可能原因:1、你的软件没有注册,使用的评估版,最多只能编译2K程序;2、在下图的Code Rom Size处设置限定了2K。第三、后面的Error都是RAM空间不够...
答:这里已经表述得清楚明白……你当前使用的是未和谐的评估版,仅支持编译不超过2kB(800h)的程序,而目前这个程序编译之后的长度是4859字节,是限制的2.37倍。同时,变量太多已经超过了直接寻址的80h范围,你需要把一部分变量分配到间接寻址的 idata 区。
答:WARNING L16:没有调用它的语句。(这个是个警告,不影响编译,但是一个好的程序不应该有警告,除非你在调试,知道这个是什么意思)。WARNING L15:1.函数是不可重入性函数。2.局部变量和变量。
答:第一个警告是说你有一个名为DELAY的函数没有调用。第二个致命错误是说你当前使用的Keil是评估版,有2kB代码限制。需要破解或找个完整版的安装。
网友评论:
梁姚13360002594:
keil出现错误 uncalled segment但是实际上全部函数都被调用了的 -
7085隗俩
: 方法1、你把延时程序的名字改一下试试,比如将所有的delay_50us的前面都加一个my.看看还有没有.方法2、你试试把你的子程序删掉,看看报错吗?如果不报错的话,就按照我说的第一种方法做就可以了.原因是可能你的头文件里面就包含了这个延时子程序.
梁姚13360002594:
c51的keil3中出现的警告,请问单片机的高手们是哪里出现问题了 -
7085隗俩
: UNCALLED SEGMENT:你写了一个函数,但是从来没有调用它,它是不会产生代码的.一般可以忽略MULTIPLE CALL TO SEGMENT :该函数可能会在中断服务程序和主程序中同时被调用.这个警告要注意.如主程序调用该函数还没有推出就进入中断程序,在中端程序再次被调用,可能会出现逻辑错误.UNRESOLVED EXTERNAL SYMBOL:引用其它文件的函数、变量产生的错误,可能是声明不正确或者函数、变量不存在REFERENCE MADE TO UNRESOLVED EXTERNAL:引用其它文件中的函数、变量而不正确.一定要确保在调用其它文件的函数和变量时,要先正确声明.
梁姚13360002594:
keil编译出现警告 uncalled segment ignored for overlay process -
7085隗俩
: 说明有未被调用的函数或常量数组.百度嫌我字数不够
梁姚13360002594:
Keil中如何消除UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS警告 -
7085隗俩
: 可以用条件编译啊,#ifdef **(程序段1)#else(程序段2)#endif**是在前面用#define定义的标识符,作用是如果定义了**,就编译(程序段1),否则编译(程序段2).如果你一定要考虑可移植性的话,就这样做,否则还是直接用注释符隐蔽掉,或者直接删掉,会比较快.
梁姚13360002594:
用keil仿真时显示*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS *** WARNING L16: UNC -
7085隗俩
: //void init_cgram()//{// unsigned char i;// //;设置自定义...
梁姚13360002594:
程序编译时没错误,建立时出现WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 是咋回事?? -
7085隗俩
: 定义的子程序,在主函数中没有调用!不会影响程序的执行,可找到那个子程序,删掉就行了!
梁姚13360002594:
用keil编译显示警告,*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 怎么回事啊?急 -
7085隗俩
: 这两行有错void delay(uint); 改成void delay(uint z);void mian() 这是主程序的单词,都能写错呀?是 main() !!!!
梁姚13360002594:
请单片机高手分析下面程序~~出现*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGM -
7085隗俩
: 把你main()函数里没用用的子函数都去掉或者临时改成注释文字试试
梁姚13360002594:
keilc编译出现WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS我实在找不出来了请帮吗找找 -
7085隗俩
: 主程序void main(){ init(); while(1); //这行不能有分号,删掉啊 { keyscan(); display(num); } }
梁姚13360002594:
错误 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS谁帮我看看呗!~~谢谢 -
7085隗俩
: 大哥...你的void main拼错了...拼到了mian了...还有提醒你一句,D1=0;后面最好加一句while(1);养成良好习惯