b> Just one data point, but: I'm a professional developer (30 years s/w
b> development experience from micros to mainframes). Now working on
b> third LPC-based commercial product. Compared Keil, IAR, and gcc and
b> chose Rowley Crossworks (gcc-based).
Oh, I can't hold out from the reply.
I tried to use Crossworks in the begining to explore LPC2xxx.
It ugly work with the structures. I tried to define T0MCR like
struct:
{{
typedef struct
{
__REG32 MR0I :1;
__REG32 MR0R :1;
__REG32 MR0S :1;
__REG32 MR1I :1;
__REG32 MR1R :1;
__REG32 MR1S :1;
__REG32 MR2I :1;
__REG32 MR2R :1;
__REG32 MR2S :1;
__REG32 MR3I :1;
__REG32 MR3R :1;
__REG32 MR3S :1;
__REG32 :4;
} __txmcr_bits;
#define T0MCRbits (*(volatile __txmcr_bits *)0xE0004014)
}}
but when I handle to it, Crossworks GCC compile it to this code:
<<T0MCRbits.MR0I = 1;>>
mov r3, #0xE0000000
add r3, r3, #0x00004000
add r3, r3, #0x00000014
ldrb r2, [r3]
orr r2, r2, #0x00000001
strb r2, [r3]
so, I get change in LSB and _in_the_second_byte_!.
OK, forget about structures.
But when I try to compile code with some IRQ, I found, that optimize
level has affect on the code! The code works differ with optimize
level 1 and optimize level 3!
After that I found that interrupt context keeped incorrectly. So I had
to keep context by ASM macros.
After that I try IAR. I have not desire to come back to GCC.
My time is money.
b> A recent poll was done on this group that showed Keil and Rowley
b> leading the pack for most-used compiler/IDE, so you might be
b> surprised at how many professionals use gcc.
b> Yahoo! Groups Links
--
Best regards,
Alex_Rambler mailto:bor-alex@...Message
Re: [lpc2000] Re: Looking to buy compiler
2005-11-07 by Alex_Rambler
Attachments
- No local attachments were found for this message.