www.ti.com

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.

A.1 General Rules

Rule 1 — All algorithms must follow the run-time conventions imposed by TI'simplementation 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'sheader 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

Page 76
Image 76
Texas Instruments TMS320 DSP manual General Rules