找回密码
 注册
关于网站域名变更的通知
查看: 180|回复: 3
打印 上一主题 下一主题

Keil中如何消除UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS警告

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-21 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在Keil C中,如果没有显式调用到定义过的函数,就会出现这样的的警告。当出现这样的警告时,可以不用管,因为不影响其它部分。但是,我们知道,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM倒是不心疼。最主要的是,在这个函数中的变量,不会被列入覆盖分析范围内,也就是说这些变量占的空间不能被回收,这对于为数不多的RAM资源可是巨大的浪费啊。。。
8 N7 W5 n; I) O0 n
& {5 m7 D* B" L% Z; C" N- m
当这个不被调用的函数写在C文件中时,可以把它注释掉来解决这个问题。我想知道的是,当我将一组函数包装成lib文件时,又怎么解决问题呢?总不能每次都重新生成lib吧,这样的话移植性不就成问题了?还有,Keil自带的库中必然有很多函数,也必然有很多用不到的,为什么就不没有UNCALLED SEGMENT呢?我猜想它的lib的源代码有什么特殊的地方(我猜的)。小弟请教各位高手解决此问题的方法或技巧。
7 ]+ d9 M2 f2 } //=========================================================================; |( N/ z# ]' F: C5 p: P
(1)
0 z% O( R" a3 k& d+ _- n, j1 M 可以用条件编译啊,: S. @/ G; {, [9 ~( h
#IFdef **5 ?3 G. S2 j1 ^9 X: Z: d- p
(程序段1)/ F% g" ~7 G5 Q' f; U2 g9 _
#else5 |+ F8 }2 T9 e& ?) ?4 \
(程序段2)
8 d- [0 Z3 {; H; w: q. x* B #endif- q8 C( B8 N# b$ f, m( d" N
0 U; E/ K. y6 H3 p
**是在前面用#define定义的标识符,作用是如果定义了**,就编译(程序段1),否则编译(程序段2).
5 k* |+ Q/ _" d# B  \) s5 }5 Y
% o/ Q- E6 e" \) o1 ? 如果你一定要考虑可移植性的话,就这样做,否则还是. s+ L, j8 x5 k4 g3 l
(2)直接用注释符隐蔽掉,或者直接删掉,会比较快。
, V4 N+ N7 K4 _# D5 E //=========================================================================; ^( Z  `$ d+ w! @6 }  u
(3)想不显示这些提示:则可设置如下:
2 }9 i3 O! k* x: `7 Q option for target+ _" j1 ?! w8 A- _" }, R4 E9 F
--->bl51 misc7 u  k2 x7 y3 `' k$ p
--->disable warning ==这里写入16
, O# g" j- }5 `& T

! }" P0 b$ q: G6 G* k( a" n. c+ F

; ?) ?! w8 ?( c2 R
; ~2 M0 S8 c/ O: t9 {  l& @
9 `7 S1 Y# [0 J4 ^  q# F 7 N9 d5 D  b: ^% |7 \" q( F

; `( e: d3 D& M3 J- `" b( _

( x1 x# k$ I; H$ h, \  D5 k7 P

该用户从未签到

2#
发表于 2022-7-21 11:21 | 只看该作者
打个坐标,遇到了,再来看看。

该用户从未签到

3#
发表于 2022-7-21 15:30 | 只看该作者
帮别人解决问题,自己也能提升

该用户从未签到

4#
发表于 2022-7-21 16:55 | 只看该作者
谢谢楼主的资料分享 注释清晰 学习起来很好的资料
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 09:11 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表