Hi,
I'm working on finding out the memory throughput of writing to and reading from DDR3 on my C6670 board. I have an application (written based on Example 2 tasking application in BIOS MCSDK2.0 User Guide) loaded onto the four cores, but with a slight variation such that each core writes to or read from a different part of the DDR3 memory. The application carries out different tests, each writing or reading different amount of data in one write/read, and then work out the memory throughput achieved by each core.
What is bothering me now is that a line of printf (or without) around the start of my application, within the task, seems to have significant impact on the memory throughput measurement of my first test (subsequent tests that follow are more like what I expect). For example without that line of printf, the memory throughput suffers in the first test somehow. This happens consistently, including after a power cycle.
Can anyone explain how this printf manages to do this? Initially I thought the processor needs some time to settle down before it can do perform some credible measurements. But putting seconds of delay before my first test does not seem to change anything.
This aside, is there a way to bring the four cores back into step before running subsequent test? There is something called osWaitForAllCores() that my colleague used on Freescale. I wonder if there is something similar on TI?
Thank you in advance.
Regards,
Chiang