logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zlinkować dwa moduły w MPLINK przy błędzie sekcji 'PROG'?

Piorun2002 13 Maj 2005 00:01 972 4
REKLAMA
  • #1 1487752
    Piorun2002
    Poziom 15  
    Posty: 269
    Ocena: 25
    Uzywam CC5X i niestety tak sie rozpisalem ze kod przekroczyl mi 1K, wiec musialem go podzieli na dwa moduly.
    Podczas linkowania dostaje taki blad:
    MPLINK 3.92, Linker
    Copyright (c) 2005 Microchip Technology Inc.
    Error - section 'PROG' type is non-overlay and absolute but occurs in more than one input file.

    W pliku ModulA.C (z main()) ma tak zadeklarowana funkcje z ModuluB:

    extern page2 char getchar_eedata( char );

    A w drugim pliku ModulB.c, mam ja tak zdefiniowana.
    extern page2 char getchar_eedata(char adress )
    {
    return 123;
    }
    I jest to jedyna funkcja w tym pliku.

    Co powininen zrobic zeby linker chcial zlinkowac oba moduly ?

    Plik lkr jest standardowy z MPLAB'a (16F628A.lkr)
  • REKLAMA
  • #2 1487887
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Piorun2002 napisał:
    A w drugim pliku ModulB.c, mam ja tak zdefiniowana.
    extern page2 char getchar_eedata(char adress )
    {
    return 123;
    }
    Wydaje mi się że słowo kluczowe "extern" jest w tym przypadku źle użyte, moim zdaniem powinieneś użyć słowa "global".
  • REKLAMA
  • #3 1488405
    Piorun2002
    Poziom 15  
    Posty: 269
    Ocena: 25
    Niestety w CC5X nie mozna uzyc "global" (to dyrektywa z MPASM) ...
    A moze ktos moglby mi podeslac dzialacy przyklad z dwoma modulami dla PIC'a ?
    Samplik dostarczany razem z CC5X, jest niepelny (w zasadzie jest to koncepcja jak to powinno wygladac w pliku TXT)
  • REKLAMA
  • #4 1493144
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Wycinek z manuala:

    All global variables that are not 'static' are made available for other modules automatically. CC5X inserts 'GLOBAL' statements in the generated assembly file.
  • #5 1506546
    Piorun2002
    Poziom 15  
    Posty: 269
    Ocena: 25
    Czy ktos moglby wrzucic jakis dzialajacy samplik dla PIC z dwoma modulami ?
    Wszystko co do tej pory znalazlem na sieci jest tylko 'koncepcja', ale nigdzie nie znalazlem w pelni dzialajacego przykladu jak dla CCX5 podzielic kod na dwa moduly ..
REKLAMA