Other Parts Discussed in Thread: CCSTUDIO
Hi,
I've got a conundrum here - I've been working on custom software for the DSP part of the EVMOMAPL-137 and a custom board with a C6745. Software was originally developed in CCS3.3. For the custom board we have gone with CCS4 to use the XDS100v2 emulator. If the binary i load to run is compiled in CCS3.3 but loaded with the XDS100 emulator in CCS4, everything works fine. But problem is, if I compile the binary in CCS4 with, as far as i can tell, everything the same, both boards crash when doing certain tasks while running. Does anyone know what might be different from CCS3.3 to CCS4 that might cause this? It is the case with our software on both the EVMOMAPL-137 and our custom board.
I'm pretty sure the problem is with the binaries not the emulator or debugging, because in both cases (EVM and custom board) the only difference between working code and non working code is the version of CCS is which it was compiled. I'm always loading, running and debugging with CCS4 (using XDS100v2 on the custom board and onboard emulator with EVM).
I think the problem has something to do with scheduling/multithreading because symptoms vary, and sometimes it takes several events of the kind that crash it to make it actually crash. Our software uses several TSKs managed in DSP/BIOS.
For both CCS3 (v3.3.81.11) and CCS4 (v4.2.3.00004 ) I am using:
The same C/C++ source code
The same version of code generation tools: 6.1.14
The same version of DSP/BIOS: 5.33.06
CCS4 project is an import of the CCS3.3 project, with the modifications as suggested in the TI wiki: http://processors.wiki.ti.com/index.php/GSG:Importing_projects_from_previous_versions, ie getting rid of the implicit include directories from CCS3.3, etc.
I have tried to make the compiler and linker and BIOS builder options as close as i can between the two environments so as to still have CCS4 compile without errors. Here are my compile options, lined up (and slightly re-ordered so they line up) for comparison with what i see as differences highlighted.
| CCS4 project | CCS3.3 project |
| Compiler options | |
| -g -O2 --include_path="C:/CCS4-workspace-DQE/TCPserver/wReverb" --include_path="C:/CCStudio_v3.3/ndk_2_0_0/packages/ti/ndk/inc" --include_path="C:/CCStudio_v3.3_DSK/MyProjects/util" --include_path="C:/CCStudio_v3.3_DSK/MyProjects/stl" --include_path="C:/CCStudio_v3.3/ndk_2_0_0/packages/ti/ndk/" --include_path="C:/CCStudio_v3.3/ndk_2_0_0/packages/ti/ndk/example/tools" --include_path="C:/CCStudio_v3.3_DSK/boards/evmomapl137_v1/dsp/include" --include_path="C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages" --include_path="C:/Program Files/Texas Instruments/pspdrivers_01_30_01/packages" --include_path="C:/CCStudio_v3.3/ndk_2_0_0/packages/ti/ndk/src/hal/evmomapl137/eth_omapl137/inc" --include_path="C:/CCStudio_v3.3_DSK/c674x/dsplib_v12" --include_path="C:/CCStudio_v3.3_DSK/C6000/cgtools/include" --define="CHIP_C6747" --define="_INCLUDE_NIMU_CODE" --define="_INCLUDE_IPv6_CODE" --define="_NDK_EXTERN_CONFIG" --define="USE_LINKSTAT_FOR_IPADDR" --define="MIX_UNIT" --define="REVERB_UNIT" --define="PFL_ENABLE" -mv6740 --diag_warning=225 --include_path="C:/CCStudio_v3.3_DSK/MyProjects/TCPserv_evm6747/common" --include_path="C:/CCStudio_v3.3_DSK/bios_5_33_06/packages/ti/bios/include" |
-g -o2 -fr"$(Proj_dir)\wReverb" -i"C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\inc" -i"C:\CCStudio_v3.3_DSK\MyProjects\util" -i"C:\CCStudio_v3.3_DSK\MyProjects\stl" -i"C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\" -i"C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\example\tools" -i"C:\CCStudio_v3.3_DSK\boards\evmomapl137_v1\dsp\include" -i"C:\Program Files\Texas Instruments\edma3_lld_01_10_00_01\packages" -i"C:\Program Files\Texas Instruments\pspdrivers_01_30_01\packages" -i"C:\CCStudio_v3.3\ndk_2_0_0\packages\ti\ndk\src\hal\evmomapl137\eth_omapl137\inc" -i"C:\CCStudio_v3.3_DSK\c674x\dsplib_v12" -i"C:\CCStudio_v3.3_DSK\C6000\cgtools\include" -d"CHIP_C6747" -d"_INCLUDE_NIMU_CODE" -d"_INCLUDE_IPv6_CODE" -d"_NDK_EXTERN_CONFIG" -d"USE_LINKSTAT_FOR_IPADDR" -d"MIX_UNIT" -d"REVERB_UNIT" -d"PFL_ENABLE" -mv6740 |
| Linker options | |
| --absolute_exe --rom_model -m"TCPserver.map" --warn_sections --reread_libs -i"C:/CCStudio_v3.3_DSK/C6000/cgtools" -i"C:/CCStudio_v3.3/bios_5_33_06/packages/ti/rtdx/lib/c6000" -i"C:/Program Files/Texas Instruments/pspdrivers_01_30_01/packages" -i"C:/Program Files/Texas Instruments/edma3_lld_01_10_00_01/packages" --xml_link_info="../debug/TCPserver.xml" -i"C:/CCStudio_v3.3_DSK/bios_5_33_06/packages/ti/bios/lib" -i"C:/CCStudio_v3.3_DSK/C6000/cgtools/lib" -i"C:/CCStudio_v3.3_DSK/bios_5_33_06/packages/ti/rtdx/lib/c6000" -z |
-q |
| note: the equivalent of -l"TCPServerAudio_Debug.cmd" should be here - it is specified in the properties in CCS4 but for some reason doesn't show up here in the textual options list - could this be a problem? - ie the linker never actually gets the message? I also tried just including it in the build to be sure - did not help. |
note: z = link as part of compilation q = suppress banner c = rom_model x = reread libs, exhaustivelread libs... a = absolute executable w = --warn_sections |
| DspBiosBuilder options | |
| -Dconfig.importPath="C:/CCStudio_v3.3/ndk_2_0_0/packages/ti/ndk/inc/tci;C:/CCStudio_v3.3_DSK/bios_5_33_06/packages;" |
-Dconfig.importPath="C:\CCStudio_v3.3\ndk_2_0_0/packages/ti/ndk/inc/tci;" -v6x |
I also tried building the CCS4 version with DSP/BIOS 5.41 and code gen tools 7.2.2 (and removing the code gen tools includes from the CCS3.3 folder), and with and without the newest standalone version of the fastmath67x library, but those changes did not help.
Many thanks if anyone could point me in a direction for figuring out what is wrong!