Technical discussions about the TI C54x DSPs (including the c5401, c5402, c5402a, c5404, c5407, c5409, c5409a, c5410, c5410a, c5416, c5420, c5421, c5441, c549, c5470 and c5471).
Ahmad-
> 1- Would you know how we can perform 40-bit operations like add or
> multiply in C54x which its longest data tyype is 32 bit?
> In MELPe 1200bps there is some functions which does 40-bit
> operation do you know how can I implement them for C54x?
Here are some docs that should help:
http://focus.ti.com/lit/an/spra297/spra297.pdf
http://focus.ti.com/lit/ug/spru173/spru173.pdf
http://focus.ti.com/lit/an/spra554b/spra554b.pdf
The first doc is a good one, even though it's about C62xx and not C54x. It explains
how to use a series of 16-bit multiplies to achieve 32-bit and 64-bit results. The
graphics in the explanation are excellent.
In the second doc, look for section 6.4, Extended Precision Arithmetic.
> 2- if I want to define a big array in assembly I should write its
> type (for example .int or .word) at the first of each line. How
> can I do it if the number of lines in my array were high?
The question doesn't seem clear. Do you mean like this:
int ahmad_array[N] = {
5764, 5782, 6975, 6370, 5389,
7926, 6939, 7332, 8027, 8468,
...
...
}
The above array definition can be as big as you want. If you want the array to be
loaded into program memory (re. one of your previous questions), then use:
const int ahmad_array[N] = {
-Jeff
------------------------------------
OMAP35x EVM jump-starts low-power apps
------------------------------------
The modular and extensible OMAP35x Evaluation Module (EVM) enables developers to start building
applications based on the OMAP35x architecture:http://www.DSPRelated.com/omap35x