Compiler Comparison Chart


The following chart shows the combined results from several volunteers who have provided this data. CCS has not verified this information. Anyone who wishes to contribute their comments or product reviews to this page, please forward information to support@mcuspace.com.

Jump To Menu: · CCS · Microchip · Hi-tech · IAR · Forest Electronics · B Knudsen · Sourceboost

  CCS - C v.4.xxx Microchip C18 v.3.21/C30 v.3.10c/C32 v.1.03/MPLAB v8.10 HI-TECH PICC v.9.60/v.9.51 IAR Embedded Workbench v.2.21
Section 1:
Products/Prices/Hosts
Supported Parts PIC 12-bit (10F2xx, etc.)
PIC 14-bit (16F877A, etc.)
PIC 16-bit (18F4520, etc.)
PIC 24-bit (dsPIC30F2010, PIC24Fxx, etc.)
C18 = PIC 16-bit (18F4520, etc.)
C30 = PIC 24-bit (dsPIC, PIC24, etc.)
C for PIC24 = PIC 24-bit (PIC24F & PIC24H only)
C for dsPIC = PIC24-bit (dsPIC only)
C32 = PIC 32-bit (PIC32 only)
PICC = PIC 12-bit (10F2xx, etc.)
PICC = PIC 14-bit (16F877A, etc.)
PICC18 = PIC 16-bit (18F4520, etc.)
dsPICC = PIC 24-bit (dsPIC, PIC24, etc.)
C for PIC32 - PIC 32-bit (PIC32 only)
PIC16/17= PIC 14-bit (16F877A, etc.)
PIC18 = PIC 16-bit (18F4520, etc.)
dsPIC = PIC 24-bit (dsPIC, PIC24, etc.)
 
Platforms Available Windows, Linux
 
Windows
 
Windows, Linux, Mac OS, Sun Windows
 
Price License:
12-bit = $50
14-bit = $150
16-bit = $200
24-bit = $250
12-bit, 14-bit + IDE = $350
12-bit, 14-bit, 16-bit + IDE = $500
24-bit + IDE = $350
12-bit, 14-bit, 16-bit, 24-bit + IDE = $600

Maintenance:
(30-60 days included)

12-bit = $40/year
14-bit = $100/year
16-bit = $125/year
24-bit = $150/year
12-bit, 14-bit + IDE = $200/year
12-bit, 14-bit, 16-bit + IDE = $250/year
24-bit + IDE = $175/year
12-bit, 14-bit, 16-bit, 24-bit + IDE = $275/year
License:
16-bit + IDE = $495
24-bit + IDE = $895
24-bit (PIC24) + IDE = $495
24-bit (dsPIC) + IDE = $495
16-bit + 24-bit + IDE = $1,190
16-bit + 24-bit + 32-bit + IDE = $2,235
32-bit + IDE = $1,195
 
 
 
 
 
 
 
 
 
 
License:
12-bit, 14-bit + IDE = $995 ($1,495)
16-bit + IDE = $995 ($1,495)
24-bit + IDE = $1,195
32-bit + IDE = $1,995
16-bit, 24-bit, 32-bit + IDE = $4,995
Support:
12-bit, 14-bit + IDE = $275 ($325)
16-bit + IDE = $275 ($325)
24-bit + IDE = $325
32-bit + IDE = $400
16-bit, 24-bit, 32-bit + IDE = $1,125
License:
14-bit + IDE = $2,695
16-bit + IDE = $2,695
24-bit + IDE = $2,695
 
 
Includes:
1-year Warranty
 
 
 
H/W Development Kits Available Yes Yes No No
Integrates Into MPLAB Yes Yes Yes Yes
Section 2:
Language Features
Automatic RAM Allocation

(Some compilers require you to specify which bank to allocate variable)

Yes No No No
Data Types Integers:
int1
int8
int16
int32

Float:
32-bit
 
Integers:
int8
int16
int32
 
 
Float:
32-bit for C18/C30
64-bit for C30
Integers:
int1
int8
int16
int32

Float:
24-bit
32-bit
Integers:
int8
int16
int32
 
 
Float:
32-bit
 
Standard C Constants Yes Yes Yes Yes
Standard C Statements Yes Yes Yes Yes
Standard C Operators Yes Yes Yes Yes
Standard C Pre-Processor Directives Yes Yes Yes Yes
Extended Compiler Control Directives 24 Extensions 13 Extensions 15 Extensions 5 Extensions
Recursion No Yes No No
Inline Assembly Yes Yes Yes Yes
Variable Number of Parameters Yes Yes Yes No
printf User re-direction Yes Yes No No
Arrays of Bit Yes No No No
Orphaned (un-used) Functions Removed Yes No No Yes
Reference Parameters Yes Yes No No
ISR

(With context saving/restoring)

Yes Yes Yes No
Pointers to Constants Yes Yes Yes Yes
Function Overloading Yes No No No
Default Parameters Yes No No No
Can Locate C Data in Non-RAM Memory Yes No No No
Example Programs/Drivers Yes
130 examples
Yes
4 examples
Yes
14 examples
Yes
5 examples
Automatic Packing of Bit Variables Yes No Yes No
Section 3:
Libraries Supplied
Standard C char/string Functions Yes Yes Yes Yes
Standard C Math Functions Yes Yes Yes Yes
Standard C File System Functions No No No Yes
Standard C Dynamic Memory Functions Yes No No Yes
Dynamic RS232 Library

(Dynamic meaning can use any pins, any number of ports, even if it has no hardware peripheral)

Yes No No No
Dynamic SPI Library Yes No No No
Dynamic I2C Library Yes No No No
printf/getc IO Library Yes Yes Yes Yes
Ext Device Drivers Yes
140 Drivers
No
 
No
 
No
 
PIC® MCU Specific Built-in Functions Yes
80 Functions
Yes
54 Functions
No
 
No
 
Delay Functions Yes Yes No No
RTOS Yes
Only with IDE
No
 
Yes
With purchase of a seperate application
No
 
Section 4:
IDE
IDE Yes Yes Yes Yes
Debugger Within IDE Yes Yes Yes Yes
New Project Wizard Yes Yes Yes Yes
Integrated Source Level Debugger Yes Yes Yes Yes
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)

Yes No Yes Yes
C-Metrics Calculator Yes No No No
Automatic Document Generator Yes No No No
Flow Chart Editor Yes No No No
Spell Checker Yes No No No
Section 5:
Benchmarks (ROM/RAM in Bytes)
Program to Read an I2C Temp Sensor and Display Result on LCD ROM: 1638
RAM: 34
ROM: 3036
RAM: 293
ROM: 3879
RAM: 30
ROM: 7838
RAM: 148
Floating Point

Example 1:
float f = 5.0, g = 600.0, h;
h = f*g;

Time: 27.5 us
ROM: 350
RAM: 28
Time: 42.5 us
ROM: 416
RAM: 286
Time: 83.4 us
ROM: 428
RAM: 22
Time: 27.6 us
ROM: 454
RAM: 33
Formatted Print

Example 2:
int i = 25;
printf("Hello World i = %U", i);

ROM: 296
RAM: 12
ROM: 2083
RAM: 295
ROM: 1705
RAM: 37
ROM: 5042
RAM: 190
Function to Calculate CRC on a 50 Byte RAM Array Time: 481 us
ROM: 544
RAM: 74
Time: 991 us
ROM: 687
RAM: 289
Time: 506 us
ROM: 858
RAM: 66
Time: 890 us
ROM: 1022
RAM: 137

The following chart shows the combined results from several volunteers who have provided this data. CCS has not verified this information. Anyone who wishes to contribute their comments or product reviews to this page, please forward information to support@mcuspace.com.

Jump To Menu: · CCS · Microchip · Hi-tech · IAR · Forest Electronics · B Knudsen · Sourceboost

  CCS - C v.4 Forest Electronics v14 C Compiler B Knudsen CC5X CC8E C Compilers Sourceboost C Compiler
Section 1:
Products/Prices/Hosts
Supported Parts PIC 12-bit (10F2xx, etc.)
PIC 14-bit (16F877A, etc.)
PIC 16-bit (18F4520, etc.)
PIC 24-bit (dsPIC30F2010, PIC24Fxx, etc.)
PIC 14-bit (16F877, etc.)
PIC 16-bit (PIC18F4520, etc.)
 
 
 
CC5X = PIC 12-bit (10F2xx, etc.)
CC5X = PIC 14-bit (16F877A, etc.)
CC8E = PIC 16-bit (18F4520, etc.)
 
PIC 14-bit (16F877A, etc.)
PIC 16-bit (18F4520, etc.)
 
 
Platforms Available Windows, Linux
 
Windows
 
Windows
 
Windows
 
Price License:
12-bit = $50
14-bit = $150
16-bit = $200
24-bit = $250
12-bit, 14-bit + IDE = $350
12-bit, 14-bit, 16-bit + IDE = $500
24-bit + IDE = $350
12-bit, 14-bit, 16-bit, 24-bit + IDE = $600

Maintenance:
(30-60 days included)

12-bit = $40/year
14-bit = $100/year
16-bit = $125/year
24-bit = $150/year
12-bit, 14-bit + IDE = $200/year
12-bit, 14-bit, 16-bit + IDE = $250/year
24-bit + IDE = $175/year
12-bit, 14-bit, 16-bit, 24-bit + IDE = $275/year
License:
14-bit = $115
16-bit = $160
 
Support:
Basic: $65/year
Full: $110/year
 
 
 
 
 
 
 
 
 
 
 
License:
CC5X: 12-bit, 14-bit, 16-bit = $250
CC5X: 12-bit, 14-bit, 16-bit + IDE = $520
 
CC8E: 16-bit = $250
CC8E: 16-bit + IDE = $520
 
 
 
 
 
 
License:
Lite: 14-bit, 16-bit + IDE = $4.99
Standard: 14-bit, 16-bit + IDE = $29.95
Full: 14-bit, 16-bit + IDE = $69.95
Pro: 14-bit, 16-bit + IDE = $149.95
 
Support:
Full = $69.95/year
Pro = $199.95/year
 
 
 
 
 
 
 
 
H/W Development Kits Available Yes Yes No Yes
Integrates Into MPLAB Yes Yes Yes Yes
Section 2:
Language Features
Automatic RAM Allocation

(Some compilers require you to specify which bank to allocate variable)

Yes Yes Yes Yes
Data Types Integers:
int1
int8
int16
int32

Float:
32-bit
 
Integers:
int1
int8
int16
int32
 
Float:
32-bit
 
Integers:
int1
int8
int16
int24
int32
Float:
16-bit
32-bit
Integers:
int1
int8
int16
int32
 
 
 
 
Standard C Constants Yes Yes Yes Yes
Standard C Statements Yes Yes Yes Yes
Standard C Operators Yes Yes Yes Yes
Standard C Pre-Processor Directives Yes Yes Yes Yes
Extended Compiler Control Directives 24 Extensions 22 Extensions No Extensions No Extensions
Recursion No Yes No No
Inline Assembly Yes Yes Yes Yes
Variable Number of Parameters Yes Yes Yes No
printf User re-direction Yes Yes No No
Arrays of Bit Yes No Yes Yes
Orphaned (un-used) Functions Removed Yes No Yes Yes
Reference Parameters Yes No No Yes
ISR

(With context saving/restoring)

Yes Yes Yes No
Pointers to Constants Yes Yes Yes Yes
Function Overloading Yes No No Yes
Default Parameters Yes No No No
Can Locate C Data in Non-RAM Memory Yes No No No
Example Programs/Drivers Yes
130 examples
Yes
7 examples
Yes
8 examples
Yes
16 examples
Automatic Packing of Bit Variables Yes Yes No No
Section 3:
Libraries Supplied
Standard C char/string Functions Yes Yes No Yes
Standard C Math Functions Yes Yes No No
Standard C File System Functions No No No No
Standard C Dynamic Memory Functions Yes No No Yes
Dynamic RS232 Library

(Dynamic meaning can use any pins, any number of ports, even if it has no hardware peripheral)

Yes Yes No No
Dynamic SPI Library Yes Yes No No
Dynamic I2C Library Yes Yes No No
printf/getc IO Library Yes Yes No Yes
Ext Device Drivers Yes
140 Drivers
Yes
3 Drivers
No
 
No
 
PIC® MCU Specific Built-in Functions Yes
80 Functions
Yes
6 Functions
No
 
Yes
15 Functions
Delay Functions Yes Yes No Yes
RTOS Yes
Only with IDE
No
 
No
 
Yes
 
Section 4:
IDE
IDE Yes Yes No Yes
Debugger Within IDE Yes Yes No Yes
New Project Wizard Yes Yes No Yes
Integrated Source Level Debugger Yes Yes No Yes
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)

Yes No No No
C-Metrics Calculator Yes No No No
Automatic Document Generator Yes No No No
Flow Chart Editor Yes No No Yes
Spell Checker Yes No No No
Section 5:
Benchmarks (ROM/RAM in Bytes)
Program to Read an I2C Temp Sensor and Display Result on LCD ROM: 1638
RAM: 34
ROM: 3750
RAM: 20
ROM: 1060
RAM: 26
ROM: 2595
RAM: 54
Floating Point

Example 1:
float f = 5.0, g = 600.0, h;
h = f*g;

Time: 27.5 us
ROM: 350
RAM: 28
Time: 60.0 us
ROM: 454
RAM: 23
Time: 16.88 us
ROM: 236
RAM: 20
Float Support
Not Tested
 
 
Formatted Print

Example 2:
int i = 25;
printf("Hello World i = %U", i);

ROM: 296
RAM: 12
ROM: 970
RAM: 19
No printf Library
 
ROM: 887
RAM: 52
Function to Calculate CRC on a 50 Byte RAM Array Time: 481 us
ROM: 544
RAM: 74
Time: 3700 us
ROM: 1550
RAM: 273
Time: 597 us
ROM: 780
RAM: 125
RAM Greater Than
512 Bytes Required
To Run Program