DSPower® Real-Time Code Generator
DSPower® Real-Time Code Generator
The DSPower® Visual Environment includes an automated real-time code generator
(RTCG) which can be used to generate real-time executable code for DSP devices.
When generating code, the RTCG first performs a dependency check on all blocks,
C/asm files, and other files (e.g. library files) in the project. The RTCG then builds
a linker control file and make file, and automatically controls the DSP tools
(C compiler, linker, and assembler) in the background, based on current settings of the
DSPower Visual IDE. The result is an executable
COFF file which can be downloaded to a DSP/data acquisition board. Additionally, more
than 80 types of DSP/data acquisition hardware are also supported.
The RTCG automates the process of making user-defined changes and additions to the "base"
DSP source code framework included with DSPower and DirectDSP
software. The base DSP code
framework supports several default blocks, such as analog input/output, common DSP
functions such as FFT, correlation, digital filters, math functions, and more.
The RTCG allows the real-time buffer size (framesize) to be specified, and automatically
configures analog input/output properties in the base DSP code framework depending on block
setup parameters. Real-time framesize can range from 1 to 16384 or higher, depending on
amount of SRAM available on the DSP board. For example, a framesize setting of 1 effectively
invokes sample-based processing, which is common in some telecom algorithms. Board-dependent
analog I/O initialization, sample interrupts, dual-buffering, and host-notification are
handled automatically--all based on block setup parameters and properties inside the
visual environment.
The RTCG also supports embedded "probe-point" and debug blocks, including symbol (variable)
readout, waveform display, and gauges and monitors. Probe-point blocks can be used
synchronously as part of diagrams, or asynchronously, in which case they operate
independently of the block diagram based on a specified update rate (in msec). "Control
surface" blocks are also provided, such as knob, switch, etc. which can likewise be tied
to symbol or variable names.
|