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

Page 76

Advertising
background image

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

Advertising