Please visit our Web

Embedded tools and C compilers for developing compact, efficient code

Software C Compilers


Overview

HI-TECH Software's range of C language embedded software development systems offer real benefits over traditional assembly language programming. By using our ANSI/ISO standard compilers not only can development of complex embedded systems be completed in a fraction of the time, but reliability is improved, and maintenance is easy. On top of this you get access to facilities like floating point arithmetic that are just not available in assembler or subset C compilers, allowing you to add features to your product that previously were considered ``too hard''.

A complete package

HI-TECH C is not just a C compiler; it is a complete development system for C and assembler code. It integrates a powerful C compiler, producing code to rival hand-written assembler, a full-featured macro assembler for those occasions when you absolutely must program one instruction at a time, a remote debugger for running and debugging your code in your own hardware, without the expense of an in-circuit emulator, all tied together with a fast, flexible programming environment that lets you produce working code in less time than ever.

Easy to use

The HI-TECH Professional Development Environment - HPD -is part of every HI-TECH C compiler. Even if you have never programmed an embedded system before, HPD streamlines the process, from entering your source code through compiling and correcting errors to downloading. Even on slow PCs our blindingly fast user interface with full point-and-click functionality lets you concentrate on your application, not the mechanics of using the compiler. Single click or keystroke compilations present you with a list of any compile-time errors, and place the editor right on the source code. If you're not sure what the error message means, the EXPLAIN button will bring up a detailed description of the error, and suggestions for correcting it.

To manage a project involving multiple source files, HPD allows you to specify the source files along with memory addresses and other options. Start a new project, and you are presented with a sequence of dialogue boxes prompting you to enter all required information to build your final code. Automatic dependency checking is built into the ``make'' function, so that if you change a header file HPD will automatically recompile just those source files that are affected.

Handy utilities

HPD has several handy utilities built in, including a multi-radix calculator and an ASCII character table.

On-line help

HPD includes several help facilities, ranging from a full listing of the C library functions in a hypertext linked file to a list of editor key sequences. Dialogue boxes have context-sensitive help available, to explain memory address selection etc. Some compilers come with on-line listings of assembler instructions for the target processors.

Command line operation

If you use a make utility, or just prefer a command line interface, HI-TECH C also has a simple, powerful command line interface. One command will compile and link your program, whether one or several C or assembler source files. It will prompt you for memory addresses, if they are not specified on the command line.

Full ANSI/ISO standard C

All HI-TECH C compilers implement the full Standard C language. You can write C code with any standard C compiler, test it under MSDOS or Unix, then recompile it for your embedded application. You can use structures, pointers, longs and floats without having to worry about whether the cross compiler implements them or not. A full library provides printf and other console I/O functions, for easy insertion of debugging or testing code. Need a sine or log function? They're in the library, and guaranteed accurate.

Assembler-free Programming!

Where necessary, we've added features to the language to allow you to write complete embedded applications without a single line of assembler code. I/O ports are directly addressable as C variables, even on processors with a separate I/O address space. Interrupts can be serviced directly in C, with our special interrupt keyword. All register saving and restoring is taken care of by the compiler. Special macros let you set up interrupt vectors simply and easily. For processors with more than one kind of interrupt, there are provisions for each one (e.g. non-maskable interrupts, fast interrupts).

Full Library Source Code

We provide you with the full source code to all library routines and run-time startoff modules. This enables you to customise the run-time environment for a particular hardware system, if you need to do so. And there is no restriction on use of executable library code in your applications - no royalties, no limitations.

Debug YOUR code in YOUR hardware!

With our bundled remote debugger, LUCIFER, you can set up your own target hardware for debugging from your PC Lucifer comprises a source level (C and assembler) debugger that runs on the PC, and a small monitor ROM that goes in your target hardware. With a simple serial connection from the target to the PC, Lucifer lets you download your code, run it, single step it, breakpoint and examine data, registers or I/O ports without any additional hardware. Lucifer works at both C source and assembler level. You can set a breakpoint on a C source line, an assembler label, or an absolute address. Step one C source line, or one assembler instruction.

Modify registers, dump strings. And Lucifer can be invoked automatically from HPD, our integrated environment. You can have the code downloaded immediately on a successful compilation, and be in the debugger without a single extra keystroke. Best of all, Lucifer is a zero cost option - you don't have to buy any additional software or an expensive in-circuit emulator. And it runs your code at full speed in your hardware, not a snail-like software simulator.

Beat Firmware Bloat!

HI-TECH C uses advanced Artificial Intelligence techniques to write the smallest, fastest assembler code possible from your C program. You'll be amazed at its cleverness - in fact it sometimes out-codes experienced assembler programmers! Our customers regularly see a code size reduction of 30% when moving from another compiler to HI-TECH C. And we don't achieve compact code at the expense of speed. HI-TECH C does not use ``threaded code'' or other subroutine-intensive techniques; it writes high quality in-line assembler code using library functions only for complex operations such as long division. We even analyse constant strings and merge similar strings and sub strings, thus further minimising ROM usage.

To Optimise or not to Optimise?

HI-TECH C has several selectable levels of optimisation. You can choose what to use when, so that you can compile at maximum speed during development, but generate the smallest, fastest code for your production version. Optimisation can be tuned for small code versus fast code in some compilers.

Complete Control

When you write with HI-TECH C, you, the programmer, are in charge. You decide what memory to use, what library routines to call, and what format you want the code in. With HPD simple dialogues allow you to specify the ROM and RAM addresses, but if you need to fine tune memory allocation, the linker commands are directly accessible and editable. From the command line you can drive the linker directly and have total control over every aspect of code placement.

The Widest Range

Our C cross compilers cover nine different processor families, with more being added regularly. This represents hundreds of different microprocessors, from many different manufacturers. There's bound to be a chip for your special application supported by one of our packages.


Page up-dated at March 17, 2008


homeHome Software CartellaUtility Software Tables