Keil C51中为什么总是报这样的警告,是在说我这个函数没有被调用吗?不被调用也警告啊?

 我来答
ghost4063
2013-11-21 · TA获得超过6523个赞
知道大有可为答主
回答量:2940
采纳率:75%
帮助的人:2784万
展开全部
没有调用的确会警告。
单片机资源有限,和PC程序可不能比啊。KEIL分许出这个函数未被调用,又不敢不链接,只好保留代码段,而且函数里的局部变量也需要在RAM中保留,无法作为一般的局部变量回收,十分浪费。
一般来说,尽量把不用的函数注释掉。
如果既不想删,又不想看到这个警告,那么可以在初始化的地方这么干:
i=0; //随便找个变量即可
if(i) //不可能满足的条件,假调用
{
uart_send(....);
}
追问
谢谢,现在我又出现了这样一个问题,我的单片机型号是SST89E58RD,它的RAM是1k,但是Keil中没有这个型号,只有这个系列的,然而选择这个系列建立工程的话它默认的就是256字节,这让我把剩余的那部分RAM给使用了呢?
追答
可以啊,你就选SST89x58RD,然后,在项目的CONFIGARATION中,target页,选中use onchip xram(0~2FF).
你的单片机虽然是1K,但其中的768字节逻辑上应该是外部RAM(0~2FF),所以如果你把变量定义成xdata,那么编译器就会把这个变量定义到这部分地址去。
yzk13298
2013-11-21 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3680
采纳率:71%
帮助的人:1099万
展开全部
是的,如果你的函数没用,它就会警告的
因为单片机的程序空间是有限的,所以程序都是尽量精简
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友42bc20c18
2013-11-21 · TA获得超过159个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:109万
展开全部
浪费空间可耻!
追问
我现在写的程序是因为他是一个老产品,程序升级,但实际应该过程中,现在单片机的内存已经远远不是问题,浪费空间可耻?没人想浪费空间,而且现在的单片机也不会让你浪费时间来计算空间,程序任意写。单片机的程序讲究的是高效稳定,而不是计算空间,而不是依据空间而写程序。如果你还在干那,只能说可悲,可怜,可笑。
我现在写的程序是因为他是一个老产品,程序升级,但实际应该过程中,现在单片机的内存已经远远不是问题,浪费空间可耻?没人想浪费空间,而且现在的单片机也不会让你浪费时间来计算空间,程序任意写。单片机的程序讲究的是高效稳定,而不是计算空间,而不是依据空间而写程序。如果你还在干那,只能说可悲,可怜,可笑。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式