keil错误ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

发布者:学海飘香最新更新时间:2016-06-23 来源: eefocus关键字:keil  错误ERROR 手机看文章 扫描二维码
随时随地手机看文章
在利用Keil C51编程时,发现程序逻辑上没有错误,但在连接时却出现了错误,如下:

*** ERROR L107: ADDRESS SPACE OVERFLOW

    SPACE:   DATA   

    SEGMENT: ?DT?GMNS_3V4

    LENGTH: 0014H

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: RECEIVE_TIMER

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: DUAL_REC_BUF

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: LAST_SEND_TIME_COUNT

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: POW_STATUS

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: POW_STATE

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: GROUP_TEST

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: S_COUNT_P

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: R_COUNT_P

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: RING_JUDGE_STATEB1

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: RING_JUDGE_STATEB0

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAOXIN_CHECK_STATUS4

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAOXIN_CHECK_STATUS3

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAOXIN_CHECK_STATUS2

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAOXIN_CHECK_STATUS1

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAOXIN_CHECK_STATUS0

    SEGMENT: ?DT?GMNS_3V4

*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

    SYMBOL: YAO_XIN_COUNT

    SEGMENT: ?DT?GMNS_3V4

出现以上错误的原因主要是第一个原因,第一个原因导致了它下面所有错误,第一个原因是:

    ERROR L107: ADDRESS SPACE OVERFLOW

    SPACE:   DATA   

    SEGMENT: ?DT?GMNS_3V4

    LENGTH: 0014H

说明data空间已经不够用,原因是你可能有好多函数,而函数内部的局部变量又没有定义其空间,这种情况下,系统会将变量分配到你在Otions for Target 对话框里的设置的空间。如果你在下图所示中的 Memory Model 里设置成 Small:variables in DATA,则DATA空间很快便用完,导致data空间不够用。解决的办法有两种,一是通过更改Memory Model设置,可以设置成pdata或xdata,以便有足够大的空间,但这又带来新的问题,程序运行速度减慢,而且code代码也会加大,因为如果一个局部变量被存放在了xdata空间,汇编语言访问xdata空间的代码大小要比访问data空间的代码大,变量一旦很多,程序的代码也会逐渐增大;二是根据自己的要求设置变量的空间。所以这涉及到代码优化的问题,遇到具体问题时,在运行速度和代码大小之间取得适合自己的情况。

关键字:keil  错误ERROR 引用地址:keil错误ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT

上一篇:ISP和IAP两种编程方式有何区别?
下一篇:keil中StartUp.A51的重要性

推荐阅读最新更新时间:2024-03-16 14:58

Keil C51使用教程---代码效率(七)
C51程序编译生成汇编代码的效率,是由许多因素共同决定的,对于Keil C51,主要受以下两种因素影响: 第一节 存储模式的影响 存储模式决定了缺省变量的存储空间,而访问各空间变量的汇编代码的繁简程度决定了代码率的高低。 例如:一个整形变量i,如放于内存18H、19H空间,则++i的操作编译成四条语句: INC 0x19 MOV A,0x19 JNZ 0x272D INC 0x18 0x272D: 而如果放于外存空间0000H、0001H则++i的操作编译成九条语句: MOV DPTR,0001 MOVX A,@ DPTR INC A MOVX @ DPTR,A JNz #5 MOV OPTR,#0000 MOVX A
[单片机]
MSP432(Keil5)——9.ADC驱动
本次例程驱动了板载的ADC来读取一个模拟的角度传感器,大家可以在ADC读取中断里面换成其他的计算,具体引脚见程序代码。 adc.c #include adc.h void ADC_Init(void) { /* Initializing ADC (MCLK/1/4) */ MAP_ADC14_enableModule(); MAP_ADC14_initModule(ADC_CLOCKSOURCE_MCLK, ADC_PREDIVIDER_1, ADC_DIVIDER_4, 0); /* Configuring GPIOs (5.5 A0) */ MAP_GPIO_setAsPeripher
[单片机]
MSP432(<font color='red'>Keil</font>5)——9.ADC驱动
STM32 在 KEIL 下使用 SWV 输出调试信息
—— 使用STM32,个人认为 keil 还是首选 SWV 需要占用一个引脚 PB3/JTDO/TRACES WO 与 JTDO 复用,使用 SW 时,这一脚将被占用,作为 TRACES WO,一般常见仿真器直接支持 首先重写 fputc #include stdio.h int fputc(int c, FILE *f) { ITM_SendChar(c); return(c); } 就可以使用 printf 输出调试信息,但实际上我这么做失败了,初始化的时候不知道卡在了哪里,也不弄了,反正 ITM_SendChar 一样可以输出。 打开工程选项: - project - options for target - Debug 标
[单片机]
Keil模式设置和编程事项
深入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一。因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8类: 8051存储类型及存储区域 , 存储模式 , 存储器类型声明 , 变量类型声明 , 位变量与位寻址 ,特殊功能寄存器(SFR) ,C51指针 l 函数属性 具体说明如下(8031为缺省CPU)。 第一节 Keil C51扩展关键字 C51 V4.0版本有以下扩展关键字(共19个): _at_ idata sfr16 alien interrupt small bdata large _task_ Code bit pdata using reentrant xdata compact
[单片机]
keil4程序的某行断点设置问题,双击程序所在行没反应
最近要用到keil4 来设置断点,测试单片机延时时间,发现双击程序所在行没反应。 解决方案: 1.打开keil软件,选择 Source Group 1 2.右击 Source Group 1 3.选择 Options for Group ‘Source Group 1’, Generate Assembler SRC File 前面的勾去掉。
[单片机]
Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的。printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使之完成串口单字符发送工作即可。 注: 本文方法性内容主要来自《Keil MDK环境下使用printf函数的解决方法》与《STM32串口使用Printf()函数问题》。除使用c标准库外,还可以使用keil mdk提供的microLib,在STM32串口使用Printf()函数问题》一文有介绍,另外,该文同时也提到如果使用c标准库函数,则要避免链接使用半主机模式的函数,retarge.c文件中的#pragma import(__use
[单片机]
C51 keil v4 流水灯简单代码的编写
#include reg52.h #include intrins.h typedef unsigned char u8;/*char 为1字节,8位 */ typedef unsigned int u16; /*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535; 用u16,u8使代码的可移植性高 */ #define led P0 //sbit led=P0^0; //两种表示方式 void delay(u16 i) { while(i--); }//运用延时函数达到使led灯闪烁的目的 void main() { /* while(1) { led=1; delay
[单片机]
使用Keil软件编写汇编源程序应注意事项
1)一定要使用微软的txt文本编辑器,否则键入逗号时编译通不过。应该是这个样('),不该是这个样(,)。 2) 用数字做标号时,前面一定要加一个英文字母,否则编译通不过。 3) 有时编译通过的.asm源文件却不产生.hex文件!原因是keil软件的设置没有勾选 产生hex文件;另一个是存放.hex的文件夹中删除过其他的.hex 文件。 4) 用VU2新建文件键入源程序时,先键入程序部分,编译后,再键入注释部分;此外,不能用中文输入法输入分号,最好用大写输入程序部分及注释部分前面的分号,否则注释部分前面的分号显示不正确,编译通不过 5) 输入的标号应成对出现,无论是标号还是标号地址(跳转指令后面和标号相同的字符串)只要单独出
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved