这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » ARM常见错误及解决方法(二)

共4条 1/1 1 跳转至

ARM常见错误及解决方法(二)

工程师
2020-12-15 18:35:41     打赏

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;
修改:这只是说函数不会执行到这里,这种情况是上面代码有while1

#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”
}
修改:缺少返回值

欢迎跟帖留言~




关键词: error     常见     错误     解决     方法     修改    

高工
2020-12-15 21:12:58     打赏
2楼

学到了


工程师
2020-12-15 21:46:02     打赏
3楼

感谢分享


助工
2022-10-23 15:51:10     打赏
4楼
学到了,感谢分享!

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]