demo2 compileert niet

Discussies en opmerkingen over het Explorer-16 project

Postby olpoo » Thu May 31, 2007 12:00 am

Als ik de tweede demo wil builden dan krijg ik telkens dezelfde foutmelding. (hieronder de melding). Ik heb alle include files onder C:\Program Files\Microchip\MPLAB C30\include geplaatst. Hoe kan ik verder?

Clean: Deleted file "C:\Program Files\Microchip\MPLAB C30\examples\demo2\Demo2.mcs".
Clean: Done.
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 -c -x c -I"C:\Explorer-16\Demo2\Include" "adpcm.c" -o"C:\EXPLOR~1\Demo2\INTERM~1\adpcm.o" -g
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 -c -x c -I"C:\Explorer-16\Demo2\Include" "helpers.c" -o"C:\EXPLOR~1\Demo2\INTERM~1\helpers.o" -g
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 -c -x c -I"C:\Explorer-16\Demo2\Include" "jspeech.c" -o"C:\EXPLOR~1\Demo2\INTERM~1\jspeech.o" -g
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ128GA010 -c -x c -I"C:\Explorer-16\Demo2\Include" "MPFS.c" -o"C:\EXPLOR~1\Demo2\INTERM~1\MPFS.o" -g
In file included from C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/spi.h:47,
from C:/Program Files/Microchip/MPLAB C30/Include/compiler.h:64,
from MPFS.c:42:
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:222: error: redeclaration of `enum _BOOL'
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:222: error: conflicting types for `FALSE'
C:/Program Files/Microchip/MPLAB C30/Include/StackTsk.h:457: error: previous declaration of `FALSE'
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:222: error: conflicting types for `TRUE'
C:/Program Files/Microchip/MPLAB C30/Include/StackTsk.h:457: error: previous declaration of `TRUE'
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:258: error: redefinition of `union _BYTE_VAL'
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:265: error: redefinition of `union _WORD_VAL'
C:/Program Files/Microchip/MPLAB C30/support/h/peripheral_24F/Generic.h:283: error: redefinition of `union _DWORD_VAL'
Halting build on first failure as requested.
BUILD FAILED: Mon Jan 22 19:58:23 2007
olpoo
 
Posts: 2
Joined: Thu Jan 02, 2014 3:42 pm

Postby luc21 » Thu May 31, 2007 12:00 am

Ik heb hier hetzelfde probleem, maar we zijn aan het uitzoeken waar het aan ligt. Even geduld a.u.b.
luc21
 
Posts: 56
Joined: Thu Jan 02, 2014 10:40 am

Postby mcuman » Thu May 31, 2007 12:00 am

Ik heb nu een demo2 die compileert zonder errors/warnings, In eerste instantie zag het ernaar uit dat de paden in de build options niet goed stonden. Na deze te corigeren heb ik "..\Include" verwijderd. Daarna waren was t zaak om dubbele definities te "verwijderen" dit is 'moeilijk' omdat de dubbele definities betrekking of verband hebben met elkaar met die file; C30 support folder -> Generic.h. Makkelijkste tijdelijke 'oplossing' deze te commenten in Generic.h sectie _WINDOW en 3 andere _byte_val _word_val en _dword_val in zovere dan blijft er een vervelende error over met betrekking to ROM const deze is ook aangepast. Het is geen nette oplossing om Generic.h aan te passen maar het is een begin. Nu rest de vraag waar wordt Generic.h exact door C30 compiler ge-include? In standaard C18 was het gebruikelijk om zelf zo'n file op te stellen.
mcuman
 
Posts: 7
Joined: Thu Jan 02, 2014 3:30 pm

Postby olpoo » Thu May 31, 2007 12:00 am

Inderdaad, bedankt mcuman!!
Ik heb die aanpassingen gemaakt in de generic.h en nu heb ik een build succeeded.

deze regel heb ik eruit gehaald:
/*typedef enum _BOOL { FALSE = 0, TRUE } BOOL;*/

en daarna een geheel stuk ineens, nl.:
/*typedef union _BYTE_VAL
{
BYTE_BITS bits;
BYTE Val;
} BYTE_VAL;


typedef union _WORD_VAL
{
WORD Val;
WORD_BITS bits;
struct
{
BYTE LB;
BYTE HB;
} byte;
struct
{
BYTE_VAL low;
BYTE_VAL high;
}byteUnion;

BYTE v[2];
} WORD_VAL;

typedef union _DWORD_VAL
{
DWORD Val;
struct
{
BYTE LB;
BYTE HB;
BYTE UB;
BYTE MB;
} byte;
struct
{
WORD LW;
WORD HW;
} word;
struct
{
WORD_VAL low;
WORD_VAL high;
}wordUnion;
struct
{
BYTE_VAL lowLSB;
BYTE_VAL lowMSB;
BYTE_VAL highLSB;
BYTE_VAL highMSB;
}byteUnion;
BYTE v[4];
WORD w[2];
} DWORD_VAL;
*/

Nu ga ik het simuleren met Proteus van die demo2 wat uitproberen.
olpoo
 
Posts: 2
Joined: Thu Jan 02, 2014 3:42 pm

Postby harm_hop » Thu May 31, 2007 12:00 am

Beste Olpoo,

Uit de foutberichten blijkt dat diverse varabelen of types meerdere keren worden gedefinieerd.

Normaal wordt dat voorkomen door in *.h files de precompilerdirective op te nemen:

#if !defined [naamveld]
#define [naamveld]

Het uitroepteken "! staat voor "not"zoals in C gebruikelijk.
Dan kun je include files herhalen en stapelen in willekeurige volgorde. Dat is hier kennelijk niet gebeurd.

In dat geval dien je de generic.h als eerste include te nemen omdat de andere includews die if statement wel hebben
harm_hop
 
Posts: 60
Joined: Thu Jan 02, 2014 3:27 pm

Postby harm_hop » Thu May 31, 2007 12:00 am

Beste Olpoo,

Uit de foutberichten blijkt dat diverse varabelen of types meerdere keren worden gedefinieerd.

Normaal wordt dat voorkomen door in *.h files de precompilerdirective op te nemen:

#if !defined [naamveld]
#define [naamveld]

Het uitroepteken "!" staat voor "not", zoals in C gebruikelijk.
Dan kun je include files herhalen en stapelen in willekeurige volgorde in je source. Dat is hier kennelijk niet gebeurd.

In dat geval dien je de generic.h als eerste include te nemen omdat de andere includes die if statement wel hebben.

Harm_Hop
harm_hop
 
Posts: 60
Joined: Thu Jan 02, 2014 3:27 pm

Postby mcuman » Thu May 31, 2007 12:00 am

Olpoo,

Ja ik heb 'te veel gewijzigd' jouw wijziging in Generic.h + deze voor de ROM melding:
#ifndef STACK_TSK_H
#define STACK_TSK_H

//#include "compiler.h"
//#define ROM rom
Is voldoende geen enkele warnings meer
De build paden staan goed en include zijn ok succes!
Nu rest alleen de vraag waarom wordt Generic.h ge-include is deze ook te ex-cluden??
mcuman
 
Posts: 7
Joined: Thu Jan 02, 2014 3:30 pm

Postby luc21 » Thu May 31, 2007 12:00 am

Het probleem zat in twee verschillende versies van de compiler: mijn vrienden bij Microchip en Labcenter werkten beiden met versie v2.01 i.p.v. v2.05 die op de CD staat... De update van DEMO2 komt z.s.m. als download beschikbaar (waarschijnlijk vandaag nog)
luc21
 
Posts: 56
Joined: Thu Jan 02, 2014 10:40 am


Return to 2007-01 t/m 04 Explorer-16

Who is online

Users browsing this forum: No registered users and 2 guests