usb_device.c文件出现微芯片问题,出现无法解决的错误

usb_device.c文件出现微芯片问题,出现无法解决的错误,c,pic,microchip,C,Pic,Microchip,问题是这些错误 我没有接触过这些文件,只是下载了遗留的mla并使用了这些文件。所以我假设我的目录在某种程度上存在问题。 我有microchip/include文件的路径和一些代码。因此,现在当我建立项目时,我遇到了这些问题。我尝试过使用链接器文件夹更改路径,但似乎没有任何效果 我知道这些函数都在usb_device_local.h文件中,并且包含了它,但仍然没有 im使用mplabx v5.15和xc32编译器v2.15。也是一个旧的pic32mx build/default/productio

问题是这些错误

我没有接触过这些文件,只是下载了遗留的mla并使用了这些文件。所以我假设我的目录在某种程度上存在问题。 我有microchip/include文件的路径和一些代码。因此,现在当我建立项目时,我遇到了这些问题。我尝试过使用链接器文件夹更改路径,但似乎没有任何效果

我知道这些函数都在usb_device_local.h文件中,并且包含了它,但仍然没有

im使用mplabx v5.15和xc32编译器v2.15。也是一个旧的pic32mx

build/default/production/_ext/2021492214/usb_device.o: In function `_USB1Interrupt':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:887: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:937: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:995: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBStdSetCfgHandler':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2180: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBStdGetDscHandler':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2218: undefined reference to `device_dsc'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2218: undefined reference to `device_dsc'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2226: undefined reference to `USB_CD_Ptr'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2226: undefined reference to `USB_CD_Ptr'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2242: undefined reference to `USB_SD_Ptr'
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2242: undefined reference to `USB_SD_Ptr'
build/default/production/_ext/2021492214/usb_device.o: In function `USBSuspend':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2437: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBWakeFromSuspend':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2463: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBCtrlTrfSetupHandler':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2657: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBCheckStdRequest':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:2879: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o: In function `USBStdFeatureReqHandler':
c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:3041: undefined reference to `USER_USB_CALLBACK_EVENT_HANDLER'
build/default/production/_ext/2021492214/usb_device.o:c:/microchip_solutions_v2013-06-15/microchip/usb/usb_device.c:3071: more undefined references to `USER_USB_CALLBACK_EVENT_HANDLER' follow
collect2.exe: error: ld returned 255 exit status

通过查看您正在使用的编译器以及本教程的制作日期,我相信本教程的某些部分不仅已经过时,而且主/中断代码将与您正在使用的PIC和编译器类型不兼容。(因此,即使你能摆脱这些错误,你也只能得到更多,除非你知道自己在做什么!)

但是,如果您正确地遵循了教程,并从教程中添加了
HardwareProfile.h
usb\u device.c
usb\u descriptors.c
main.c
文件(除了
interrupt
main.c
中的
config
内容,因为它们与PIC32不兼容),它应该能够成功构建,尽管有一堆不相关的
PLIB
警告

文件结构应如下所示:

usb_descriptor.c
main.c
HardwareProfile.h
usb_config.h
都应该是您自己创建的.c文件,通过
New-->c源文件
添加到项目中,并从教程中添加代码。这些文件应该存在于项目文件夹中

usb\u device.c
usb\u function\u cdc.c
应来自microchip mla文件夹

正如本教程所述,尽管不是很清楚,但必须正确设置include目录

要执行此操作,请转到项目选项,然后:

xc32(全局选项)-->Common include dirs

设置以下内容:

(无论在哪里安装MLA,我的可能都是不同的版本)

对我来说也是如此

xc32作为通用-->预处理器包括目录

xc32作为通用-->汇编程序包括目录


Microchip建议其
32位PIC32客户(PIC32MM除外)应使用MPLAB Harmony集成软件框架,该框架包括TCPIP、USB、图形、文件系统等
。如果您使用的是PICMM,那么我建议您使用最新版本的MLA,而不是2013版本,您可以在页面上找到。如果没有,我建议您学习他们的。

您是否正确链接了所有内容?我一直在遵循本指南,并查看了几个示例,我包括了相同的路径,并完成了自述文件中的说明。是否有
Microchip/lib
文件夹或类似的东西?我自己无法查看实际代码,从我现在的位置看不,首先是它的微芯片/USB,TCPIP堆栈,Common。不同的技术有不同的用途。然后是一个微芯片/包含/USB。。。使用大致相同的结构只是为了完整性,您还可以提及您使用的MPLAB或MPLAB x的版本以及编译器和版本吗?我使用的是一个旧的pic32mx处理器,正在重写以前添加usb兼容性的项目中的代码。我应该尝试一个旧的编译器,还是在出现问题时尝试修复它们?。你写的大部分内容我都做了,但有些部分我还在等待。我会仔细检查一下,然后做同样的事情。非常感谢您的快速响应。我可以补充一点,我已经尝试过mla中的示例项目,这些项目构建得很好,但有一些警告,它们似乎是用我的版本xc32 v2.05编译的,而我的版本xc32 v2.05离你的版本不远。MLA的东西会被编译,但是教程中的东西可能不会(特别是
main.c
中的一些东西)说使用更高版本的MLA可能更好(有一个2018版本)或者转到Harmony,它有更大的支持。是的,我只是以教程为基础,为我的处理器获取大量代码并根据usb文档进行编辑。我尝试了更高版本的mla,但它只支持pic32mm。从我所看到的来看,雅致看起来不错,我会再给它几天时间,看看它是什么样子。