Hello Tiago,
On Thu, Jun 23, 2016 at 02:40:10PM +0100, Tiago Brito wrote:
// start timer here for(i = 0; i < size; i++) { color = oldp[i]; alpha = (color >> 24) & 0xff; red = (color >> 16) & 0xff; green = (color >> 8) & 0xff; blue = color & 0xff; lum = (int) (red * 0.299 + green * 0.587 + blue * 0.114); newp[i] = (alpha << 24) | (lum << 16) | (lum << 8) | lum; } // end timer here // check timer diff and print result
I'm testing this same exact code on both the Secure and Nonsecure domains. In the NW I'm getting about 155 ms of execution time, which for that buffer and transformation seems ok. On the other hand, the SW is giving me about 610 ms of execution time.
I can't seem to find a reasonable explanation for this time difference, since the code running in both scenarios is exactly the same. The secure code is running inside the TZ_VMM example.
Did you check that the generated binary code is similar? Did you try to measure only the run time of the for-loop in both worlds?
Regards