首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从xc32 2.10迁移到2.15时出现链接器错误

从xc32 2.10迁移到2.15时出现链接器错误
EN

Stack Overflow用户
提问于 2019-03-14 00:38:44
回答 1查看 281关注 0票数 1

由于我无法追踪的原因,2.10和2.15之间的链接器似乎有一些实质性的差异。在用"extern“修复了一些多个定义之后,我已经到达了一个点,我只是对什么是不同的感到困惑。我的函数代码可以在2.10中工作,但是在2.15中有一些向量冲突。

代码语言:javascript
复制
/Applications/microchip/xc32/v2.15/bin/xc32-gcc -mprocessor=32MZ2048EFH144 -DXPRJ_default=default -legacy-libc -Wl,--defsym=_min_heap_size=65536,--no-code-in-dinit,--no-dinit-in-serial-mem -o bin/serial-r312-flash.elf obj/flash_interrupts.o obj/flash_main.o         
obj/main.o: In function `__vector_dispatch_24':
main.c:(.vector_24+0x0): multiple definition of `__vector_dispatch_24'
obj/flash_interrupts.o:interrupts.c:(.vector_24+0x0): first defined here
obj/flash_main.o: In function `__vector_dispatch_9':
main.c:(.vector_9+0x0): multiple definition of `__vector_dispatch_9'
obj/flash_interrupts.o:interrupts.c:(.vector_9+0x0): first defined here
/Applications/microchip/xc32/v2.15/bin/bin/gcc/pic32mx/4.8.3/../../../../bin/pic32m-ld: Link terminated due to previous error(s).
collect2: error: ld returned 255 exit status
make: *** [flash] Error 255

我曾尝试将向量设为externs,但这丝毫没有帮助。

代码语言:javascript
复制
//interrupt.h
extern void __attribute__((vector(_TIMER_2_VECTOR), interrupt(ipl7AUTO), nomips16))SampleTimerHandler(void);

//interrupt.c
void __attribute__((vector(_TIMER_2_VECTOR), interrupt(ipl7AUTO), nomips16)){}

在main.c中,我基本上有一个循环。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 00:50:22

试着这样定义你的ISR:

void __ISR(_USB_VECTOR, IPL1SOFT) USB_ISR() {

使用-Wall在我的基础上进行干净的构建。此外,我认为nomips16是新的默认设置。

编辑:另请参阅注释。显然,试图在头文件中重新声明ISR是一个促成因素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55147003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档