找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3113|回复: 5
打印 上一主题 下一主题
收起左侧

keil警告未调用功能,很奇怪的报错,到底为什么

[复制链接]
跳转到指定楼层
楼主
用的keil4进行编译的单片机程序,因为工程共包含11个 .c 文件,编译之后有8个警告,有3个c文件没有警告,例如下面:

*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
    NAME:    ?CO?KEY
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
    NAME:    ?CO?GPIO
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
    NAME:    ?CO?DELAY

问号后面都是其中.c文件的名称,并不是某一个函数的名称,而其中的函数已经检查多次了,肯定都有调用,不知道这个警告到底什么原因导致的??

编译选项里 Use Extended Linker(LX51) instead of BL51,也勾选了,警告不变,没有用。

比如 key.h 文件内容:
#ifndef __KEY_H
#define __KEY_H
#include "config.h"

sbit key_set = P2^1;
sbit key_up  = P2^2;
sbit key_down= P2^3;
sbit key_ok  = P2^4;

void ScanKey();
void UpKey();
void DownKey();
#endif


key.c文件:


main.c 中 while(1)循环里调用了 ScanKey();  该函数里又调用了UpKey()和DownKey()。
有没有人遇到相似的问题??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:267719 发表于 2020-7-20 21:47 | 只看该作者
完整代码贴一下。怀疑由于代码问题永远不满足执行到这三个函数的条件。
回复

使用道具 举报

板凳
ID:584814 发表于 2020-7-21 10:11 | 只看该作者
警告是表示发现了三个没被调用的函数,不影响编译和执行。
回复

使用道具 举报

地板
ID:311846 发表于 2020-7-21 10:52 | 只看该作者
表示这个函数没有使用,提供两种方法处理1、某度搜索[Keil]如何消除有未调用的函数而出现的警告,有教程我就不写了;2、注释掉未使用函数
回复

使用道具 举报

5#
ID:739545 发表于 2020-7-21 18:55 | 只看该作者
有时候调用的函数中有嵌套函数keil也会报这种错误。需要对keil进行设置,避免这种报错
回复

使用道具 举报

6#
ID:808700 发表于 2020-7-28 17:11 | 只看该作者
这个关系不大吧。。你看着不舒服,就注释掉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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