Problem med kod från "Application Maestro"

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Tottish
Inlägg: 847
Blev medlem: 30 juni 2007, 19:11:37
Ort: Oslo, Norge

Problem med kod från "Application Maestro"

Inlägg av Tottish »

Hallå!
Introduktion:
Då var det dags för lite PICande igen då. Den här gången tänkte jag prata med en IR-termometer över SMBus. Aldrig pratat SMBus förr eller ens använt MSSP-modulen i PICarna så det blir ju alltid lite spännande.
Har suttit idag och trökat en del med en kod som Microchips "Application Maestro" spottat ur sig. Har aldrig använt den förut heller men det verkar smidigt om man bara får det att fungera. För er som inte provat det så är det typ en kodgenerator. I mitt fall så väljer jag att jag vill använda MSSPmodulen i I2C Mastermode som kodmodul och sedan så ställer jag in busfrekvens och lite andra saker och så genererar programmet diverse inc/asm-filer som man inkluderar i sitt projekt och sedan skall det bara vara att tuta och köra... men riktigt så kul blev det alltså inte för mig.
Jag följer steg-för-steg-beskrivningen i medföljande .pdf-fil för vilka filer som skall inkluderas osv...

Problem/Felmeddelande:
MPLINK säger vid build-försöket:
"Error - could not find definition of symbol 'I2CMINTISR' in file './LED.o'"
LED.asm är "main-asm-filen".
Har aldrig stött på det här felet förut så jag tänkte bara höra i fall någon annan fått det (kanske i samband med Application Maestro) och kan dela med sig om hur det löstes.

Nu behöver min mosiga hjärna sömn... God natt

MVH
/Tottish
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med kod från "Application Maestro"

Inlägg av sodjan »

Och var finns "I2CMINTISR" ?

Det är inte så att den kanske finns i någon annan fil i projektet än LED.ASM ?
Och alltså borde definieras med EXTERN ?
Tottish
Inlägg: 847
Blev medlem: 30 juni 2007, 19:11:37
Ort: Oslo, Norge

Re: Problem med kod från "Application Maestro"

Inlägg av Tottish »

Enda stället som jag ser att "I2CMINTISR" finns är i includefilen som AppMaestro spottat ur sig. Den är inkluderad i projektet med kommandot:

#include "I2CMInt.inc"
Överst i koden precis under "MAIN CODE"

I den filen lyder det första kodstycket:

Kod: Markera allt

                                                ;
    #ifndef __I2CMInt_INC                       ;Check if inc file already included
                                                ;
        #define __I2CMInt_INC                   ;
                                                ;
;***********************************************;
    #include "I2CMInt.Def"                      ;
                                                ;
    #ifndef  I2CMInt_Source                     ;
                                                ;
    #include  "P18xxx.inc"                      ;
    #include  "P16xxx.inc"                      ;
;***********************************************;
    EXTERN  vI2CMIntStatus                      ;
                                                ;
    EXTERN  I2CMIntISR                          ;
    EXTERN  I2CMIntInit                         ;
    EXTERN  I2CMIntStart                        ;
    EXTERN  I2CMIntReStart                      ;
    EXTERN  I2CMIntStop                         ;
    EXTERN  I2CMIntPut                          ;
    EXTERN  I2CMIntGet                          ;
    EXTERN  I2CMIntSetGetCount                  ;
    EXTERN  I2CMIntDiscardBuf                   ;
                                                ;
;***********************************************;
    #else                                       ;
                                                ;
    GLOBAL  vI2CMIntStatus                      ;
                                                ;
;***********************************************;
I2CMIntISR förefaller alltså vara definierad som EXTERN. Kommenterar jag bort raden "EXTERN I2CMIntISR" så får jag samma felmeddelande som tidigare men då är det I2CMIntInit (nästa rad) som den inte hittar i LED.o.
Tog med hela kodstycket eftersom jag inte riktigt förstår mig på dessa "#ifndef".

Varför klagar den inte över att den inte hittar vI2CMIntStatus som står överst? Tyder det på att den hoppar över det stycket och går direkt på "GLOBAL vI2CMIntStatus" efter #else?

MVH
/Tottish
Nerre
Inlägg: 27257
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Problem med kod från "Application Maestro"

Inlägg av Nerre »

Felet är inget specifikt för den där applikationen, det är ett generellt fel.

EXTERN betyder alltså att det är en funktion/rutin som ligger i en annan fil.

Felet du får är vid länkningen, du använder en funktion som inte finns i nån av de filer som länkas.

Antingen finns den i en separat asm-fil som du måste lägga till i projektet eller så finns det i nåt library som du måste inkludera.

Att den inte klagar på den första beror kanske på att den aldrig används i koden?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med kod från "Application Maestro"

Inlägg av sodjan »

Har du "case sensitive" av eller på ?
Tottish
Inlägg: 847
Blev medlem: 30 juni 2007, 19:11:37
Ort: Oslo, Norge

Re: Problem med kod från "Application Maestro"

Inlägg av Tottish »

"Disable Case sensitivity" är ikryssad.

Tror jag lägger ner det här med Application Maestro. Har lite svårt att lösa de här problemen. Får bli the old fashion way istället med manuell kodning vid inställningen av MSSP-modulen.

Startar nog en ny tråd (med mer relevant titel) om det om jag får problem där.

Tack för visat intresse!
MVH
/Tottish
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med kod från "Application Maestro"

Inlägg av sodjan »

Om jag fattar rätt så har du en katalog med allt som borde behövas
för att bygga ihop projektet. Du kanske kan zippa upp det och slänga
upp det någon stans så att någon annan kan test-bygga det ?
Antagligen är det något skitgrej som inte är helt uppenbart p.g.a
av attd ett saknas något i din beskrivning av det hela...

> Enda stället som jag ser att "I2CMINTISR" finns är i includefilen som AppMaestro spottat ur sig.

Symbolen borde rimligtsivs även finnas i en annan källkodsfil som namn på en subrutin...
Tottish
Inlägg: 847
Blev medlem: 30 juni 2007, 19:11:37
Ort: Oslo, Norge

Re: Problem med kod från "Application Maestro"

Inlägg av Tottish »

Jag har tyvärr ingen server att slänga upp det på men om någon är villig att hjälpa mig att bygga ihop det hela så går det bra att skicka en mailadress så skickar jag över ZIP-filen.

MVH
/Tottish
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med kod från "Application Maestro"

Inlägg av sodjan »

Nej, jag får det inte att "bygga".

Det krashar på div symboler som jag inte kan hitta bland filerna som var med i ZIP'en.
T.ex "_I2CM_BAUD_COUNT" som används i 16I2CMI.ASM, men den definieras ingenstans.
Kört fast. Antingen är det inte komplett eller så har Maestro någon bugg.
Jag fick även lägga till 16F886 i den genrella PIC16 filen (P16XXX.INC), gjorde en
kopia av 16F877A och justerade lite. Men det räckte inte...

Jag skulle föreslå Microchip support direkt eller deras eget support/användar forum.

Jag har aldrig kört Maestro direkt, så jag vet inte om det kan vara något
där som gick fel...
Tottish
Inlägg: 847
Blev medlem: 30 juni 2007, 19:11:37
Ort: Oslo, Norge

Re: Problem med kod från "Application Maestro"

Inlägg av Tottish »

OK, tack för hjälpen sodjan!

MVH
/Tottish
Skriv svar