B.1 ti c-language run-time support library, B.2 dsp/bios run-time support library, Library – Texas Instruments TMS320 DSP User Manual
Page 82

www.ti.com
B.1
TI C-Language Run-Time Support Library
B.2
DSP/BIOS Run-time Support Library
TI C-Language Run-Time Support Library
Recall that only a subset of the DSP/BIOS and the TI C run-time support library functions are allowed to
be referenced from an eXpressDSP-compliant algorithm.
In the future, this list of allowable APIs will grow to include a rich set of DSP math function calls; e.g.,
functions for computing a DCT, FFT, dot product, etc.
The following table summarizes the TI C-Language Run-time Support Library functions that may be
referenced by eXpressDSP-compliant algorithms.
Allowed or
Disallowed
Category
Typical Functions in Category
Notes
allowed
String functions
strcpy, strchr, etc
(1)
allowed
Memory-moving functions
memcpy, memmove, memset, etc.
(2)
allowed
Integer math support
_divi, _divu, _remi, _remu, etc.
(2)
allowed
Floating point support
_addf, _subf, _mpyf, _divf, _addd, _subd, _mpyd, _divd,
(2) (3)
log10, cosh, etc.
allowed
Conversion functions
atoi, ftoi, itof, etc.
(2)
disallowed
Heap management functions
malloc, free, realloc, alloc,
…
(4)
disallowed
I/O functions
printf, open, read, write, etc
(5)
disallowed
misc. non-reentrant functions
printf, sprintf, ctime, etc.
(4) (6)
(1)
Exceptions: strtok is not reentrant, and strdup allocates memory with malloc.
(2)
Some of these are issued by the compiler automatically for certain C operators.
(3)
The errno paradigm is not reentrant. Thus, errno must not be used by eXpressDSP-compliant algorithms.
(4)
Algorithms must not allocate memory.
(5)
Algorithms are not allowed to perform I/O.
(6)
Algorithms must be reentrant and must, therefore, only reference reentrant functions.
The HWI module's HWI disable, HWI enable, and HWI restore are the only allowed DSP/BIOS functions.
These operations can be used to create critical sections within an algorithm and provide a
processor-independent way of controlling preemption when used in a DSP/BIOS framework.
82
Core Run-Time APIs
SPRU352G – June 2005 – Revised February 2007