在Keil C中,如果没有显式调用到定义过的函数,就会出现这样的的警告。当出现这样的警告时,可以不用管,因为不影响其它部分。但是,我们知道,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM倒是不心疼。最主要的是,在这个函数中的变量,不会被列入覆盖分析范围内,也就是说这些变量占的空间不能被回收,这对于为数不多的RAM资源可是巨大的浪费啊。。。
当这个不被调用的函数写在C文件中时,可以把它注释掉来解决这个问题。我想知道的是,当我将一组函数包装成lib文件时,又怎么解决问题呢?总不能每次都重新生成lib吧,这样的话移植性不就成问题了?还有,Keil自带的库中必然有很多函数,也必然有很多用不到的,为什么就不没有UNCALLED SEGMENT呢?我猜想它的lib的源代码有什么特殊的地方(我猜的)。小弟请教各位高手解决此问题的方法或技巧。

  (1)可以用条件编译啊, #ifdef ** (程序段1) #else (程序段2) #endif
**是在前面用#define定义的标识符,作用是如果定义了**,就编译(程序段1),否则编译(程序段2).
如果你一定要考虑可移植性的话,就这样做,否则还是

  (2)直接用注释符隐蔽掉,或者直接删掉,会比较快。

  (3)想不显示这些提示:则可设置如下:option for target --->bl51 misc --->disable warning ==这里写入16

Keil中如何消除UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS警告的更多相关文章

  1. *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

    Warning提示的原因是 一些未使用的函数被编译进入芯片,浪费了RAM/ROM. 解决的方法: 1.将不用的函数注释: 2.在未使用函数的首尾加条件编译 #ifdef 函数名 和 #endif ,不 ...

  2. KEIL中的一些细节

    1.KEIL中的指针: 基于存储器的指针:数据类型 [指向存储区]  *[ 指针存储区]指针变量 char xdata * px //px本身存在于自动分配的空间,一般位于data中,指向的内容位于x ...

  3. 谈谈Keil 中C51的内存分配与优化

    本帖最后由 Cresta 于 2014-1-21 10:49 编辑 看到这篇C51的内存分配和优化的文章,个人觉得分析的十分到位,在这里转给大家   C51的内存分配不同于一般的PC,内存空间有限,采 ...

  4. KEIL中启动文件详解(汇编语言)

    原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要 ...

  5. keil中出现Undefined symbol FLASH_PrefetchBufferCmd (referred from main.o)等问题解决办法

    在keil中仿照别人的程序写了RCC初始化的程序,编译后出现以下问题 .\obj\pro1.axf: Error: L6218E: Undefined symbol FLASH_PrefetchBuf ...

  6. keil中的串口调试:

    keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如 ...

  7. Keil中的code关键字

    一般说来,我们在C语言中定义的每一个变量初始化后都会占用一定的内存(RAM)空间.但是在keil中提供了一个特殊的关键字“code”,这个关键字在标准C中是没有的.其语法举例如下: unsigned ...

  8. 关于keil中data,idata,xdata,pdata,code的问题

    转自关于keil中data,idata,xdata,pdata,code的问题 ‍从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类 ...

  9. 在KEIL中的模块化程序写法

    在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问题的.但是当程序很长的时候, ...

随机推荐

  1. Php开发完全跨站点跨域名单点(SSO)同步登录和注销

    From:http://www.cnblogs.com/JinkoWu/p/5056646.html 先来说说什么是单点登录(SSO).来自百科的介绍:SSO英文全称Single Sign On,单点 ...

  2. 【HDU1754】I Hate It(线段树)

    update:单点替换 query:区间最值 #include <iostream> #include <cstring> #include <cstdlib> # ...

  3. UVA 10285 Longest Run on a Snowboard(记忆化搜索)

    Problem C Longest Run on a Snowboard Input: standard input Output: standard output Time Limit: 5 sec ...

  4. 关于sem_unlink什么时候删除信号量

    sem_unlink在man手册里有这么一段话: sem_unlink() removes the named semaphore referred to by name. The semaphore ...

  5. ecshop 管理员不需要旧密码

  6. 平时的笔记04:处理stagger模块

    #! /usr/bin/env python3 # # __init__.py # From the stagger project: http://code.google.com/p/stagger ...

  7. IOS总结_无需自己定义UITabbar也可改变UITabbarController的背景和点击和的颜色

    在application: application didFinishLaunchingWithOptions: launchOptions 增加以下代码就能够实现对tabbar的颜色的改动 //设定 ...

  8. Html5移动端页面布局通用模板暨移动端问题总结

    最近的移动端项目终于告一段落了,其中遇到了不少问题,在此和大家总结分享. 首先,说一下结构.一般的手机页面大致可以分为五块:head, content, foot,solidbar,dialog. 针 ...

  9. HttpURLConnection 下载代码

    private int downloadFile(final String apkurl, final String apkname) { Log.e(LOGTAG, "downloadAp ...

  10. flex 调用WebService2(基于.net)

    flex 访问WebService的方法有很多种,使用FLEX4中的"数据/服务"功能可以自动生成访问WebService的代理类,这样可以避免把所有的数据访问都写到MXML页面上 ...