I ran several benchmark (maths, memory access, branching) and used the performance counter to get the timing results.
I disabled interrupts before running the tests.
The problem I have is that I get different results each time I run the benchmarks so I am wondering what could cause this difference.
I use the RM48L950 USB development board and I am running those benchmarks within Code Composer Studio 4.2.4 with all the recent updates.
Is it possible that something interrupts the benchmark?
Code Composer Studio is fetching data to update the GUI using jtag or other means
There are DMA accesses coming from USB or other peripherals accessing the bus
Or could it be related to the following?
The branch prediction is not 100% deterministic and is based on previously ran code
The source code or data alignment affects the timing (if I add a benchmark, it could move everything)
Any other explanations would be helpful.