You are here

What should the good C language tool look like?

If you are going to invest more than a small amount of money, you have to decide what the tool is going to be used for. If you are just choosing the right compiler, pay attention to the following things:

  • Integrated development environment (IDE)
  • Project control and compilation (intelligent make)
  • Supported x51 clones, are the new instruction supported?
  • Software debugger, simulation of new x51 peripherals
  • External program connectivity (CVS, PC-Lint, …)
  • Output format of the compiler (BIN, Intel-HEX, OMF-51, …),
  • Code optimalization, is it possible to create bigger application than 64kB?
  • Memory models (internal/external CODE and XRAM),
  • Compilation fault liability
  • ANSI C standard support
  • Range of standard C language functions implemented
  • Is the producer still developing the product? Updates, support?
  • Documentation

List of C compilers

Differences among the compilers

I cannot make an objective comparison of the compilers, but I might tell you some useful information, how to chose a compiler. I have tried only the following C compilers: Keil, SDCC, Franklin, Hi-Tech, Reads51, μC51..

  1. Have a look at the date of the last modification of the compiler. Try to work with the last version of the compiler. It is strongly discouraged to buy a compiler which is not going to be upgraded any more (Franklin Software) and the last version was released several years ago.
  2. Note which clones of x51 are supported. There are sometimes only the 8051/52 processors supported. (SDCC). You should select the compilation with the enlarged instruction set sometimes, … (Keil).
  3. Try to compile a trivial application using several compilers. Check if there is a header file for the processor you would like to use. In which format are the header files written? Can I use the header files somewhere else?
  4. Is it a supported compiler (Keil, Hi-Tech, …) or did somebody want to create one himself? (μC51)? 
  5. Is it a full C compiler or the small type of C compiler, which is not really usable? (Reads51. 
  6. How does the compiler works with the stack? The compiler must free the memory when it is not going to use it. (SDCC). 
  7. Is the development environment really a Win32 application type or is it only a DOS mode application? (Hi Tech)? 
  8. Does the producer of the compiler offer other compilers for other MCU types?  
  9. Which format of data storage does the compiler use? (big/little endian) (Keil/SDCC)? 

Finally I should say that the compiler has no problems if you are using only the integrated on-chip peripherals. If you would like to test the parameters and the functionality of the compiler, try to make a program containing at least 1000 lines of code in large mode using external XRAM memory.

Unfortunately, it's not easy to transfer this application to another environment. Especially if you are doing this for the first time. The reason is that you can write solutions in very different style in C language and the different compilers implement your ideas in different ways.

SDCC is an open source project, which is maintained by a group of fans;however, compared to the other commercial projects, it's quite good. The biggest disadvantage is, that there is no IDE in SDCC so the comfort of programming is not the same as in Keil. The syntax is the same in SDCC and Keil for the x51 processors. You can write the programs for both compilers.

Keil C51 is one of the best C compilers for x51 you can get. Several years of development are visible on the project. If you are going to buy some commercial product, I would recommend you to chose Keil.


For the RD2 kitu, we have chosen the Keil and SDCC compilers for ourexamples. You will find more than 40 solved examples on our CD

Download & Links


Author :  Jan Rehak

Hodnocení článku: