Codevision worked well for me and it has a large user base.
_____
From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com] On Behalf
Of Russell Shaw
Sent: Wednesday, January 24, 2007 3:36 PM
To: AVR-Chat@yahoogroups.com
Subject: Re: [AVR-Chat] Re: I Need A Compiler
kernels_nz wrote:
> I have found Codevision to be a very good reliable compiler at a very
> reasonable price. Very simple to use interface also.
Back in 2001, codevision had serious bugs. It'd be worth checking before
buying. These are the bugs that hastened my jump to gcc in 2001:
**************************************************
A global enum works ok:
#include<stdlib.h>
enum {where,why,what} alpha;
void main(void)
{
}
However, a local enum generates an illegal-symbol error:
#include<stdlib.h>
void func1(void)
{
enum {where,why,what} state;
}
void main(void)
{
}
**************************************************
This compiles without error:
#include <stdlib.h>
void input_from_panel(void)
{ static enum {What} state;
}
void send_serial(void)
{ static enum {What} state;
}
void main(void)
{
}
However, this gives a "multiple declaration of What" error:
#include <stdlib.h>
void input_from_panel(void)
{ static enum {Waiting,What} state;
}
void send_serial(void)
{ static enum {What} state;
}
void main(void)
{
}
**************************************************
I got "illegal symbol" in:
struct TCB_struct{
unsigned char cnt,prio,task_state,swstk[16],*swstkptr;
void(**hwstkptr)(void); <<<< illegal symbol
void(*hwstk[8])(void);
struct TCB_struct* next_ptr;
};
This doesn't compile:
struct TCB_struct{
void(**hwstkptr)(void);
};
**************************************************
This compiles ok as a global variable:
void(*hwstk[8])(void);
This gives an "illegal symbol" error:
void(**hwstk)(void);
**************************************************
This works:
#include <stdlib.h>
struct {char What;} state;
void main(void)
{
}
This doesn't:
#include <stdlib.h>
void func1(void)
{ struct {char What;} state;
}
void main(void)
{
}
**************************************************
Likewise, for unions, this works:
#include <stdlib.h>
union {char What;} state;
void main(void)
{
}
This doesn't:
#include <stdlib.h>
void func1(void)
{ union {char What;} state;
}
void main(void)
{
}
The local definitions in functions give an "illegal symbol error".
**************************************************
[Non-text portions of this message have been removed]Message
RE: [AVR-Chat] Re: I Need A Compiler
2007-01-26 by steve childress
Attachments
- No local attachments were found for this message.