This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Code Composer Studio v5.5 DSP/BIOS Register Usage

Other Parts Discussed in Thread: TMS320VC5407

Greetings,


My group is currently trying to move a project that was originally built on Code Composer Studio V1.2 in assembly and c to Code Composer Studio V5.5. All of the original code has been brought over, and it compiles perfectly. However, as the code runs some weird bugs and errors start to come out which are difficult to pin point.

Since the code is in assembly, the code did have to specify registers to use for its operations. My question is then, what registers does the DSP/BIOS use for both its initialization and continued processes? Do we have to be worried about DSP/BIOS affecting registers?


For some more information we are using

SYS/BIOS Version : 5.31.9

Device : tms320vc5407

Version: CCSv5 5.5.0.00077

thanks,

  • Dylan Fromm said:
    Since the code is in assembly, the code did have to specify registers to use for its operations. My question is then, what registers does the DSP/BIOS use for both its initialization and continued processes? Do we have to be worried about DSP/BIOS affecting registers?

    SYS/BIOS conforms to the C programming model with respect to GP register usage.  As long as your assembly code conforms to the C programming model then there will be no issue with CPU registers and SYS/BIOS.

    I don't know the C54 programming model, but every C compiler for any part will follow a register usage convention.  Certain registers must be preserved by a C function and other registers can be freely used for scratch usage without needing to preserve their contents.  Among the latter set of registers (non-preserved) are a subset that are used for passing function parameters and function return value.

    Since you're moving from a CCS that uses/supports DSP/BIOS to one that uses/supports SYS/BIOS (the follow-on to DSP/BIOS), I'm wondering if you're using the "legacy" support for DSP/BIOS and if that's causing the issues that you're seeing (and in case you're not aware of this, DSP/BIOS uses modules with 3 or 4 uppercase lettering prefixes (like SEM, TSK, etc.) while SYS/BIOS has modules with very similar (if not exact) functionality but using more verbose module prefix names (like Semaphore, Task, etc.)).  The legacy support allows you to retain your DSP/BIOS source code base.

    Dylan Fromm said:
    However, as the code runs some weird bugs and errors start to come out which are difficult to pin point.

    Can you expand on the issues you're encountering?

    They probably aren't related to any incorrect register usage in your assembly code, since that would've also been a problem with DSP/BIOS.

    Regards,

    - Rob