找回密码
 立即注册

QQ登录

只需一步,快速开始

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

KEIL工作路径的设置

[复制链接]
跳转到指定楼层
楼主
ID:277276 发表于 2018-3-18 08:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
1  我建了一个CLOCK的文件夹(里面包含 output , src , project三个文件夹)
2  我在KEIL的Target的 output,和list文件设置路径都是上面的output , C51里面的路径设置是src
3  在src里面有 config.h , main.c , lcd1602.c , lcd1602.h 四个文件
4  config.h ,里面只包含了51头文件
    lcd1602.c  包含了config.h,lcd1602.h 头文件
    main.c 里包含config.h,lcd1602.h

5 程序都是OK的,但是报警告 uncalled segment ,ignored for overlay process
config.h
#ifndef _CONFIG_H
#define _CONFIG_H

/* 通用头文件 */
#include <reg52.h>
#include <intrins.h>

/* 数据类型定义 */
typedef  signed    char    int8;    // 8位有符号整型数
typedef  signed    int     int16;   //16位有符号整型数
typedef  signed    long    int32;   //32位有符号整型数
typedef  unsigned  char    uint8;   // 8位无符号整型数
typedef  unsigned  int     uint16;  //16位无符号整型数
typedef  unsigned  long    uint32;  //32位无符号整型数

/* 全局运行参数定义 */
#define SYS_MCLK   (11059200/12)  //系统主时钟频率,即振荡器频率÷12

/* IO引脚分配定义 */
sbit KEY_IN_1  = P2^4;  //矩阵按键的扫描输入引脚1
sbit KEY_IN_2  = P2^5;  //矩阵按键的扫描输入引脚2
sbit KEY_IN_3  = P2^6;  //矩阵按键的扫描输入引脚3
sbit KEY_IN_4  = P2^7;  //矩阵按键的扫描输入引脚4
sbit KEY_OUT_1 = P2^3;  //矩阵按键的扫描输出引脚1
sbit KEY_OUT_2 = P2^2;  //矩阵按键的扫描输出引脚2
sbit KEY_OUT_3 = P2^1;  //矩阵按键的扫描输出引脚3
sbit KEY_OUT_4 = P2^0;  //矩阵按键的扫描输出引脚4

sbit ADDR0 = P1^0;  //LED位选译码地址引脚0
sbit ADDR1 = P1^1;  //LED位选译码地址引脚1
sbit ADDR2 = P1^2;  //LED位选译码地址引脚2
sbit ADDR3 = P1^3;  //LED位选译码地址引脚3
sbit ENLED = P1^4;  //LED显示部件的总使能引脚

#define LCD1602_DB  P0   //1602液晶数据端口
sbit LCD1602_RS = P1^0;  //1602液晶指令/数据选择引脚
sbit LCD1602_RW = P1^1;  //1602液晶读写引脚
sbit LCD1602_E  = P1^5;  //1602液晶使能引脚

sbit DS1302_CE = P1^7;  //DS1302片选引脚
sbit DS1302_CK = P3^5;  //DS1302通信时钟引脚
sbit DS1302_IO = P3^4;  //DS1302通信数据引脚

sbit I2C_SCL = P3^7;  //I2C总线时钟引脚
sbit I2C_SDA = P3^6;  //I2C总线数据引脚

sbit BUZZER = P1^6;  //蜂鸣器控制引脚

sbit IO_18B20 = P3^2;  //DS18B20通信引脚

sbit IR_INPUT = P3^3;  //红外接收引脚


#endif



main.c

#include "config.h"
#include "lcd1602.h"

void main()
{

clock.zip

28.94 KB, 下载次数: 7

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:293702 发表于 2018-3-18 21:07 | 只看该作者
出现这个警告的原因一般是你调用了没有定义的函数
回复

使用道具 举报

板凳
ID:293803 发表于 2018-3-18 23:38 | 只看该作者
是你定义的那些函数没有调用,就是说你主函数里没有调用
回复

使用道具 举报

地板
ID:293995 发表于 2018-3-19 14:33 | 只看该作者
定义了某个函数,但并没有调用
回复

使用道具 举报

5#
ID:500218 发表于 2020-3-8 12:02 | 只看该作者
出现“uncalled segment ,ignored for overlay process”,意思是“未调用的段,覆盖进程忽略”。
就是对你发出警告:有一个没有调用的函数。说明白点:它是告诉你,有一个函数,你定义了,却没有
调用。比如:出现:
“*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

    SEGMENT: ?PR?LCDCLEARSCREEN?LCD1602

的警告,就是告诉你没有调用的这个函数的名字叫:
LCDCLEARSCREEN(),文件名为:"LCD1602"("LCD1602.c" 或
"LCD1602.h")。依此类推。
C51编译器是用于51单片机的,早在C51成立之初,51单片机的ROM是非常小的,
只有几K,所以,为了节省ROM空间,C51编译器对于你定义了但是没有调用
的函数会提出警告,意思是提醒你节能减排,不要浪费ROM空间。
这个警告你可以忽略,如果你不想忽略,那么就调用那个函数或者屏蔽掉那个
函数就行了。
想不显示这些提示:则可设置如下:
option for target --->bl51 misc --->disable warning ==这里写入16
回复

使用道具 举报

6#
ID:704622 发表于 2020-3-8 20:45 | 只看该作者
这个情况是没有调用到之前定义的函数,不影响运行吧。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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