Проблема с микрочипом файла usb_device.c, ошибки, которые я не могу решить - PullRequest
0 голосов
/ 26 апреля 2019

Ну, проблема в этих ошибках

Я не трогал эти файлы, а просто скачал устаревшую mla и использовал файлы. Итак, я предполагаю, что есть проблема с моими каталогами. У меня есть путь к микрочипу / включаемому файлу, и часть кода работает. Так что теперь, когда я строю проект, я сталкиваюсь с этими проблемами. Я пытался изменить пути, используя папки компоновщика, но, похоже, ничего не работает.

Я знаю, что функции находятся в файле usb_device_local.h и включены в него, но все еще ничего

я использую mplabx v5.15 и xc32 compiler 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

1 Ответ

1 голос
/ 26 апреля 2019

Глядя на компилятор, который вы используете, и на дату создания этого учебного пособия, я полагаю, что некоторые учебные пособия не только устарели, но и код основного / прерывания будет несовместим с типом PIC и компилятор, который вы используете. (Так что даже если бы вы могли избавиться от этих ошибок, вы бы получили больше, если не знаете, что делаете!)

Однако, если вы правильно следовали учебнику и добавили файлы HardwareProfile.h, usb_device.c, usb_descriptors.c и main.c из учебника (кроме interrupt и #config в main.c как они будут несовместимы с PIC32), он должен успешно сработать, хотя и с кучей несвязанных PLIB предупреждений.

Структура файла должна выглядеть следующим образом:

File structure

usb_descriptors.c, main.c, HardwareProfile.h, usb_config.h должны быть вашими собственными .c файлами через New --> C Source File для вашего проекта и добавления кода из учебника. Затем они должны существовать в папке вашего проекта.

Принимая во внимание, что usb_device.c и usb_function_cdc.c должны быть из папки microchip mla

Как говорится в учебнике, хотя и не очень ясно, вы должны правильно установить каталоги включения.

Для этого перейдите в Параметры проекта, затем:

xc32 (Global Options) --> Common include dirs

установить следующее:

Include Directories

(Whereever MLA установлен, у меня, вероятно, другая версия)

И сделать то же самое для

xc32-as General --> Preprocessor Include directories и

xc32-as General --> Assembler Include directories

Microchip рекомендует на их сайте 32-bit PIC32 customers (except for PIC32MM) should use MPLAB Harmony Integrated Software Framework which includes TCPIP, USB, Graphics, File systems and more. Если вы используете PICMM, я бы порекомендовал последнюю версию MLA, а не версию 2013 года, которую вы можете найти на странице Microchip MLA . Если нет, я бы порекомендовал изучить их плагин гармонии .

...