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.

[FAQ] RTOS: How do I make my custom SYS/BIOS library more debug friendly?

Tool/software: TI-RTOS

I have a customized SYS/BIOS project that I want to step through but the debug experience is not ideal. How can I make my library more debug friendly?

  • By default, the following setting is in your .cfg script:

    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    BIOS.libType = BIOS.LibType_Custom;

    ... will generate a highly optimized, minimally debug-able custom SYS/BIOS library that your application will link with.

    The optimizations are achieved by including the "-o3" compiler option during the compilation phase. This aggressive optimization setting results in very efficient code at the expense of debug-ability.

    The easiest way to produce a more debug friendly library is to switch the BIOS libtype as such:

    BIOS.libType = BIOS.LibType_Debug;

    This will keep all the same configurations as the custom library except that no optimization is done and the debug symbols will be present. Note that this will produce a much larger and slower binary.

    You can also opt to keep the libType 'custom' and modify the optimization setting by adding the following line to your config script:

    BIOS.customCCOpts = BIOS.customCCOpts.replace("-o3", "-o0");

    This will change the optimization level from "-o3" to "-o0". (You can replace "-o0" with whatever setting you want).

    For ARM targets (ie 'M3', 'A8Fnv', 'Arm9'), you should also add the following line to your config script to remove the "--opt_for_speed=2" compiler option:

    BIOS.customCCOpts = BIOS.customCCOpts.replace("--opt_for_speed=2", "");

    Note: This modification will result in much slower SYS/BIOS performance as well as a larger code footprint.

    To view the set of compiler options used to create the custom SYS/BIOS library, add the following to your config script:

    print(BIOS.customCCOpts);

    Note: Whatever you do, DO NOT REMOVE the "--program_level_compile" compiler option from BIOS.customCCOpts.

    Note: The 'BIOS.libType' option was added in 6.32.01