Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PIC18][Hi-Tech] Błędy kompilatora

milik 26 Lip 2010 18:44 2248 2
  • #1 26 Lip 2010 18:44
    milik
    Poziom 23  

    Witam
    Od dwóch dni próbuje skompilować projekt USB HID oparty o PIC18F4550. Problemem jest firmware dla PICa. Zainstalowałem MPLAB oraz kompilator HI-TECH C. Sam kompilator działa poprawnie, sprawdziłem to prostym programem. Nie potrafię znaleźć przyczyny błędów. Ciekawe jest to że definicje o które krzyczy kompilator znajdują się w pliku nagłówkowym PIC18F4550.h, znajdują się tam też inne definicje które kompilator już widzi. Bardzo proszę o sugestie.
    Jeszcze jedno o czym nie wspomniałem, jeśli wystąpił błąd to po drugim naciśnięciu Build całość kompiluje się bez problemu. Problem z linkierem ?
    Pozdrawiam
    milik


    Strona projektu.

    http://www.waitingforfriday.com/index.php/Ope...c_HID_devices_based_on_the_PIC18F_and_Windows

    Czysty projekt.

    http://www.waitingforfriday.com/images/3/30/U...dCommunication_reference_firmware_1_0_0_0.zip

    Code:
    Build F:\USBtest\usbGenericHidCommunication reference firmware 1_0_0_0 for device 18F4550
    
    Using driver C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe

    Make: The target "F:\USBtest\main.p1" is out of date.
    Executing: "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe" --pass1 F:\USBtest\main.c -q --chip=18F4550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"
    Error   [192] F:\USBtest\main.c; 117.42 undefined identifier "SUSPND"
    Error   [192] F:\USBtest\main.c; 120.1 undefined identifier "RD1"
    Error   [192] F:\USBtest\main.c; 125.1 undefined identifier "RD1"
    Error   [192] F:\USBtest\main.c; 130.1 undefined identifier "RD2"
    Error   [192] F:\USBtest\main.c; 144.1 undefined identifier "RD3"
    Error   [192] F:\USBtest\main.c; 374.1 undefined identifier "RD0"
    Make: The target "F:\USBtest\usb_device.p1" is out of date.




    Executing: "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe" --pass1 F:\USBtest\usb_device.c -q --chip=18F4550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"
    Error   [192] F:\USBtest\usb_device.c; 722.1 undefined identifier "PKTDIS"
    Error   [192] F:\USBtest\usb_device.c; 902.5 undefined identifier "SE0"
    Error   [192] F:\USBtest\usb_device.c; 941.4 undefined identifier "SUSPND"
    Error   [192] F:\USBtest\usb_device.c; 1916.1 undefined identifier "PKTDIS"
    Error   [192] F:\USBtest\usb_device.c; 2547.4 undefined identifier "PKTDIS"
    Make: The target "F:\USBtest\usb_function_hid.p1" is out of date.
    Executing: "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe" --pass1 F:\USBtest\usb_function_hid.c -q --chip=18F4550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"
    Make: The target "F:\USBtest\usbcallback.p1" is out of date.
    Executing: "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe" --pass1 F:\USBtest\usbcallback.c -q --chip=18F4550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"
    Error   [192] F:\USBtest\usbcallback.c; 369.1 undefined identifier "RESUME"
    Make: The target "F:\USBtest\usb_descriptors.p1" is out of date.
    Executing: "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.64\bin\picc18.exe" --pass1 F:\USBtest\usb_descriptors.c -q --chip=18F4550 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"

    ********** Build failed! **********

    0 2
  • #2 26 Lip 2010 23:03
    Urgon
    Poziom 36  

    AVE...

    Przyczyną błędów kompilatora jest to, iż on nie zna prawidłowych nazw rejestrów wewnętrznych mikrokontrolera.
    Ten fragment:

    Code:
    Error   [192] F:\USBtest\usb_device.c; 722.1 undefined identifier "PKTDIS"
    
    Error   [192] F:\USBtest\usb_device.c; 902.5 undefined identifier "SE0"
    Error   [192] F:\USBtest\usb_device.c; 941.4 undefined identifier "SUSPND"
    Error   [192] F:\USBtest\usb_device.c; 1916.1 undefined identifier "PKTDIS"
    Error   [192] F:\USBtest\usb_device.c; 2547.4 undefined identifier "PKTDIS

    odnosi się do rejestru UCON: USB CONTROL REGISTER.
    Fragment:
    Code:
    Error   [192] F:\USBtest\main.c; 120.1 undefined identifier "RD1"
    
    Error   [192] F:\USBtest\main.c; 125.1 undefined identifier "RD1"
    Error   [192] F:\USBtest\main.c; 130.1 undefined identifier "RD2"
    Error   [192] F:\USBtest\main.c; 144.1 undefined identifier "RD3"
    Error   [192] F:\USBtest\main.c; 374.1 undefined identifier "RD0"

    odnosi się do portów I/O używanych przez ten program.
    Z kolei fragment
    Code:
    Warning [111] F:\USBtest\Compiler.h; 140.45 redefining preprocessor macro "Nop"
    
    Warning [111] F:\USBtest\Compiler.h; 141.36 redefining preprocessor macro "ClrWdt"
    Warning [111] F:\USBtest\Compiler.h; 142.38 redefining preprocessor macro "Reset"

    sugeruje, iż Twój kompilator C jest w innej wersji, niż kompilator, dla którego przygotowano program. Co by też wyjaśniało inne błędy. ClrWdt to polecenie występujące w C dla mikrokontrolerów i służące do kasowania licznika Watchdog. Co on robi, to sobie w nocie katalogowej PICa poczytaj...

    0
  • #3 17 Maj 2011 15:16
    milik
    Poziom 23  

    Pomogło instalacja najnowszego kompilatora ze strony Hi-Tech.
    Wszystkim zaangażowanym dziękuję za pomoc.

    0