Digital Signal Processing Reference
In-Depth Information
that an address in this case is the number of a special purpose register (SPR). The
inline assembly routines above contain a clause to instruct the compiler to serialize
the accesses to the SPRs and they specify that the number of the SPR should be a
constant, as the processor does not support a dynamically computed SPR number.
Embedded C also provides methods of dynamically (at runtime) initialization of
the I/O device and grouping of a collection of I/O registers to represent a complete
device.
8
History and Future of Embedded C
Embedded C [ 8 ] is rooted in DSP-C [ 4 ] . DSP-C was and is still used as industry
standard to support features of DSP processors. DSP-C supports fixed point
types and memory spaces. The most important difference between DSP-C and
Embedded C is that the latter supports the special combinations of integral and
fixed point type operations. The DSP-C extension also supports circular buffers,
which was not included in the Embedded C report, because there were too many
different implementations of such buffers. Hardware supporting circular buffers
automatically sets a pointer to this buffer to the start of the buffer when it runs of the
end of the buffer. This is also very useful in the implementation of FIR filters and
fast Fourier transforms. ACE Associated Compiler Experts bv developed DSP-C in
collaboration with Philips Semiconductors and submitted it for standardization by
the ISO working group on C. This group adopted the rationale of DSP-C and this
resulted in Embedded C in February 2004 [ 8 ] . The standardized interface to I/O
hardware doesn't seem to be widely accepted by the industry.
Embedded C is supported by the CoSy compiler development system [ 2 ] ,
the Byte Craft Limited compilers [ 9 ] , the EDG front-end [ 6 ] , the Dinkumware
libraries [ 10 ] the Nullstone compiler performance analysis tools [ 5 ] and test suites
are supplied in Perennial [ 11 ] and SuperTest [ 3 ] . With these tools a wide range of
compiler support is covered. For more information on Embedded C see [ 1 ] .
The report on the Embedded C extension mentions two features that may be
supported in future versions. One is that if an approach for implementing circular
buffers in hardware emerges in the industry, then this may be abstracted into an
extension of Embedded C. Another is complex fixed point data types as a future
extension, because these complex types are used very often in the industry and
several DSP algorithms could be more efficiently described using complex fixed
point data types.
As fixed point types are used in the industry to trade between precision and
speed every application domain sets its own standard for the number of integral and
fractional bits. From a hardware point of view there is very little difference in the
complexity of implementing division for integer and fixed point arithmetic. From
a programming point of view however, there is a big difference. Conversions have
to be made explicit using shifts and the programmer must be aware what division
Search WWH ::




Custom Search