Hello,
I have been chasing a difficult problem that cause the DSP BIOS call TSK_create() to hang and never return, hanging the entire DSP application. This behavior is random and may not happen for hours, however i came up with a test case that repeatedly creates C++ object which in turn create 2 worker threads then delete the object and releases these two worker threads. The application runs forever with no issues (days) when the DSP Image is linked against the standard rts library (we use rts64plus.lib).
However when linking also first fastrts62x64x.lib, the test case witl invariably fail on the second iteration after having created about 20 threads (TSKs). SImply relinking the application without liking FastRTS and the problem disappears.
Here are the Platform and tools I am using:
DSPBIOS 5.41.06.21
CCS Studio v4.2.4.00033
CGT Tools 6.1.20
DaVinci DM6446 HW platform
Our application is 99% C++ with heavy use of templates. The particular code being optimized is a complex FPU based Machine Vision Algorithm (compiles to about 3 MBytes of object code optimized). Given that FastRTS accelerate this Machine Vision algorithm by a factor of 3x (amazing), I am not willing to give up just yet but I am running out of ideas.
Also please not that we developed our own IPC ARM/DSP communication scheme and are not using any of the Ti mechanism.
Our DSP Firmware is only dependent on the DSP BIOS and RTS.
I believe it might be a calling convention/linker/memory corruption of some sort but cannot prove it.
My attempts to recompile the FastRTS library with the CGT 6.1.20 also fails with the following error (eventhough I followed the FastRTS manual instructions to the letter).
$ mk6x fastrts62x64x.src -l fastrts62x64x.lib
Building archive "fastrts62x64x.src" --> "fastrts62x64x.lib"
"divdp.asm", ERROR! at line 27: [E1000] Include/Copy file not found or opened
.include divc30.asm ; \
"divdp.asm", ERROR! at line 28: [E1000] Include/Copy file not found or opened
.include mpy62.asm ; > all 3 are called by "dpdiv1.asm"
"divdp.asm", ERROR! at line 29: [E1000] Include/Copy file not found or opened
.include flt64.asm ; /
3 Assembly Errors, No Assembly Warnings
Errors in Source - Assembler Aborted
>> Compilation failure
>> Archive "fastrts62x64x.lib" not built
/cygdrive/c/dev/Earthbound/VS/JaguarDSP/App/TiLibs/FastRTS/lib
$ ls
adddp.obj addsp.obj divc30.obj fastrts62x64x.src fastrts64x-orig.lib fastrts64x.lib fastrts64xe.lib
/cygdrive/c/dev/Earthbound/VS/JaguarDSP/App/TiLibs/FastRTS/lib
Any help is very appreciated,
Kind Regards,
Serge Limondin