KEILgcc编译器初始化警告警告!

&&&&&&&&Keil C编译器常见警告与错误信息的解决方法
正在努力加载播放器,请稍等…
正在努力加载播放器
大小:26.51KB&&所需金币:50
&& & 金币不足怎么办?
下载量:-次 浏览量:121次
贡献时间: 23:00:00
文档标签:
已有-位用户参与评分
同类热门文档
你可能喜欢
看过这篇文档的还看过
阅读:953&&下载:12
阅读:251&&下载:2
阅读:229&&下载:1
阅读:1289&&下载:1
阅读:63&&下载:0
阅读:106&&下载:0
阅读:56&&下载:0
阅读:59&&下载:0
阅读:84&&下载:0
阅读:65&&下载:0
该用户的其他文档
所需财富值:
50文件大小:26.51KB
您当前剩余财富值:&&
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
举报该文档侵犯版权。
例: /help.shtmlKeil C编译器常见警告与错误信息解决方法
> Keil C编译器常见警告与错误信息解决方法
Keil C编译器常见警告与错误信息解决方法
Keil C编译器常见警告与错误信息解决方法1. Warning 280:&i&:unreferenced local variable本文引用地址:说明局部变量i 在函数中未作任何的存取操作解决方法消除函数中i 变量的宣告2 Warning 206:&Music3&:missing function-prototype说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告3 Compling :C:\8051\MANN.CError:318:can&t open file &beep.h&说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#i nclude &beep.h&,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中4 Compling:C:\8051\LED.CError 237:&LedOn&:function already has a body说明LedOn( )函数名称重复定义即有两个以上一样的函数名称解决方法修正其中的一个函数名称使得函数名称都是独立的5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESSSEGMENT: ?PR?_DELAYX1MS?DELAY说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间解决方法去掉DelayX1ms( )函数或利用条件编译#if &..#endif,可保留该函数并不编译6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAPFROM : 0025HTO: 0025H说明外部资料ROM 的0025H 重复定义地址解决方法外部资料ROM 的定义如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在0x25 处并修正它7 WARNING 206:&DelayX1ms&: missing function-prototypeC:\8051\INPUT.CError 267 :&DelayX1ms &:requires ANSI-style prototype C:\8051\INPUT.C说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作宣告解决方法编写DelayX1ms 的内容编写完后也要作宣告或作外部宣告可在delay.h 的包含档宣告成外部以便其它函数调用8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOLSYMBOL:MUSIC3MODULE:C:\8051\MUSIC.OBJ(MUSIC)***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNALSYMBOL:MUSIC3MODULE:C:\8051\MUSIC.OBJ(MUSIC)ADDRESS:0018H说明程序中有调用MUSIC 函数但未将该函数的含扩档C 加入到工程档Prj 作编译和连接解决方法设MUSIC3 函数在MUSIC C 里将MUSIC C 添加到工程文件中去9 ***ERROR 107:ADDESS SPACE OVERFLOWSPACE: DATASEGMENT: _DATA_GOUP_LENGTH: 0018H***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNALSYMBOL: VOLUMEMODULE: C:\8051\OSDM.OBJ (OSDM)ADDRESS: 4036H说明data 存储空间的地址范围为0~0x7f,当公用变量数目和函数里的局部变量如果存储模式设为SMALL 则局部变量先使用工作寄存器R2~R7 作暂存当存储器不够用时则会以data 型别的空间作暂存的个数超过0x7f 时就会出现地址不够的现象解决方法将以data 型别定义的公共变量修改为idata 型别的定义说明如对编译出错感兴趣的网友能否把你们常遇到的错误信息收集起来并提出最终的解决办法加以归纳以期共享10 定义了全局变量而没有外部External声明:reference made to erroneous externalRam空间不足:public refers to ignore segment外部变量:定义处不用加External,声明处要加External将以data 型别定义的公共变量修改为idata 型别的定义11 *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL定义了某某函数或全部变量在不同文件里面想调用它,却在包含头文件里面少了extern语句,或只有主程序和包含头文件没有(EXTERN......定义语句(函数)).如果调试时有些if结构里的语句符合条件没有执行,或者某些语句不符合条件也被执行,那是因为if和else里有相同的语句,编译的时候作优化处理了。
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一但是实在不知道怎,keil编译程序时显示样有这么一个警告,灰常感谢。_其它相关_备用数码问题网
但是实在不知道怎,keil编译程序时显示样有这么一个警告,灰常感谢。
编辑: 备用数码问题网 &&&来源:用户发布&&&发布时间:&&&查看次数:40
但是实在不知道怎哦呀,keil编译程序时显示样有这么一个警告,晕晕。
【探讨解答】
求助在keil编译时出现这个警告什么意思怎么解决啊?
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGM...这是个警告,编译是没有问题的,能产生hex文件的,就是你有些函数或者变量声明或者定义了,但是没有使用!基本不影响使用的如果要不报这个警告的话就把没用到的都删除就好了
用keil4编译时出现以下警告,一直看不明白什么意思...
Build target ’Target 1’ assembling STARTUP.A51... compiling LCD1602...前两个警告说你定义了两个函数,但从未调用过,最后一个警告又说调用的时候没找到其中的一个同名变量。
其它相关相关
更多相关内容
本站内容来自网友发布,本站无法保证其部分内容的正确性,请用户一定仔细辨别。
[] &&[联系QQ:885&971&98] &
沪ICP备号&KEIL declared implicitly 警告问题
#ifndef __BSP_SPI_H
#define __BSP_SPI_H
#include &bsp.h&
#ifdef HARD_SPI
//#define USE_SPI1
//#define USE_SPI2
#define USE_SPI3
#ifdef USE_SPI1
#define SPI_HARD
/* ?&&?SPI&&??&? GPIO???& */
#define RCC_SCK
RCC_APB2Periph_GPIOA
#define PORT_SCK
#define PIN_SCK
GPIO_Pin_5
#define RCC_MISO
RCC_APB2Periph_GPIOA
#define PORT_MISO
#define PIN_MISO
GPIO_Pin_6
#define RCC_MOSI
RCC_APB2Periph_GPIOA
#define PORT_MOSI
#define PIN_MOSI
GPIO_Pin_7
#ifdef USE_SPI2
#define SPI_HARD
/* ?&&?SPI&&??&? GPIO???& */
#define RCC_SCK
RCC_APB2Periph_GPIOB
#define PORT_SCK
#define PIN_SCK
GPIO_Pin_13
#define RCC_MISO
RCC_APB2Periph_GPIOB
#define PORT_MISO
#define PIN_MISO
GPIO_Pin_14
#define RCC_MOSI
RCC_APB2Periph_GPIOB
#define PORT_MOSI
#define PIN_MOSI
GPIO_Pin_15
#ifdef USE_SPI3
#define SPI_HARD
/* ?&&?SPI&&??&? GPIO???& */
#define RCC_SCK
RCC_APB2Periph_GPIOB
#define PORT_SCK
#define PIN_SCK
GPIO_Pin_3
#define RCC_MISO
RCC_APB2Periph_GPIOB
#define PORT_MISO
#define PIN_MISO
GPIO_Pin_4
#define RCC_MOSI
RCC_APB2Periph_GPIOB
#define PORT_MOSI
#define PIN_MOSI
GPIO_Pin_5
/* SPI or I2S mode selection masks */
#define SPI_Mode_Select
((uint16_t)0xF7FF)
#define I2S_Mode_Select
((uint16_t)0x0800)
/* SPI registers Masks */
#define CR1_CLEAR_Mask
((uint16_t)0x3040)
#define I2SCFGR_CLEAR_Mask
((uint16_t)0xF040)
/* SPI SPE mask */
#define CR1_SPE_Set
((uint16_t)0x0040)
#define CR1_SPE_Reset
((uint16_t)0xFFBF)
void bsp_InitSPIBus(void);
void bsp_spiWrite(uint8_t _ucByte);
uint8_t bsp_spiRead(void);
void bsp_SPI_Init(uint16_t _cr1);
然后编译器就是一大堆警告,
*** Using Compiler 'V5.06 update 4 (build 422)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Glacier'
compiling user_command.c...
compiling user_lib.c...
compiling main.c...
compiling pca9554a.c...
compiling app.c...
compiling pca9698.c...
compiling 24cxx.c...
compiling cat9555.c...
compiling spi_flash.c...
..\SoftRef\App\app_src\spi_flash.c(23): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_DISWR);
/* 发送禁止写入的命令,即使能软件写保护 */
..\SoftRef\App\app_src\spi_flash.c(46): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_SE);
/* 发送擦除命令 */
..\SoftRef\App\app_src\spi_flash.c(69): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_BE);
/* 发送整片擦除命令 */
..\SoftRef\App\app_src\spi_flash.c(100): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_AAI);
/* 发送AAI命令(地址自动增加) */
..\SoftRef\App\app_src\spi_flash.c(136): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(0x02);
/* 发送AAI命令(地址自动增加编程) */
..\SoftRef\App\app_src\spi_flash.c(155): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_DISWR);
..\SoftRef\App\app_src\spi_flash.c(182): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_READ);
/* 发送读命令 */
..\SoftRef\App\app_src\spi_flash.c(188): warning:
#223-D: function &bsp_spiRead& declared implicitly
*_pBuf++ = bsp_spiRead();
/* 读一个字节并存储到pBuf,读完后指针自加1 */
..\SoftRef\App\app_src\spi_flash.c(219): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_READ);
/* 发送读命令 */
..\SoftRef\App\app_src\spi_flash.c(226): warning:
#223-D: function &bsp_spiRead& declared implicitly
ucValue = bsp_spiRead();
..\SoftRef\App\app_src\spi_flash.c(511): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_RDID);
/* 发送读ID命令 */
..\SoftRef\App\app_src\spi_flash.c(512): warning:
#223-D: function &bsp_spiRead& declared implicitly
id1 = bsp_spiRead();
/* 读ID的第1个字节 */
..\SoftRef\App\app_src\spi_flash.c(583): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_WREN);
/* 发送命令 */
..\SoftRef\App\app_src\spi_flash.c(602): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_EWRSR);
/* 发送命令, 允许写状态寄存器 */
..\SoftRef\App\app_src\spi_flash.c(614): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_WRSR);
/* 发送命令, 写状态寄存器 */
..\SoftRef\App\app_src\spi_flash.c(631): warning:
#223-D: function &bsp_spiWrite& declared implicitly
bsp_spiWrite(CMD_RDSR);
/* 发送命令, 读状态寄存器 */
..\SoftRef\App\app_src\spi_flash.c(632): warning:
#223-D: function &bsp_spiRead& declared implicitly
while((bsp_spiRead() & WIP_FLAG) == SET);
/* 判断状态寄存器的忙标志位 */
..\SoftRef\App\app_src\spi_flash.c: 17 warnings, 0 errors
compiling bsp_led.c...
compiling bsp.c...
compiling bsp_key.c...
compiling bsp_timer.c...
compiling bsp_usart.c...
compiling bsp_iic_gpio.c...
compiling bsp_spi_cs.c...
..\Bsp\bsp_src\bsp_spi_cs.c(36): warning:
#223-D: function &bsp_SPI_Init& declared implicitly
bsp_SPI_Init(SPI_Direction_2Lines_FullDuplex | SPI_Mode_Master | SPI_DataSize_8b
..\Bsp\bsp_src\bsp_spi_cs.c: 1 warning, 0 errors
compiling bsp_spi_gpio.c...
compiling bsp_spi.c...
compiling stm32f10x_dma.c...
compiling misc.c...
compiling stm32f10x_exti.c...
compiling stm32f10x_gpio.c...
compiling stm32f10x_spi.c...
compiling stm32f10x_rcc.c...
compiling stm32f10x_usart.c...
compiling stm32f10x_fsmc.c...
compiling stm32f10x_tim.c...
compiling core_cm3.c...
compiling system_stm32f10x.c...
assembling startup_stm32f10x_md.s...
compiling stm32f10x_it.c...
linking...
Program Size: Code=5232 RO-data=268 RW-data=4228 ZI-data=1204
FromELF: creating hex file...
&.\Objects\STM32F103.axf& - 0 Error(s), 18 Warning(s).
Build Time Elapsed:
问题在哪里呢,declared implicitly,查阅一下就知道这个是隐式定义的意思,而网上很多的解释是函数没申明,然后我就被误导了
后来实际查阅它的意思,发现问题,就是我给这个头文件整个加了一个条件编译:#ifdef HARD_SPI
而它的定义是在其他的文件,这样编译器就不能接受了,,解决办法有两种,一种是条件编译的范围不要包含函数原型,另一种就是把定义放在一个文件里面。
至于原因嘛,不懂编译器原理,没法给出解释。。。
第一次写,仅为记录,不喜勿喷,欢迎指导,谢谢~///(^v^)\\~

我要回帖

更多关于 抑制编译器警告 的文章

 

随机推荐