<< Chapter < Page | Chapter >> Page > |
The number of cycles a block of code takes to run may be important. For example, code that executes during an interrupt should be kept as short as possible to allow other interrupts execution time. When a complex system is implemented on the DSP, hardware resources are scarce and code that takes too long to run will prevent the system from running in real-time.
Two methods of obtaining the cycle count for a block of code will be outlined below. Breakpoints are a fast method of getting a ballpark cycle count for a particular run of the code. However, different iterations of the code may take a different number of cycles to execute. This generally happens when there are branch and conditional instructions. Profiling allows the user to execute the code multiple times and obtain the average, maximum, and minimum number of cycles.
Setting two breakpoints will allow you to measure the clock cycles between the first and second breakpoint for a particular run. Code Composer will also return a cycle count for running between the second breakpoint and the first, but this count will include all the cycles from I/O handling. Multiple breakpoints can also be set to obtain counts for multiple sections of code, but there is a limit on the number of breakpoints that can be set.
The instructions to set breakpoints and obtain a cycle count for a piece of code:
Sometimes there may be errors when loading the program like "Can't Set Breakpoint" or "Can't Remove Breakpoint". If this happens, try disabling the breakpoints, reloading, and enabling them again. If the error persists, close Code Composer, disconnect and reconnect the power cable, and start the whole process again.
Profiling allows you to obtain an average, maximum, and minimum cycle count for blocks of code. Multiple functions, loops, and ranges can all be profiled at the same time. Code Composer will provide you with many readings. The figure used in our DSP lab is the 'CPU Cycles: Incl. Max".
The instructions to set profile points and obtain a cycle count for a piece of code:
Notification Switch
Would you like to follow the 'Digital signal processing laboratory (ece 420 55x)' conversation and receive update notifications?