Discussion in 'Embedded Systems and Microcontrollers' started by disney_snoopy, Mar 2, 2009.
Hi, I would like to ask where can i download a CCS Compiler for me 16F877A PIC programming?
Actually, CCS is not free. However, you can stole it from the internet if you know how.
CCS Inc's homepage:
They have time-and-size-limited demo compilers available for a free download.
The demo compiler is the only free version available.
Boostc has a free size limited IDE compiler and linker for 16 and 18 series.
Another thumbs for SourceBoost C
They have some excellent libraries (so does MikroElectronica C). The bright side is that SourceBoost C is EXTREMELY CHEAP! Unlimited RAM/ROM for about $70, that incudes $10 for simulated LCD and a few other IDE components.
Sadly, PIC C Compilers have followed the "Windows Way" rather than any sort of standards, such as port names, register names, etc. Most code written for other compilers generally needs to be re-written, or a lot of definitions/variables changed/renamed.
If that is true, which I do not doubt, portability is more an idea than a reality. Isn't it?
I do not know C thus have no experience on this.
Portable C applications between compilers is difficult by the inherent nature of their usually dissimilar internal peripherals, even when working with a single vendor (Microchip or Atmel). Atmel is much further with C and portatibility.
Where some compilers set up an LCD to respond to printf, I have found BoostC "lcdgotoxy" and "lcdwrite" functions much more straightforward and easy to follow. With PIC C Compilers, there really isn't a set of "Standard Libraries" as programmers are used to thinking.
Compilers which have been well written and easy to use libraries for LCD, PWM, ADC, I2C, SPI, etc are great. I wish those particular "common to embedded" eventually turned into a "Standard Library" that worked with all compilers.
We are at the "Borland/Microsoft" compiler split of 20 years ago, but in the PIC World with many more players. I could be happy if register and port naming was somehow standardized, at least between PIC C compilers, and ideally between PIC and Atmel platforms.