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.

TMS320F280025: No source available for "SysCtl_delay()

Part Number: TMS320F280025
Other Parts Discussed in Thread: C2000WARE

Hi, 

     I am using TMS320F280025 in our project and CCS 12 version IDE, I tried to use 280025_FLASH_lnk.cmd file for Flash memories to allocate the code. But device is getting crashes on the SysCtl_delay() with below message error "No source available for "SysCtl_delay() at C:/Users\Nagaraj\workspace_v12\example\Debug\example.out:{3} 0xc057{4}", Please guide me on this.

Thanks,

Nagaraj

  • What do you mean by "crashes"? Please elaborate or describe what you expect to happen instead.

    Assuming you are using a debugger, when you suspend your program there's a high likelihood you will stop in the SysCtl_delay() code which may give the impression it is stuck there. Assuming again you have linked driverlib.lib into your code rather than compiling and linking sysctl.c, when you link in a library, your program (example.out) does not contain any source code information about the linked library code. This topic is handled here:

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html#debugging-library-code

    To observe the source code, click 'Locate File...' and browse for sysctl.c. It is most likely in the following or similar location:

    C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f28002x\driverlib

  • Hi Kier,

              Yes debugger connected, driverlib source code file added to the project and successfully complied and linked, When SysCtl_delay API is called inside the SysCtl_setClock for device initiation control execution was halt even if we press the "step into" still no luck, But this issue was resolved after adding the _FLASH in predefined symbol project properties settings, Can you explain this issue how it is related to _FLASH? 

    Thanks,

    Nagaraj

  • Can you explain this issue how it is related to _FLASH?

    I can't imagine why _FLASH changes the situation, sorry.

    I've just realised that SysCtl_delay() has no source because it's written in assembler so my previous advice was not helpful. I could not find a reason for execution to stop (e.g. ESTOP0) in SysCtl_delay(). Are you sure it's stopping there and not somewhere else? Better to check the disassembly window for instruction(s) causing the error.

  • Hi Kier,

                There is no ESTOP0 in SysCtl_delay, I have pause the execution of the MCU then control was struck in SysCtl_delay(), Please find the below attached of disassembly code for SysCtl_delay control struck in line: 00c057:   6F00        SB           0, UNC


    Thanks,

    Nagaraj

  • There is no ESTOP0 in SysCtl_delay

    I know, that was the point I made.

    What is the address in your screenshot where the program is stopping please?

  • Hi Kier,

        Program was stopped at 00c057:   6F00        SB           0, UNC which is marked as green color in shared screen shot.

    Thanks,

    Nagaraj

  • I doubt it's getting stuck in SysCtl_delay(). This function is just a handful of instructions and looks like this in my F2837xd:

    It's getting stuck somewhere else. Look in your map file to see in what function address 0xC057 is located.

  • Hi Kier,

              No function address started with 0xC057, but function address for SysCtl_delay starts from 0xC000.

    Thanks,

    Nagaraj

  • SysCtl_delay starts from 0xC000

    That is why the problem is not in SysCtl_delay() because this function's definition is only 3 instructions long. Therefore SysCtl_delay cannot occupy 0xC000 to 0xC057 and beyond because that would mean it is at least 87 instructions long.

    No function address started with 0xC057

    Maybe but but some function has some of its code located at that address. The instruction at 0xC057 is an unconditional branch to itself. I think this could be a while(1){}; somewhere in your code.

    Also, I do not see the assembler for SysCtl_delay() in your screenshot. Your disassembly view looks wrong for some reason. I wouldn't trust it. Until that is fixed you can't really find the location of the issue in source.

  • Nagaraj,

    I am closing the thread as there is no activities. Please create a new thread or just reply if your issues are not resolved.

    Regards, Santosh