Last month the ISO approved the final technical ballot for Embedded C, an extension to the C programming language that will ease signal-processing software development. After an additional round of editing, the ISO is expected to publish the Embedded C specification as a “technical report.” An ISO technical report is similar to a standard, but carries somewhat less authority.
Embedded C extends the C programming language with support for fractional arithmetic, multiple address spaces, and I/O registers. The development of Embedded C was influenced by the needs of signal-processing software and by the hardware features of DSP processors. The support for fractional arithmetic and multiple address spaces will be particularly useful for signal-processing applications.
Fixed-point signal-processing algorithm software often uses fractional data, where numbers range from -1 to +1. Because C does not directly support fractional data types, implementing signal-processing algorithms in standard C can be awkward and error-prone. Embedded C addresses this problem by adding “fract” and “accum” data types. The fract data type supports basic fractional operations, and the accum data type supports the special-purpose “accumulator” registers available on most DSP processors.
Embedded C also adds support for multiple memory spaces, a common feature of DSP processors. For example, DSP processors often contain multiple data memory banks. Obtaining maximum performance from a signal-processing application typically requires careful placement of data in the appropriate memory spaces. In light of this need, Embedded C enables programmers to specify which memory space should be used for each item of data.
Numerous processor and compiler vendors have offered proprietary variants of C with these and related features for many years. However, these proprietary solutions offered limited portability. In contrast, applications created in Embedded C will become portable across a wide range of processors as compiler developers adopt Embedded C. This portability has the potential to greatly improve code reusability and to give system designers more flexibility in choosing a processor.
Just as importantly, Embedded C will promote a consistent programming style for signal-processing applications. Today’s proprietary solutions take widely varying approaches to supporting signal-processing applications. Consequently, programmers must learn a new programming style whenever they switch tools. In contrast, programmers will be able to move between Embedded C-based tools without having to learn a new syntax.
The Embedded C technical report is available online at http://std.dkuug.dk/JTC1/SC22/WG14/.
Add new comment