Şimdi Ara

PICkit™2 Firmware'ini PIC18F25K50'ye uyarlarken yaşadığım sorunlar

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
309
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba.

    PICkit™2 nin firmware hex dosyasını PIC18F25K50'ye göre derlemek için sigorta ayarlarını değiştirip build yapınca
    "'PROG_SWITCH' has not been defined" hatası alıyorum. io_cfg dosyasında PROG_SWITCH için port tanımlaması yapılı. Ki kaynak proje dosyasını hiç oynamadan build all yapınca sorunsuz derliyor. Ancak sigortaları değiştirip, processor'u PIC18F25k50 yapıp build deyince bu hata ortaya çıkıyor.

    quote:


    Release build of project `C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\PICkit2Bootloader.mcp' started.
    Language tool versions: mpasmwin.exe v5.50, mplink.exe v4.48, mcc18.exe v3.46, mplib.exe v4.48
    Sat Oct 21 16:18:27 2023
    ----------------------------------------------------------------------
    Clean: Deleting intermediary and output files.
    Clean: Deleted file "C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\_output\usbdsc.o".
    Clean: Done.
    Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.46\bin\mcc18.exe" -p=18F25K50 /i"C:\Program Files (x86)\Microchip\mplabc18\v3.46\h" -I"C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2" "usbdsc.c" -fo="C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\_output\usbdsc.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\autofiles\usbdsc.c:196:Warning [2054] suspicious pointer conversion
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\autofiles\usbdsc.c:196:Warning [2054] suspicious pointer conversion
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\autofiles\usbdsc.c:198:Warning [2054] suspicious pointer conversion
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\autofiles\usbdsc.c:198:Warning [2054] suspicious pointer conversion
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\autofiles\usbdsc.c:198:Warning [2054] suspicious pointer conversion
    Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.46\bin\mcc18.exe" -p=18F25K50 /i"C:\Program Files (x86)\Microchip\mplabc18\v3.46\h" -I"C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2" "boot_main.c" -fo="C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\_output\boot_main.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\boot_main.c:166:Error [1105] symbol 'PROG_SWITCH' has not been defined
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\boot_main.c:166:Error [1101] lvalue required
    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\boot_main.c:171:Error [1105] symbol 'PROG_SWITCH' has not been defined
    Halting build on first failure as requested.
    ----------------------------------------------------------------------
    Release build of project `C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\PICkit2Bootloader.mcp' failed.
    Language tool versions: mpasmwin.exe v5.50, mplink.exe v4.48, mcc18.exe v3.46, mplib.exe v4.48
    Sat Oct 21 16:18:27 2023
    ----------------------------------------------------------------------
    BUILD FAILED



    Kullandığım sigortalar, eski sigortaların önüne // atarak onları devre dışı bırakıp yeni sigortalar girdim.
    quote:


    /** C O N F I G U R A T I O N B I T S **************************************/

    //#pragma config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2 // CONFIG1L
    //#pragma config FOSC = HSPLL_HS, FCMEM = OFF, IESO = OFF // CONFIG1H
    //#pragma config PWRT = ON, BOR = OFF, BORV = 21, VREGEN = ON // CONFIG2L
    //#pragma config WDT = OFF, WDTPS = 32768 // CONFIG2H
    //#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = ON // CONFIG3H
    //#pragma config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF, DEBUG = OFF// CONFIG4L
    //#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
    //#pragma config CPB = OFF, CPD = OFF // CONFIG5H
    //#pragma config WRT0 = ON, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
    //#pragma config WRTB = ON, WRTC = OFF, WRTD = OFF // CONFIG6H
    //#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
    //#pragma config EBTRB = OFF // CONFIG7H


    // CONFIG 1L
    #pragma config PLLSEL = PLL3X // 3X PLL multiplier selected
    #pragma config CFGPLLEN = ON // PLL turned on during execution
    #pragma config CPUDIV = NOCLKDIV // 1:1 mode (for 48MHz CPU)
    #pragma config LS48MHZ = SYS48X8 // Clock div / 8 in Low Speed USB mode
    // CONFIG 1H
    #pragma config FOSC = INTOSCIO // HFINTOSC selected at powerup, no clock out
    #pragma config PCLKEN = OFF // Primary oscillator driver
    #pragma config FCMEN = OFF // Fail safe clock monitor
    #pragma config IESO = OFF // Internal/external switchover (two speed startup)
    // CONFIG 2L
    #pragma config nPWRTEN = ON // Power up timer (typically 64.4 ms)
    // #pragma config BOREN = OFF // BOR disabled
    #pragma config BOREN = SBORDIS // BOR enabled in HW, control from firmware disabled
    #pragma config BORV = 285 // BOR voltage 2.85V
    #pragma config nLPBOR = OFF // Low Power BOR
    // CONFIG 2H
    #pragma config WDTEN = OFF // Watchdog Timer disabled in hardware
    #pragma config WDTPS = 32768 // WDT postscalar
    // CONFIG 3H
    #pragma config MCLRE = OFF // MCLR function disabled (RE3 enabled)
    #pragma config SDOMX = RC7 // SDO function location
    #pragma config T3CMX = RC0 // Timer clock input location
    #pragma config PBADEN = OFF // Port B Digital/Analog Powerup Behavior
    #pragma config CCP2MX = RC1 // CCP2 output at RC1
    // CONFIG 4L
    #pragma config XINST = OFF // Extended instruction set
    #pragma config LVP = OFF // Low voltage programming
    #pragma config STVREN = ON // Stack overflow reset
    // CONFIG 5L
    #pragma config CP0 = OFF // Block 0 not code protected
    #pragma config CP1 = OFF // Block 1 not code protected
    #pragma config CP2 = OFF // Block 2 not code protected
    #pragma config CP3 = OFF // Block 3 not code protected
    // CONFIG 5H
    #pragma config CPD = OFF // EEPROM not code protected
    #pragma config CPB = OFF // Boot block not code protected

    #pragma config WRT0 = ON, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
    #pragma config WRTB = ON, WRTC = ON, WRTD = OFF // CONFIG6H
    #pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
    #pragma config EBTRB = OFF // CONFIG7H


    Hata aldığım (editlediğim) project dosyaları:
    https://disk.yandex.com.tr/showcaptcha?cc=1&mt=2A3731995EE97F312BBC53610739CFAF4A0397E476D4BCE6D8946D98D3D59E8EB68797F4C420C738D54DC813862A6D51FC260EEB3E1193094FD32F55A3BD9BD3A0410113AF1DA073332EE389260B7D2F8636910FCE0AAF29316C7B006E56A65300B7F62751A7654C2B5AE86C62121E1B&retpath=aHR0cHM6Ly9kaXNrLnlhbmRleC5jb20udHIvZC9nalZtYUM3QWVXTjFndz8%2C_d71d5e4bfb17d00a2d49d246ca38c5bc&t=2/1697895389/370c3e60988d9bf1944f7b7dde8484b6&u=ae3dfa72-d1eeee4b-181fb795-96938742&s=63c41961119dbcea6b4db7069d3acbb9

    Pickit2 v2.32 firmware kaynak kodu:
    https://ww1.microchip.com/downloads/en/DeviceDoc/FirmwareV2-32-00.zip

    Bu da PIC18d25K50'ye uyarlanmış PICkit2 firrmware kaynak kodu:
    http://kair.us/projects/pk2m_programmer/FirmwareV23200_25K50.zip
    Yalnız bazı pin çıkışları orjinalden farklı olduğu için doğrudan kıullanamıyorum.



    < Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 21 Ekim 2023; 16:36:27 >







  • Resimde (2) numara ile gösterilen satırı comment edip deneyebilirmisiniz.


    boot_main.c içerisindeki 166. satır.


    Mplab kullanmadığım için benim deneme imkanım bulunmuyor.



    PICkit&amp;#8482;2 Firmware&amp;#39;ini PIC18F25K50&amp;#39;ye uyarlarken yaşadığım sorunlar
  • rafet32 kullanıcısına yanıt
    Teşekkür ederim.

    Yeni bir yaklaşım geliştirmeye karar verdim. Sigorta ayarları bootloader içinde tutuluyor. Ana programda sigorta ayarı yok.
    Ben JAKA'nın (Jaarrus Kairus) bootloader'ına hiç dokunmayacağım. (Bu switch hatası JAKA'nın bootloader'ını derlerken çıkmıştı. )

    Port yapılandırmaları ana program içinden yapılıyor. Benim bootloader'ı kurcalamamın gereği yok gibi. Hazır yapılmış bootloader'ı olduğu gibi kullanayım gitsin. Kristal işini sonra hallederim, şimdilik önceliği yok.

    PIC18F25K50'nin comparator bitleri biraz farklı olduğu için orada bir hata aldım. 2550'de comparator yapılandırma registeri CMCON, voltaj referansı registeri CVRCON. bu registerlar 25K50'de olmadığı(25K50'de bu registerları değiştirmişler.) için hata aldım.

    İlk hatayı mevcut satırları iptal edip VREFCON= 0x00 yazarak atlattım. (JAKA böyle yapmış.)


    quote:


    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\user\pickit.c:471:Error [1105] symbol 'CMCON' has not been defined

    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\user\pickit.c:471:Error [1101] lvalue required

    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\user\pickit.c:472:Error [1105] symbol 'CVRCON' has not been defined

    C:\Users\acer.acer-Bilgisayar\Desktop\FirmwareV2\user\pickit.c:472:Error [1101] lvalue required


    Şimdi comprator hatası ileriki satırlarda(1171, 1172 ve 1230, 1231) çıktı.
    Orjinal kod şu şekilde:
    quote:

    CMCON = 0x2E; // C2 inverted, C2 Vin- = RA2 (C1 Vin- = RA3) Mode = 110
    CVRCON = 0xA5; // CVref = 2.0V @ Vdd = 5.0V

    Burayı 25K50'ye göre yazmam gerekiyor. Aldım elime kağıdı ve kalemi. 25k50'nin comparatorlarını aynı moda getirmeye çalışıyorım.
    Kod içinde bahsi geçen 2550'deki mode = 110 şu şekilde:

    PICkit&amp;#8482;2 Firmware&amp;#39;ini PIC18F25K50&amp;#39;ye uyarlarken yaşadığım sorunlar

    Bir de 1183 ve 1184. satırlarda CMIF ve CMIE hataları çıktı.



    < Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 22 Ekim 2023; 10:24:14 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.