你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

[复制链接]
梅子-395796 提问时间:2013-9-13 10:23 /
项目工程里使用了RTX实时内核,包含了RTX.lib的库文件,其它关于添加文件到工程目录,初始化等都按常规方式操作,最后编译说提示如下错误信息:
linking...
.\STM3210E-EVAL\STM3210E-EVAL.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by hal_cm3.o and stm32f10x_it.o).
.\STM3210E-EVAL\STM3210E-EVAL.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by hal_cm3.o and stm32f10x_it.o).
.\STM3210E-EVAL\STM3210E-EVAL.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by hal_cm3.o and stm32f10x_it.o).
.\STM3210E-EVAL\STM3210E-EVAL.axf: Not enough information to list image symbols.
.\STM3210E-EVAL\STM3210E-EVAL.axf: Not enough information to list the image map.
.\STM3210E-EVAL\STM3210E-EVAL.axf: Finished: 2 information, 0 warning and 3 error messages.
Target not created

        把stm32f10x_it.c文件里的SVC_Handler、PendSV_Handler、SysTick_Handler三个函数注释掉,则编译时不报错,但程序在硬件上运行不起来,烦请各高手指教!!!

收藏 1 评论7 发布时间:2013-9-13 10:23

举报

7个回答
winamp123 回答时间:2013-9-13 10:34:01

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

stm32f10x_it.c中的中断处理是标准的。hal_cm3.c这个文件做什么的,注释到里面的定义看看。
fengye5340 回答时间:2013-9-13 10:55:38

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

楼主的HAL_CM3是从哪里来的,把里面的SVC_Handler、PendSV_Handler、SysTick_Handler 注释掉才对,stm32f10x_it.C里面的中断函数时不能注释掉的。CMSIS里面的是 core_cm3.c,你看看hal_cm3是否是这个修改的呢?
回答时间:2013-9-13 13:01:33

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

hal_cm3是什么函数,它和stm32f103_it有函数重复定义,你好好检查,还有你说的那个库文件,没法看底层,可能也会有重定义。
wenshijian 回答时间:2013-9-13 16:56:15

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

这是函数重定义,因为你的相关头文件互相包含,导致相关定义多次被编译,导致MDK认为重定义了。
建议重新梳理你的头文件,把重复包含的删掉
zykzyk-93033 回答时间:2013-9-14 09:05:05

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

定义文件的问题。
dzc2001 回答时间:2013-9-14 15:49:55

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

既然是.o文件里链接出的问题,那么就说明.c文件里重复定义了同一个函数名称。
把stm32f10x_it.c文件里的SVC_Handler、PendSV_Handler、SysTick_Handler三个函数注释掉
以上这个方法是可行的,说明你的程序还是有问题。跑不起来跟前面这个问题没关系
story_xjj 回答时间:2013-9-16 14:44:36

RE:关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

函数名被重复定义,因为你使用了RTX,stm32f10x_it.c中这几个函数你必须注释掉,要不RTX就没法运行了,如果不能运行应该是你的程序有点问题,是不是RTX没有正常初始化啊,或者你没用RTX却挂了它的库,不知道你程序啥样的。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版