Computer Hardware Algorithm Standard User's Guide

Table Of Contents
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 Section 2.1 )
Rule 2 All algorithms must be reentrant within a preemptive environment (including time-sliced
preemption). (See Section 2.2.3 )
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 Section 2.3.1 )
Rule 4 All algorithm code must be fully relocatable. That is, there can be no hard coded program
memory locations. (See Section 2.4 )
Rule 5 Algorithms must characterize their ROM-ability; i.e., state whether they are ROM-able or not.
(See Section 2.5 )
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 Section 2.6 )
Rule 7 All header files must support multiple inclusions within a single source file. (See Section 3.1 )
Rule 8 All external definitions must be either API identifiers or API and vendor prefixed. (See
Section 3.1.1 )
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 Section 3.1.1 )
Rule 10 All modules must follow the eXpressDSP-compliant naming conventions for those external
declarations disclosed to the client. (See Section 3.1.2 )
Rule 11 All modules must supply an initialization and finalization method. (See Section 3.1.3 )
Rule 12 All algorithms must implement the IALG interface. (See Section 3.2 )
Rule 13 Each of the IALG methods implemented by an algorithm must be independently relocatable.
(See Section 3.2 )
Rule 14 All abstract algorithm interfaces must derive from the IALG interface. (See Section 3.2 )
Rule 15 Each eXpressDSP-compliant algorithm must be packaged in an archive which has a name
that follows a uniform naming convention. (See Section 3.3.1 )
Rule 16 Each eXpressDSP-compliant algorithm header must follow a uniform naming convention. (See
Section 3.3.2 )
Rule 17 Different versions of an eXpressDSP-compliant algorithm from the same vendor must follow a
uniform naming convention. (See Section 3.3.3 )
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 Section 3.3.3 )
76 Rules and Guidelines SPRU352G June 2005 Revised February 2007
Submit Documentation Feedback