【STM8S】IAR外部中断报错Error[Li006]: duplicate definitions for “_interrupt_6“;

【STM8S】IAR外部中断报错Error[Li006]: duplicate definitions for "_interrupt_6";

这个错误是由于在两个目标文件(main.o)中重复定义了中断处理函数"_interrupt_6"导致的。

在编译过程中,IAR在每个函数定义中生成一个唯一的标识符(symbol),并将其保存在目标文件中。如果出现多个具有相同名称和签名的函数定义,则会导致重复定义错误。

可能的原因是,在项目中存在多个源文件,这些源文件都包含了对中断处理函数"_interrupt_6"的定义。这可能是由于误导或代码错误导致的。

解决此问题的一种方法是检查项目中的所有源文件,确保只有一个文件中定义了"_interrupt_6"函数,而其他文件没有重复定义。如果定义了多个相同名称的中断处理函数,只保留一个定义,删除其他重复定义。

另外,请确保中断处理函数的命名与中断向量表中对应中断的命名完全一致。如果中断向量表中的中断名称与函数定义的名称不匹配,也会导致重复定义错误。

最后,重新编译项目并确保没有其他重复定义错误出现。

在解决问题时,建议查看详细的编译器输出日志,以获取更多关于重复定义的具体信息,如重复定义的位置和其他相关错误提示,以便更好地排查和解决问题。

找到对应的服务函数,直接屏蔽库文件里边的
注释库函数
这样自己就可以找地方t贴上自己写的中断服务函数:
重写中断服务函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值