[Tremor] TI55xx implementation: stuck

Monty xiphmont at xiph.org
Mon Oct 18 13:33:12 PDT 2004

On Fri, Oct 15, 2004 at 06:57:18PM +0200, Jochen Wolff wrote:
> Hi all!
> I'm trying to implement the Tremor code on a TI55xx DSP board. As I'm a real
> newbe with both the Tremor Code and DSP programming I'm really a bit stuck
> at the moment. And I'm not really good in all the programming either. What I
> managed to do so far is compiling the Tremor code with GCC and the provided
> makefile.
> My main problems are:
> - Solving the problem with 64bit variables and rewriting the basic math
> functions needed. Is it necessary to do that in assembler or can I get away
> with it?

None of the 64 bit math needs to be fast; it's only used in a few
places to track 64 bit fields in the header, like granpos.

I have an implementation of the basic 64 bit math needed as a header,
I'll dig that out (nudge me if I don't send it in a day or two).

> - Spotting all commands in the code where 64bit variables cause a problem.

ogg_uin64 should find them :-)

> - Transporting the code into TI CCStudio: 

First off: I'm terribly sorry you're stuck with CCS.  CCS really
drives home that fact that TI doesn't seem to actually use any C code
themselves.  It is a perfectly awful compiler.  You can expect to need
to write alot of assembly to get acceptible performance.  The TI DSPs
are nice chips, but they do suffer from a low quality toolchain.

> understand what the autogen
> function does, replace it and get both the library and the program code
> compiled in CCS. 

All autogen does is try to automatically build a makefile that takes
into account all the quirks and requirements of a given platform, a
necessity under UNIX where you could be building on one of thousands
of OS/platform/toolchain variants.  However, the autogen stuff is
useless to you as you're on an embedded platform.  It's included in
Tremor mostly so that if you have a UNIX-like environment, you can
build a copy of Tremor for the general purpose CPU and use that other
working copy as a behavioral sanity check while porting.

> I've read in previous threads that some people have done it before. However,
> the hints to the solutions of my problems were not sufficient for me.

I've ported Tremor to 5416.  I'm not in a mood to ever touch it again,
assuming I even could (After a code-merge from upstream and a
recompile, CCS got its panties wedged into a state where any attempt
to touch the Tremor object code causes the IDE to crash.  TI's support
advice was to 'back out the changes that cause the UI to crash'.
Thanks guys, but I'd rather just abandon your product entirely.
Fortunately other engineers who were better with the 5416 took over
the codebase at that time).

> Could
> someone please help me! Either by detailed information or maybe by providing
> the modified source code? I would be extremely thankful!

I will get you some source code goodness.  I prefer you use it as a
guide and not take it as gospel; naturally, I'm good with Tremor but I
was never terribly good at working with the 5416.  For all I know, I'd
been going at it all wrong from the beginning.


More information about the Tremor mailing list