Wrong execution time

Hi,

I have a similar problem with my Beaglebone and Starterware. To check out the performance of Starterware and Beaglebone I do the following in my main-Function:

while(1)
{
GPIOPinWrite(GPIO_INSTANCE_ADDRESS,28, GPIO_PIN_HIGH);

for(i=0; i<35000; i++)
{
x = sqrt(3.141592654);
}

GPIOPinWrite(GPIO_INSTANCE_ADDRESS, 28, GPIO_PIN_LOW);

for(i=0; i<35000; i++)
{
x = sqrt(3.141592654);
}
}

As you can see I toggle a pin and in between I do sqrt(pi) 35000 times. Using an oscilloscope I measure the period /frequency on that pin.

At first I got: T = 18 s !!!

Then I found this post and enabled Cache and MMU like in the example: \StarterWare\examples\evmskAM335x\uart_edma\uartEcho_edma.c

After that i measured: T = 500 ms / f = 2 Hz

This is still quite slow! I run a program with the same functionality using the Linux Distribution Angström on the beaglebone, there I measured a period of T = 1.1 ms / f = 1 kHz .

So what is going on with the Starterware being so slow? Do I have to enable the Cache / MMU differently or can’t I go faster with Starterware??? I read a few posts so far where people wrote that they solved this speed problem by enabling the cache and mmu but it still is fu***** slow : ) why ??? help me please :wink:

You may also want to post this to the TI e2e forum.