Reply by Keith E. Larson December 5, 20022002-12-05
Hi Kevin

Yes, this looks wrong. Source tracking fails for assembly level .include files.

I dont have access to the COFF level code generation tools (I only have
access to the DSK tools that I personaly wrote), but I can dig into the
*.OUT file and examine the HLL tracking information. For all I know the
information might be 'in there' but not being accessed properly. But Im
betting it is not since the DSK tools also failed to track into the .include
source (how I go about HLL tracking is quite different from CC).

My bet is that since the ASM tool shell (and even the C preprocessor) are
common for all TMS320 tools, this bug can be found on other devices (someone
on the N.G. might want to try this). What I am saying is that at the 'HLL'
level syntactical things are taken care off by common functions, so this bug
is likely to be global to all TMS320 devices. Differences occur when you
get into the specific code generation nuances of each architecture.

Luckily a fix may only be a few months out. The C3x/C4x tools are slated
for CCS 2.x porting after the C2xxx device porting is completed.

You must be inlining a function (like division) to avoid the call/rets cycle
penalties. Otherwise .include files tend to be pretty small, and hence dont
need much in the way of HLL tracking. This brings up the interesting topic
of how to accelerate some of these functions.

Division
--------
A Newton-Raphson loop iterates several times to improve accuracy. If you
dont need full precision, take out a loop or two.

Logarithms
----------
If you are using a log() function to create a dB scale and dont need 0.1dB
accuracy or better, use the floating point number itself as a quick log
approximation.

Sin/Cos etc... table lookup
---------------------------
If you have the extra memory, you can perform a table lookup for a lot of
functions. Interestingly, if the function being looked up does not have a
large second derivitive (curvature), and most dont, linear interpolation
(which is pretty fast) will vastly improve the results. For example, an 8
bit lookup table (256 words) will often give you 16 bit accuracy.

Hope this helps

Best regards,
Keith Larson
=============================================
At 02:07 PM 12/4/02 -0000, you wrote:
We are developing an assembler language program for the TMS320C31. The
design is being developed using the Code Composer 4.10.36 development
environment. The hardware debugging process is achieved using Spectrum
Digitals XDS510PP emulator.

We have decided to tackle the problem using a modular approach i.e. multiple
assembler programs. I have run a few tests using the .include directive to
identify to the compiler/linker that there are N amount of external source
files. The source code within the multiple files appears to get compiled,
but I am unable to 'single step' through the source code using the Code
Composer debugger. Does anyone out there know how to do this? I'm assuming
that it is a Code Composer setup issue.

Thanks
+-----------+
|Keith Larson |
|Member Group Technical Staff |
|Texas Instruments Incorporated |
| |
| 281-274-3288 |
| |
| www.micro.ti.com/~klarson |
|-----------+
| TMS320C3x/C4x/VC33 Applications |
| |
| TMS320VC33 |
| The lowest cost and lowest power 500 w/Mflop |
| floating point DSP on the planet! |
+-----------+


Reply by Kevin Howson December 4, 20022002-12-04
We are developing an assembler language program for the TMS320C31. The design is
being developed using the Code Composer 4.10.36 development environment. The
hardware debugging process is achieved using Spectrum Digitals XDS510PP
emulator.

We have decided to tackle the problem using a modular approach i.e. multiple
assembler programs. I have run a few tests using the .include directive to
identify to the compiler/linker that there are N amount of external source
files. The source code within the multiple files appears to get compiled, but I
am unable to 'single step' through the source code using the Code Composer
debugger. Does anyone out there know how to do this? I'm assuming that it is a
Code Composer setup issue.

Thanks