Subject: Text for an NP on Embedded extensions for C.
Source: Willem Wakker (ACE, the Netherlands)
Status: Discussed at the October 1999 WG14 meeting.
Extensions for the programming language C to support embedded processors.
To define extensions to the syntax and semantics of the C language (as defined in ISO/IEC 9899:1999) that allow the development of portable C programs that make optimal use of the characteristics of processors (such as Digital Signal Processors) used in embedded systems.
3. Purpose and Justification
In the fast growing market of embedded systems there is an increasing
write application programs in a high-level language such as C.
there are two reasons for this trend: programs for embedded systems get
complex (and hence are difficult to maintain in assembly language) and
different types of embedded systems processors have a decreasing
(which implies more frequent re-adapting of the applications to the new
Various technical areas have been identified where functionality offered
processors (such as DSPs) that are used in embedded systems cannot
exploited by applications written in C. Examples are fixed-point
usage of different memory spaces, low level I/O operations and others.
current proposal addresses only a few of these technical areas; WG14
propose further work on the other issues.
This NP proposes to establish a new project to produce a Technical
(type 2) in which extensions to the C language are defined that allow
programmers to fully exploit fixed-point operations offered by embedded
processors while ensuring portability of implemented algorithms.
Some other issues (like the usage of different memory spaces) will be
studied; it is not yet clear whether this functionality is suitable for
specification in the proposed Technical Report, or if the topic will be
with in a future TR (under another NP).
The main area of work will the definition of the syntax and semantics of
fixed-point datatypes within the C typesystem. Both the C aspects (type
specifiers, type conversions, constant definitions and the relationship
the standard C datatypes) as well as typical fixed-point arithmetic
issues will be addressed. Where possible, issues that arise from the
fixed-point arithmetic (like saturation) will be formulated in a general
so that they can be applied to non fixed-point artithmetic as well.
Although embedded processors typically work with binary (radix=2)
datatypes, the inclusion of decimal (radix=10) fixed-point datatypes
inclusion of a generalized fixed-point datatype (like the Scaled
defined in the Language-independent datatypes standard) will be
Prior art (for instance as described in WG14 N854) will be taken
while developing the specifications.
Other technical areas that might be addressed (depending on input
are different memory spaces and the handling of circular buffers.
The project also includes the production of the text for a Rationale
(either separate or as part of the project document).
Although the proposed extensions will be defined as 'general' (i.e.,
complete) additions to the C standard, the scope of application of the
extensions is (at least at this moment) assumed to be limited to
processors. Hence it is not proposed to define the extensions in an
Amendment to the C standard but as a Technical Report type 2, which can
later stage, and if deemed relevant, be included in the C standard as a
part or (normative of informative) annex.
4. Program of Work
A Technical Report Type 2, with a supporting Rationale will be developed
for this project.
5. Relevant documents to be considered
ISO/IEC 9899:1999 - Programming Language C
WG14 N854 - DCP-C: An extension to ISO/IEC
ISO/IEC 11404:1996 - Language-independent datatypes.
6. Cooperation and liaison
All ISO/IEC JTC1/SC22 Working groups that have an interest in supporting
7. Preparatory work offered with target date(s)
A PDTR document will be ready for registration 24 months after the
of the project by JTC1.