Embedded C is a language extension to C that is the subject of a technical report by the ISO working group on C named “Extensions for the programming language C to support embedded processors” [3]. It aims to provide portability and access to common performance increasing features of processors used in the domain of DSP and embedded processing.

Embedded C adds fixed-point data types, named address spaces and hardware I/O to C. Fixed-point primitives give the programmer direct access to a processor’s fixed-point functionality. Named address spaces can be used to give control over multiple memory banks, which are typically present in DSP processors to increase the effective bandwidth to the ALU. The hardware I/O specification provides a standardized abstraction layer for accessing I/O hardware registers.

Fixed-point primitives and named address spaces are performance increasing features. They are motivated by a practical and economic need to program DSP processors in a high level language instead of assembly. The hardware I/O specification improves portability, allowing the same (driver) source code to run on multiple platforms.