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

Advertising
background image

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

Submit Documentation Feedback

Advertising