A.1 general rules, Rules – Texas Instruments TMS320 DSP User Manual
Page 76

www.ti.com
A.1
General Rules
General Rules
Recall that rules must be followed in order for software to be eXpressDSP-compliant. Guidelines, on the
other hand, are strongly suggested guidelines that should be obeyed but may be violated by
eXpressDSP-compliant software.
The rules are partitioned into three distinct sections. The first two sections enumerate all of the rules and
guidelines that must be obeyed by the algorithms and the third section gathers all performance
characterization rules.
Rule 1 — All algorithms must follow the run-time conventions imposed by TI's implementation of the C
programming language. (See
)
Rule 2 — All algorithms must be reentrant within a preemptive environment (including time-sliced
preemption). (See
Rule 3 — All algorithm data references must be fully relocatable (subject to alignment requirements). That
is, there must be no "hard coded" data memory locations. (See
Rule 4 — All algorithm code must be fully relocatable. That is, there can be no hard coded program
memory locations. (See
Rule 5 — Algorithms must characterize their ROM-ability; i.e., state whether they are ROM-able or not.
(See
Rule 6 — Algorithms must never directly access any peripheral device. This includes but is not limited to
on-chip DMAs, timers, I/O devices, and cache control registers. Note, however, algorithms can
utilize the DMA resource by implementing the IDMA2 interface. (See
Rule 7 — All header files must support multiple inclusions within a single source file. (See
Rule 8 — All external definitions must be either API identifiers or API and vendor prefixed. (See
Rule 9 — All undefined references must refer either to the operations specified in Appendix B (a subset of
C runtime support library functions and a subset of the DSP/BIOS HWI API functions) or TI's
DSPLIB or IMGLIB functions, or other eXpressDSP-compliant modules. (See
Rule 10 — All modules must follow the eXpressDSP-compliant naming conventions for those external
declarations disclosed to the client. (See
)
Rule 11 — All modules must supply an initialization and finalization method. (See
Rule 12 — All algorithms must implement the IALG interface. (See
Rule 13 — Each of the IALG methods implemented by an algorithm must be independently relocatable.
(See
Rule 14 — All abstract algorithm interfaces must derive from the IALG interface. (See
)
Rule 15 — Each eXpressDSP-compliant algorithm must be packaged in an archive which has a name
that follows a uniform naming convention. (See
Rule 16 — Each eXpressDSP-compliant algorithm header must follow a uniform naming convention. (See
Rule 17 — Different versions of an eXpressDSP-compliant algorithm from the same vendor must follow a
uniform naming convention. (See
)
Rule 18 — If a module's header includes definitions specific to a "debug" variant, it must use the symbol
_DEBUG to select the appropriate definitions; _DEBUG is defined for debug compilations and only
for debug compilations. (See
76
Rules and Guidelines
SPRU352G – June 2005 – Revised February 2007