www.ti.com
General Rules
Recall that rules must be followed in order for software to be
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
Rule 2 — All algorithms must be reentrant within a preemptive environment (including
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
Rule 6 — Algorithms must never directly access any peripheral device. This includes but is not limited to
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
Rule 10 — All modules must follow the
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
Rule 16 — Each
Rule 17 — Different versions of an
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 |