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.

PIC 18f46k20, mplab i c18 błędy kompilacji.

zaxoniec 29 Cze 2017 09:55 1035 5
  • #1 29 Cze 2017 09:55
    zaxoniec
    Poziom 13  

    Dzień dobry. Bardzo prosze o pomoc .
    Robię sobie Cumulusa do Orica. (Taki emulator stacji dysków do starego 8 bitowego komputera ) . Mam problem ze skompilowaniem bootloadera do PIC 18F46K20.

    MPLab X IDE 3.65 błąd:

    Error - section 'sector_buffer_section' can not fit the section. Section 'sector_buffer_section' length=0x00000201
    Errors : 1

    Nistety nie znam się na tym kompletnie . Pierwszy raz mam do czynienia z PIC i MPLab . Gdyby mi to ktoś skompilował do HEX lub BIN byłbym bardzo wdzięczny.


    Kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 5
  • #3 29 Cze 2017 22:19
    zaxoniec
    Poziom 13  

    Dziękuje za linka . To znam. Czytam w międzyczasie i próbuje się douczyć. Ale tak jak pisałem, nie umiem tego zastosować w praktyce bo po prostu nigdy wcześniej nie miałem do czynienia z tym środowiskiem. Wiem już że problem jest

    #pragma udata sector_buffer_section
    uint8_t sector_buffer[512];

    But this should be exactly 0x200 (512 bytes). I assume you are using the MPLAB c18 compiler?

    0
  • Pomocny post
    #4 29 Cze 2017 23:13
    C0FFEE
    Poziom 14  

    Zmodyfikowany skrypt linkera:

    Kod: less
    Zaloguj się, aby zobaczyć kod

    0
  • #5 29 Cze 2017 23:21
    Marek_Skalski
    Moderator Projektowanie

    Problem polega na tym, że projekt i program był napisany pod MPLab z kompilatorem C18, a Ty używasz MPLab X i pewnie kompilatora XC8. O ile projekt z MPLab można zaimportować do MPLab X, to zmiany w kompilatorach były trochę większe. Na lepsze.
    Na moje wyczucie, pragma jest już zbędne i musisz tylko poinformować kompilator, że sector_buffer jest w sekcji udata, która jest zdefiniowana w skrypcie linkera.
    Nie wiem jak to będzie w XC8, ponieważ nigdy nie używałem 8-bitowych PICów, ale w przypadku 16-bitowych zapisuje się to przez atrybuty.
    Na przykład tak: unsigned int array1[PRODLEN/2] __attribute__((space(xmemory), aligned(32)));

    0
  • #6 03 Lip 2017 19:21
    zaxoniec
    Poziom 13  

    C0FFEE , dziękuje bardzo, linker pomógł , bootloader teraz kompiluje się bez problemu.

    Marek Skalski, projekt jest z 2011 roku wiec pewnie był pisany pod MP LAB ale autor projektu pisał że jest pod kompilator C18 i takiego używałem. Zresztą zainstalowałem wersje 8x MP LAB na drugim komputerze i był ten sam problem.
    Na razie wygląda że jest ok. Walczę dalej z interfejsem ;)

    PIC 18f46k20, mplab i c18 błędy kompilacji.

    0