View previous topic :: View next topic |
Author |
Message |
Guest
|
CCS | Mikroe(c) | ??? |
Posted: Mon Mar 31, 2008 6:29 am |
|
|
I ask because I think CCS has too many compiler bugs.
What do you think? |
|
|
Matro Guest
|
|
Posted: Mon Mar 31, 2008 8:41 am |
|
|
I never had a compiler bug...
Just things that are not really optimized.
But till today, CCS allows me to do everything I want to do.
I can't say that's the besst compiler I've ever seen. But compiling C for chip like PIC (especially PIC16) isn't something easy and I'm not sure that another one is better.
What bugs did you already have seen?
Matro. |
|
|
horkesley
Joined: 20 Feb 2007 Posts: 48 Location: Essex UK
|
Compiler |
Posted: Mon Mar 31, 2008 9:41 am |
|
|
Hi,
I am interested in your comments regarding the CCS compiler.
I have been using the CCS compiler on and off for about a year or so, and have found it very frustrating to use, including the ICD-U40.
I write software professionally and the CCS setup crashes several times a day. This may be acceptable for the hobbyist but not the professional.
For most software I write I use the Microsoft Visual C++ and VB.net, but more and more of my clients projects require a microcontroller.
I have just finished a project using CCS and the PIC18F4520. For my next project I am considering the PIC32 series and the Microchip or HiTech compilers.
It is also an opportunity to consider other micros.
I have a development kit for the Atmel series and have been using AVR Studio for a few days and it has not crashed once.
I wonder if anyone else wishes to comment on the subject and possible recommend their favourite compiler.
Regards, _________________ Horkesley Electronics Limited |
|
|
ckielstra
Joined: 18 Mar 2004 Posts: 3680 Location: The Netherlands
|
Re: CCS | Mikroe(c) | ??? |
Posted: Mon Mar 31, 2008 9:55 am |
|
|
Anonymous wrote: | I ask because I think CCS has too many compiler bugs. | I only had a few minor bugs...
CCS provide on their website two compiler versions for download:
1) An older but stable version with little bugs.
2) The newest release with all new features and support for the newest processors but... untested.
The problem with CCS is that they don't mention the quality of the newest release. If you just download the latest version assuming that newer will be better than you are in for some bad surprises. For production quality only use the older stable version.
The good thing is CCS creates a new release as soon as they have a few bugs fixed. Especially the first releases of a major upgrade (like v3.249 to v4.0xx) are always of very bad quality and you will see new releases every couple of days. Currently the v4.069 compiler version is getting quiet stable; the time between new releases has extended to several weeks and in the forum few little compiler problems are discussed. I wouldn't be surprised if one of the next v4.0xx releases will get the 'stable' status.
I don't know the other PIC compilers but from long experience I know all compilers have bugs. For me it is more important to have a good support forum and that's what I've found here. Given a chance to start all over again I would choose another processor for projects where you can spend a dollar more on the processor. |
|
|
boris
Joined: 29 Nov 2007 Posts: 15 Location: Hungary
|
|
Posted: Mon Mar 31, 2008 2:55 pm |
|
|
Hi!
I always wanted to write my opinion abut this.
I've been using MikroC for almost 3 years, and I think that it WAS a good compiler back than. But now it is not. Why do I say that? Because CCS is way better. MikroC has a wide variety of libraries, but less than CCS. My main problem was (is) with MikroC that they don't support the following:
- USB CDC
- RTOS
- TCP/IP Stack (it supports raw TCP/IP)
- Microchip's ICD2
- Small PICs (12F509, 10Fxxx)
- Open libraries
If someone wrote a message to the forum asking, please I need one of the 6 things mentioned above, the reply always was: It's not priority now...
The thing is that I'm using CCS for 5 months now and I'm very pleased with it.
But I must mention that I had problems with CCS code wizard twice. The last time I wanted to generate a Timer2 interrupt, so the code wizard made the following code
Code: |
#int_TIMER2
void TIMER2_isr(void)
{
...
}
|
the interrupt wasn't interrupting. Finally I found out that the second line shouldn't contain the second void part
Like so:
so my opinion is that if someone would like to program PIC's professionally use C18 or Hi-Tech, otherwise use CCS! |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Mar 31, 2008 4:07 pm |
|
|
Quote: | Finally I found out that the second line shouldn't contain the second void part |
That's not true. The following program works perfectly well.
It displays a character once every second. It's definitely interrupting.
I compiled this program with vs. 4.069 and ran it on a PicDem2-Plus
board just now. Here is the output:
Code: |
#include <16F877.H>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
#int_timer2
void TIMER2_isr(void)
{
static int8 count = 0;
static int8 value = 'A';
count++;
if(count >= 244)
{
count = 0;
putc(value++);
}
}
//===================================
void main()
{
setup_timer_2(T2_DIV_BY_16, 255, 1);
clear_interrupt(INT_TIMER2);
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
while(1);
} |
|
|
|
baltazar_aquino
Joined: 16 Mar 2008 Posts: 27
|
|
Posted: Tue Apr 01, 2008 12:05 am |
|
|
mikroE is good for beginners, but CCS C caters to beginners and professionals as well. Aside from the fact that mikroE's libraries are hidden, there is not much you can do to somehow flex your code. Here is a classic example: The flex lcd driver in the code section of this forum. You cannot write such a flexible lcd driver with mikroE without going thru the pain of coding the whole thing again. C18 is definitely not at par with CCS C because of its limited MCU support. I never tried Hi Tech. the SDCC v2.7 (gnu) is stable than the previous releases but you will have to write your own libraries - painfully. In my experience, CCS C is the best RAD for PIC MCUs. with regards to the crashing of your PC, If we are using exactly the same CCS C IDE version and mine is stable then the problem could be in your OS version or some libraries /behind the scene programs running in your PC.
Quote: | Finally I found out that the second line shouldn't contain the second void part |
This is strange as the term void is so native to C. In fact, having developed my programming skills with strict syntax, I use void liberally and I never experience such in any CCS C version that I used. |
|
|
boris
Joined: 29 Nov 2007 Posts: 15 Location: Hungary
|
|
Posted: Tue Apr 01, 2008 12:49 am |
|
|
Hi!
This maybe a bug in v4.068, because as soon as I took out the second void, the interrupt routine started to work.
And I fully agree with baltazar_aquino about the libraries, I had trouble with mikroC libraries, but couldn't look inside it, whereas if I had some trouble with CCS' libraries I could look inside it. CCS is indeed for professionals, but it's not ANSI C (due to the built in libraries), so you can't take your code to another microcontoller. |
|
|
Matro Guest
|
|
Posted: Tue Apr 01, 2008 1:53 am |
|
|
2 kind of people complaining :
- The ones who used to program PC softwares with a high-level language.
- The ones who complain about the IDE
For the first of them, I met a lot and they always had problems coding in embedded C for small target devices. So whatever could be the compiler, I think they would have problemes.
For the second ones, they don't answer the question that is about compiler and not IDE. I agree that CCS IDE isn't a very good one. And?... I don't care because you can use CCS compiler with command lines and it allows to integrate CCS in MPLAB or in your preferred IDE.
I use to work with embedded environment. And by looking at the code generated by CCS I can say : of course, it's not perfect, but it is a quite good one especially if you know the difficulty to compile C for such small devices.
You will never have a better code than the one you obtained by PERFECTLY programming in ASM. But for other people, CCS compiler OK, even for professionals (I talk only about the compiler, not the IDE).
Matro. |
|
|
sv_shady
Joined: 07 Mar 2008 Posts: 28
|
|
Posted: Tue Apr 01, 2008 1:58 am |
|
|
I am using CCS for almost 2 years and i am very satisfied with it.
It has crashed a few times (3-4) on my pc but after the pre-installation of the OS this problem hasn't occured (that is more than an year). So this makes me thing that not the compiler but the OS has some bugs I haven't faced any compiler bugs, it has always been me Another pro of the CCS is the extensive help, the open-source examples, libraries and drivers, and of course this brilliant forum where you can always find the needed information and help. For me CCS is the best choice for PIC C compiler |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1933 Location: Norman, OK
|
|
Posted: Tue Apr 01, 2008 6:48 am |
|
|
For me the CCS compiler has been a good one and I've had few significant
problems over the years. I code every day at the PC level and also do a
lot of embedded work which are two ENTIRELY different things. I am
constantly amazed at what people want a $4 PIC to do!
My number one rule is "keep it simple" when coding for the PIC and
avoid all the "fancy" stuff where possible (i.e. passing pointers and such).
I realize the limitations of the PIC environment would never try some of
the things I do regularly on the PC side.
Another thing I see here over and over is someone trying to stuff code
into a PIC that is too small, working to squeeze one more byte in. My
number one rule is plan for future growth and I have always had the
RAM/ROM/resources to do what was required. Being prudent I hope I
never find myself in that position.
I realize some of the people who come here are in school and trying to
deal with an assignment from thier instructor/professor. As someone who
leads a training organization I have always had problems with a person
who comes here expecting this board to do thier work/job for them. An
example of this is the person who says " I need to do such and such,
please show/give me the code" (see one of the most recent posts). Many
of these also have little or no understanding of the PIC for which they are
coding. This understanding is ESSENTIAL, if only they would take the time
to READ!
Overall I feel CCS is fairly equal to any other embedded compiler including
the higher priced ones and is superior in some ways. The IDE is
definitely not perfect but few things are. Frequently a person who has
downed CCS ends up coming back saying CCS is not so bad after all.
MY 2 cents...
dave |
|
|
andrewg
Joined: 17 Aug 2005 Posts: 316 Location: Perth, Western Australia
|
|
Posted: Wed Apr 02, 2008 8:37 am |
|
|
I chose the CCS compiler because of the excellent support it gave for the built-in peripherals of PICs, not to mention the library code for external chips and things!
However, in the five or six major projects I've undertaken so far, in every single one I've encountered at least one or two compiler bugs, i.e. code generation problems.
I can't fault CCS's library code, but their compiler itself is quite another story. _________________ Andrew |
|
|
|