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.

Use Code Composer to perform Execution Graph with the DSP code running from a Blackhawk emulator. Is the time shown on the bottom of the graph based on the clock in the actual hardware or based on the clock in the emulator?

Use Code Composer to perform Execution Graph with the DSP code running from a Blackhawk emulator. Is the time shown on the bottom of the graph based on the clock in the actual hardware or based on the clock in the emulator? If it is the latter where can I change the setting?

  • Hello,

    Is the time shown on the bottom of the graph based on the clock in the actual hardware or based on the clock in the emulator?

    It is based on the actual target hardware.

    Thanks

    ki

  • Hi Ki,

    Thank you very much for the reply. It is very helpful. One thing is confusing me:

    We created a task in the DSP software. We use the Semaphore_pend function to run this task every xxx microseconds. We are trying to measure what the xxx time really is. 

    Method 1: we run the software on the emulator and perform the CCS Execution Graph. The time is 171us. See the screen shot  below.

    Method 2: we use a GPIO LED to turn it on at the beginning of the task and turn it off at the end of the task. The software is running on the target hardware. Use the scope and the time is 200us. Note that the LED voltage is inverted in our hardware, so the falling edge means the LED is being turned on. 

    So why the time measured by the two methods is different. Initially I thought maybe the software was running at a different clock between the emulator and the target hardware. Now you stated it uses the same clock, then how can we explain this discrepancy. 

    Best Regards,

    Joe

  • Now you stated it uses the same clock, then how can we explain this discrepancy. 

    The BIOS execution graph would rely on some BIOS configuration data for the target. It could be that there is some discrepancy between that configuration data and the target (especially if it a custom board)

    What device are you using and is this a custom board?

    Thanks

    ki

  • Yes, it is a custom board. I think you are pointing to a right direction. The screen shot below is the DSP configuration:

    It shows that the CPU clock is 700MHz, but our target hardware has 600MHz clock. Does it mean that the software is running at 700Mhz on the emulator, not 600MHz?

  • Just to clarify - there is no "clock" on the debug probe (emulator) being used. Hence the debug probe does not matter here. 

    The BIOS configuration file is assuming a 700MHz clock on the target based on that setting. The BIOS analysis tools will go by this value. If that value is incorrect, then try updating with the actual value.

  • Just want to get confirmation: you stated that the BIOS analysis tools will go by this value. Does it mean that the CCS execution graph is using 700MHz specified in the configuration file, not the actual 600MHz hardware clock to calculate the time?

  • I am not a BIOS expert but this is how I always understood it. The frequency specifed in the CFG file is what is used for the BIOS configuration. It will not query the target for the actual frequency but use the value specified in the CFG file. Hence that value should match what the actual frequency the CPU is running at.

  • Great, your answer explains why there is a discrepancy in timing. You are awesome, Ki! I will close this thread. Thank you again!