C6808 C Compiler for Freescale HC08/HCS08/RS08

C6808 | |

The C6808 Code Development System supports all Freescale HC08, HCS08, and RS08 microcontrollers.

Byte Craft Limited

The C6808 Code Development System includes:

  • an optimizing C Cross-compiler,

  • the BCLink linker,

  • an Integrated Development Environment and editor,

  • a built-in macro cross-assembler.

Key Features

C6808 has several key features:

RS08 support

Support for Freescale RS08 in C6808 is now available. See RS08 support for details.


#pragma thread directives allow a threaded programming style, with or without interrupts. C6808 causes threads to be dispatched on a combination of hardware and software factors. See Threads in C for more information.

Memory Management

C6808 includes enhanced memory management such as LOCAL and _Access memory directives. The LOCAL address space directive allows the user to maximize the use of RAM, direct the placement of local variables, re-use RAM locations and pass multiple arguments to functions.

The _Access memory directive adds support for variables in all types of memory, external or internal. For more information, see this article.

Features In Detail

C6808 Code Development System product shot

Other features of the C6808 Code Development System include:

  • Highly optimized generated code. Full versions generate ROMable code, demonstration versions generate listing files with assembly.

  • Part-specific header files describe the unique features of each target device.

  • Compiler configuration using #pragma directives.

  • Ports are declared and protected using the #pragma port series of directives, with read and write restrictions.

  • The #pragma vector directive specifies the location and assigned name for interrupt sources.

  • BClink Linker links object files and libraries compiled with C6808

    Alternatively, object libraries can be included directly in C source files using Absolute Code Mode.

  • Named address spaces support the grouping of variables at specific memory locations.

    _Access address space declares variables at special locations such as external devices or internal EPROM.

    LOCAL address space allows you to use local variables. Local variables are reused between functions, saving resources.

  • Extensions to the C language are designed specifically for the embedded systems developer. Some extensions include bit-sized data types, binary constants, direct variable placement with the @ symbol, and support for processor-specific functions and instructions.

  • Data types include:

    _Bool, bits

    char, short, int, long

    Unambiguous integers: int8 to int32.

    Fixed point types: _Fract, _Accum, and unambiguous versions

    Register-oriented types for direct access to processor registers when necessary

  • The default int data type is selectable between 8 or 16 bits.

  • Packed bit fields in structs are available.

  • Include single and multiple lines of inline assembly within a C program with the #asm and #endasm directives

  • Extensive control over computer-generated initialization is available.

  • C6808 generates source-level information required for emulators.

  • The compiler supports the instruction extensions DAA, MUL, STOP, WAIT, CLC, CLI, NOP, RSP, SEC, SEI, SWI

  • Direct access to AC, X, CC registers through C is available.

  • C6808 supports special memory location access to various configuration registers.

  • C6808 generates source-level information required for source level debugging.

    Use this with many evaluation boards and emulators, including Freescale, P&E, Ashling.