Keil中UNCALLED SEGMENT警告的处理方案

首先解释一下警告的含义:出现了已经定义过但是没有显式调用过得函数。

经常出现在我们调试代码的时候改来改去顾头不顾尾的时候,尤其是屏蔽掉某些部分测试其他功能的时候。

也就是说,当我们在解决其他问题的调试的时候,是可以无视这类型的报错的,毕竟他不会影响别的部分嘛。

但是呢,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM倒是不心疼。相比之下,这个未被调用的函数中的变量,不会被列入覆盖分析范围内,即这些变量占的空间不能被回收,这样一来,对于为数不多的RAM资源就造成了巨大的浪费。

解决方法

1. 无视这些提示,则可设置如下:option for target--->BL51 Misc--->disable warning ==这里在空位写入16,重新编译即可无视该类型的警告。

(由于我个人仅仅是因为在调试过程中,因为经常涉及屏蔽某部分对别的部分进行测试,所以采取了屏蔽该类型错误的处理方法)这样的处理方式未必适合你。

2. 可以用条件编译啊

#ifdef**
    (程序段1)
#else
    (程序段2)
#endif


**是在前面用#define定义的标识符,作用是如果定义了**,就编译(程序段1),否则编译(程序段2)。

这样做既能保证代码的可移植性也能改掉警告,是相对来说较好的处理方法。

3. 直接用注释符隐蔽掉,或者直接删掉,会比较快。
//=========================================================================

简单粗暴,但不够细致,而且调试中的脑子也未必可以清醒到让你我每次都能把所有相关的函数正正好好都屏蔽掉,删掉的话又会影响调试其他功能。

我的问题解决了,顺带总结分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值