L6218E XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
修改:1、寻找xxxx.o对应的.c/.s文件进行定义xxx或删除xxx
2、可能没有包含对应的.h文件
3、可能定义变量或函数的.c文件没有添加
4、调用的xxx变量或函数,而没有定义该变量或函数
#111-D main.c(175): warning: #111-D: statement is unreachable
return 0;
修改:这只是说函数不会执行到这里,这种情况是上面代码有while(1)
#188-D …\HARDWARE\INIT\Init.c(9): warning: #188-D: enumerated type mixed with another type(枚举类型与另一种类型混合)
|RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE);
修改:删除一个或将重名的更换另一个名字
#5 …\HARDWARE\TIME\time.h(16): error: #5: cannot open source input file “…/inc/datatypes.h”: No such file or directory
#include “…/inc/datatypes.h”
修改:找不到头文件,路径有问题或者是没有这个头文件
#256 …\SYSTEM\datatypes.h(20): error: #256: invalid redeclaration of type name “uint32_t” (declared at line 64 of “C:\Keil_v5\ARM\ARMCC\Bin…\include\stdint.h”)
typedef unsigned long uint32_t;
修改:重新定义了,所以注释掉或直接删除
#40 …\STM32F10x_FWBib\inc\stm32f10x.h(521): error: #40: expected an identifier
typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
修改:可能重复定义,将重复的注释或删除
#20 …\HARDWARE\TIME\Time.c(25): error: #20: identifier “uint” is undefined
uint Updata_Time;
NVIC_InitStructure.NVIC_IRQChannel = TIM8_CC_IRQn;
修改:1、没有定义这个关键字
2、可能是该变量里面的成员没有定义
3、在.c中定义了,.h添加extern
4、没有包含对应头文件
5、有定义这个关键字和包含了该定义的头文件,还会出现编译错误
6、“XXXXX”定义了,也在对应的头文件中声明了,在引用的文件中也引用了对应的头文件,这个就非常奇怪了,后来遇到了一种情况就是,这个声明头文件有问题,一般头文件开头,都要使用#ifndef __XXXX_H #define __XXXX_H,这样做的目的是为了防止多个头文件的存在,需要注意的是这里的__XXXX_H中的XXXX一定要跟这个头文件的名称一致,否则,这个头文件就是失败的,错误的,那么引用的时候,自然也会引用错误了。(这里来自:https://blog.csdn.net/ARM_Tutor/article/details/38333207)
#47-D …\HARDWARE\HAL\hal.h(236): warning: #47-D: incompatible redefinition of macro “Close_Uart1” (declared at line 60 of “…\HARDWARE\UART\uart.h”)
#define Close_Uart1() {UCSRB &= 0x6F;UCSRA &= 0x7F;}
修改:宏不兼容重新定义,即定义了两次或两次以上,修改名字或注释其中一个或删除一个
#147 …\HARDWARE\TIME\time.h(86): error: #147: declaration is incompatible with “uint16_t RX1_Erase” (declared at line 20)
extern unsigned int RX1_Erase ;
修改:(声明不兼容)可能存在重复定义,将其中一个注释就编译成功
#940-D …\HARDWARE\UART\Uart.c(268): warning: #940-D: missing return statement at end of non-void function “Uart1_Handler”
}
修改:缺少返回值
欢迎跟帖留言~