EmbeddedRelated.com
Forums

Error compiling FullCAN example

Started by ronald_smeets April 17, 2007
Hello all,

I working on a PCB with 2 LPC2129 controllers and want them to
communicate with each other using CAN. I have the simple, no
acceptance filter enabled example described in the "LPC Insiders
Guide" working, therefore I know the electrical part is OK ;-)

Today I wanted to try the LPC2_CANFull_V110 example (d/l from Keil
site, but also available here at the Files section), but somehow I
cannot get it compiled.

Part of the 'Build window':
...
compiling main_FullCAN.c...
LPC_FULLCAN_SW.H(46): error C25: syntax error near '('
LPC_FULLCAN_SW.H(46): error C42: '__attribute__': not in formal
parameter list
LPC_FULLCAN_SW.H(47): error C42: 'FullCAN_CANISR_Rx1': not in formal
parameter list
LPC_FULLCAN_SW.H(47): error C25: syntax error near '__attribute__'
...

Well, my first question is: anybody of you had a similar problem ?
Any idea's or tips ? Oh I use Keil uVision 3 and the 'standard'
LPC2129 settings as Project Target.

Thanks in advance for your reply
Regards,

Ronald

An Engineer's Guide to the LPC2100 Series

Hi,
it seems to be a signature in the interrupt calls. I don't with which compiler is set the FullCAN project, however it can be you are using the wrong compiler ( for example the project is for ARMGNU while you are using the keil one, or viceversa.
I have trie the other CAN example, the one implementing the MicroCANOpen, and seems to work quite well. It's compiled with GNUARM.

Ricky
----- Messaggio originale -----
Da: ronald_smeets
A: l...
Inviato: Marted17 aprile 2007, 16:43:42
Oggetto: [lpc2000] Error compiling FullCAN example

Hello all,

I working on a PCB with 2 LPC2129 controllers and want them to
communicate with each other using CAN. I have the simple, no
acceptance filter enabled example described in the "LPC Insiders
Guide" working, therefore I know the electrical part is OK ;-)

Today I wanted to try the LPC2_CANFull_ V110 example (d/l from Keil
site, but also available here at the Files section), but somehow I
cannot get it compiled.

Part of the 'Build window':
...
compiling main_FullCAN. c...
LPC_FULLCAN_ SW.H(46): error C25: syntax error near '('
LPC_FULLCAN_ SW.H(46): error C42: '__attribute_ _': not in formal
parameter list
LPC_FULLCAN_ SW.H(47): error C42: 'FullCAN_CANISR_ Rx1': not in formal
parameter list
LPC_FULLCAN_ SW.H(47): error C25: syntax error near '__attribute_ _'
...

Well, my first question is: anybody of you had a similar problem ?
Any idea's or tips ? Oh I use Keil uVision 3 and the 'standard'
LPC2129 settings as Project Target.

Thanks in advance for your reply
Regards,

Ronald

___________________________________
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: http://it.docs.yahoo.com/nowyoucan.html
Hi,

out of curiousity which compiler are you trying to compile the example with
and which was it written for? Are you sure they are one and the same? To be
honest there really isn't a great deal to getting the CAN to work with the
acceptance filters yet there seem to be many people, yourself included that
are falling foul of something somewhere.

Andy

-----Original Message-----
From: l... [mailto:l...]On Behalf Of
ronald_smeets
Sent: 17 April 2007 15:44
To: l...
Subject: [lpc2000] Error compiling FullCAN example
Hello all,

I working on a PCB with 2 LPC2129 controllers and want them to
communicate with each other using CAN. I have the simple, no
acceptance filter enabled example described in the "LPC Insiders
Guide" working, therefore I know the electrical part is OK ;-)

Today I wanted to try the LPC2_CANFull_V110 example (d/l from Keil
site, but also available here at the Files section), but somehow I
cannot get it compiled.

Part of the 'Build window':
...
compiling main_FullCAN.c...
LPC_FULLCAN_SW.H(46): error C25: syntax error near '('
LPC_FULLCAN_SW.H(46): error C42: '__attribute__': not in formal
parameter list
LPC_FULLCAN_SW.H(47): error C42: 'FullCAN_CANISR_Rx1': not in formal
parameter list
LPC_FULLCAN_SW.H(47): error C25: syntax error near '__attribute__'
...

Well, my first question is: anybody of you had a similar problem ?
Any idea's or tips ? Oh I use Keil uVision 3 and the 'standard'
LPC2129 settings as Project Target.

Thanks in advance for your reply
Regards,

Ronald
Hello Ricky and Andy,

Oh bugger ... :) You are totally right about that one and I feel a
little embarrased that I didn't see that one :) Yes, I use "Keil ARM
Tools" and somehow didn't see the difference in "__attribute__" (GNU
Syntax) and "__irq" (Keil syntax). Changing these references and now
compiling is no problem.

Well, I guess thats my lack of knowledge in compilers etc. Since I
started learning how to program microcontrollers at school I used
uVision with the 'standard setup' and therefore never really bothered
with this :)

@Andy: I don't really know what it is, but somehow I just can't get a
grip on CAN (yet). It shouldn't be (and I'm sure it isn't) difficult
to implement CAN, but I'm learning ;)

Thank you both for your help.
Regards,

Ronald
At 02:15 PM 4/18/2007 +0000, ronald_smeets wrote:
>Hello Ricky and Andy,
>
>Oh bugger ... :) You are totally right about that one and I feel a
>little embarrased that I didn't see that one :) Yes, I use "Keil ARM
>Tools" and somehow didn't see the difference in "__attribute__" (GNU
>Syntax) and "__irq" (Keil syntax). Changing these references and now
>compiling is no problem.
>
>Well, I guess thats my lack of knowledge in compilers etc. Since I
>started learning how to program microcontrollers at school I used
>uVision with the 'standard setup' and therefore never really bothered
>with this :)
>
>@Andy: I don't really know what it is, but somehow I just can't get a
>grip on CAN (yet). It shouldn't be (and I'm sure it isn't) difficult
>to implement CAN, but I'm learning ;)
You might find CAN Kingdom an easier introduction. It's a bit sideways
compared to the usual introduction but one of its advantages is that it
doesn't insist that CAN must map to the usual 7 layer LAN abstraction. CAN
doesn't fit that abstraction well. It's not a highly popular higher level
protocol but I find it a quite appropriate abstraction for control.

A couple of links to the spec. The first chapter or two provide the CAN
introduction. The second link is probably the best, the first is from the
originator of the protocol.

http://www.kvaser.com/download/index_cankingdom.htm

http://www.cankingdom.org/cank.htm
Robert

Another sign of the end of civilization, our technical magazines are
getting chatty
From an EETimes product descriptions 2006/08/09
".... systems that can sample gobs of inputs simultaneously"
Now just what is the technical definition for gobs again?
http://www.aeolusdevelopment.com/
Hello Robert,

Thank you for the information. I'll look into it :)

Regard,
Ronald

--- In l..., Robert Adsett
wrote:
> You might find CAN Kingdom an easier introduction. It's a bit
sideways
> compared to the usual introduction but one of its advantages is
that it
> doesn't insist that CAN must map to the usual 7 layer LAN
abstraction. CAN
> doesn't fit that abstraction well. It's not a highly popular
higher level
> protocol but I find it a quite appropriate abstraction for control.
>
> A couple of links to the spec. The first chapter or two provide
the CAN
> introduction. The second link is probably the best, the first is
from the
> originator of the protocol.
>
> http://www.kvaser.com/download/index_cankingdom.htm
>
> http://www.cankingdom.org/cank.htm
> Robert
>
Hi Ronald,

I use CAN quite a bit in a number of applications here at work so if you get
really stuck just drop me an e-mail direct and I'll have a quick look over
the code you're having problems with. It's usually something straight
forward.

Good luck.

Andy

-----Original Message-----
From: l... [mailto:l...]On Behalf Of
ronald_smeets
Sent: 18 April 2007 15:19
To: l...
Subject: [lpc2000] Re: Error compiling FullCAN example
Hello Ricky and Andy,

Oh bugger ... :) You are totally right about that one and I feel a
little embarrased that I didn't see that one :) Yes, I use "Keil ARM
Tools" and somehow didn't see the difference in "__attribute__" (GNU
Syntax) and "__irq" (Keil syntax). Changing these references and now
compiling is no problem.

Well, I guess thats my lack of knowledge in compilers etc. Since I
started learning how to program microcontrollers at school I used
uVision with the 'standard setup' and therefore never really bothered
with this :)

@Andy: I don't really know what it is, but somehow I just can't get a
grip on CAN (yet). It shouldn't be (and I'm sure it isn't) difficult
to implement CAN, but I'm learning ;)

Thank you both for your help.
Regards,

Ronald