CCS Statistics Show Why the CCS Compiler
is the BEST compiler for PIC®MCU

Compiler Stats

Why it Matters

81,802 Compilers Sold Large customer base keeps the compiler relevant and tested.
15.9 years on the market The CCS PIC®MCU compiler is tested, tried and true. Since 04-APR-94
307 Built-in Functions Built-in Functions cut development time and improve portability between chips.
133 Example programs Libraries of complete Example Programs for common applications provide instructions to begin developing at lightning speed.
132 External peripheral drivers Save precious time by using the common drivers provided in the compiler. Can't find one you need? Contact support for your options.
22 PIC®MCU specific preprocessor directives Enable easy chip set-up, skip register and UART math set-up.
Supports 583 PIC®MCU parts for easy portability between chips Since the inception of the initial 6 chips in the Microchip line, the CCS design goal is code portability between devices.
5 integer and floating point data types (9 for 24-bit parts) Selection of integer and floating point data type will provide max efficiency savings in ROM and RAM.
97% ANSI C requirements implemented C is the most widely known programming language and ANSI is the standard
Only 1 out of every 6292 sales returned Satisfied compiler customers
359 page Printed Reference Manual Alphabetically arranged for quick reference of the Compiler Built-in Functions, Preprocessors, Examples and more.
18.2 years providing custom design services The same people designing the compiler are embedded engineers using the compiler for custom designs.

Support Stats

Why it Matters

89% of support emails are answered within 4 business hours. There is no reason to wait on hold. Support answers 95% of all emails within 24 hours. Use the email ID# to check the status of your issue.
1,860 PIC®MCU related websites linked to CCS Wide variety of PIC®MCU hobbyists and professional websites featuring CCS Compiler based projects.
110,296 posts on the CCS forum Daily posts by active users support CCS products as well as the entire PIC®MCU Community.
8,017 registered CCS forum users Share code, compare ideas and seek help.
8 books featuring the use of the CCS C Compiler Including Dave Benson's C What Happens.
32 distributors world wide Including Microchip Direct, Mouser and Digi-Key.
Compiler customers in 111 countries World-wide use

Hardware Tools Stats

Why it Matters

24 technology specific development kits with tutorials A bundle of software and hardware development tools that will teach you the basics of using a PIC®MCU for technologies new to you.
5 styles of device programmers Programmer for every application and price level.

Features Found Only in the CCS C Compiler

Bit arrays create an array of bits (or booleans).
Fixed Point Decimal gives the user decimal representation, but at integer speed. This is a phenomenal speed boost over using float. Accomplished with the qualifier: _fixed(x); x is the number of digits after the decimal the data type can hold.
#use rs232, SPI and I2C offer options to specify any pins, framing speed and other characteristics. Custom functions are generated on the fly for maximum efficiency.
Addressmod allows the user to define custom qualifiers that create variables in any kind of memory device. The identifier can be used with any data types, including structures, unions arrays and pointers.
RAM is re-used between functions not active at the same time
#Serialize assists in making serial numbers easier to implement when working with any CCS device programmer and with programmer control software. Comments are inserted into the hex file that the software interprets.
#Use Delay Creates built-in function for precision delays (like Delay_us) and will automatically configure the oscillator. This directive may be used in more than once in multiple clock speed applications.
Function Overloading the CCS Compiler has borrowed a C++ feature called function overloading. Function overloading allows the user to have several functions with the same name, with the only difference between the functions is the number and/or type of parameters.
Default Parameters can be specified in your functions, and if you don't pass the parameter to your function the default will be used.

IDE Features.

How do other IDEs measure up?

C Aware Real-time Debugger provides a high level debugger for PIC®MCU and dsPIC®DSC. Single steps at the source code level, allows for break points to be set, and target programs to printf to the debugger window and getc from it. Data can be saved every time a specified source line is executed and later be printed or saved to a disk. Unlike other debuggers, the CCS debugger also allows single stepping at the assembly level in the list file.
C Metrics Calculator displays the number of functions, statements, and comments. Others include; volume, difficulty level, effort and time to implement,and estimated number of bugs found. The Cyclomatic Complexity measure and Maintainability Index gives good insight into the structural and textual complexity of the source code.
Special viewers include quick and easy access to data sheets, valid fuses and interrupts for devices, a hex file disassembler, COD file interpreter and an advanced source/list file compare.
Automatic document generator recognizes comments that have specially marked tags as containing information that should be exported for program documentation.
Context sensitive help, when F1 is pressed and the cursor is over a keyword or function name, the help menu will appear with the selected word already searched for.
RTOS integrated into the compiler allows PIC®MCU to schedule independent tasks.
Flow chart editor is included to easily generate simple charts or schematics.
Spell checker for comments and optionally quoted strings.
Serial port utility to acess the RS232 port on a PC for testing programs.
C Constants from binary or Hex files allows the user to import binary or Hex files to create a C declaration to easily to include images or a bootloader into a C program.
Disassembler creates ASM code from a Hex file.
Smart list file compare allows you to view differences between code in two files at the ASM level.
Project Wizard includes basic code generation for higher level functionality such as generating a CAN Bus application or making a custom bootloader.
Special function register reference allows the viewing of all SFRs for a given part and has the ability to generate custom .h files with register and bit definitions for specific peripherals.
Generate multiple Hex files for chips with external memory by specifying export and import of Hex files. Use when creating bootloaders or when using a device with external memory.
Integration with external tools by defining external programs to appear on the toolbar within the programmer/debugger options for easy integration with a number of other programmers/debuggers and version control programs.

CCS C Compiler Benchmarks

ROM/RAM in Bytes

Using PIC18F4520 CCS

v.4.xxx

Microchip

C18 v3.21

Hi-Tech

v.9.60

Program to read an I2C temp sensor and display results on LCD

View source code

ROM:1638

RAM:34

ROM:3036

RAM:293

ROM:7838

RAM:148

Formatted Print with %U

View source code

ROM:296

RAM:12

ROM:2083

RAM:295

ROM:1705

RAM:37

Function to calculate CRC on a 50 Byte RAM Array

View source code

Time:481us

ROM:544

RAM:74

Time:991us

ROM:687

RAM:289

Time:506us

ROM:858

RAM:66

Industry Standard Dhrystone Benchmark

On a 20 Mhz PIC18 the CCS C Compiler generates code that can execute 691 Dhrystones a second.