Page 2 of 2

Posted: Sat Mar 17, 2012 12:16 am
by Chilly Willy
I'll try those two using 4.6.2 and see what I get. I might also try making it use short addressing on the ram to see how that affects the speed.

Posted: Mon Mar 19, 2012 12:39 am
by djcouchycouch
Hi,

Just wanted to let you guys know I tried out your suggestions and it's definitely helped. The benchmark numbers for that routine has dropped to 13045, a pretty dramatic improvement!. :)

Thanks again for your help!
DJCC

Posted: Mon Mar 19, 2012 8:50 am
by Stef
Chilly Willy wrote:I'll try those two using 4.6.2 and see what I get. I might also try making it use short addressing on the ram to see how that affects the speed.
Nice, i think it could be interesting :) How can you force the compiler for short RAM addressing ? define RAM area at FFFF0000-FFFFFFFF is enough ?

Posted: Mon Mar 19, 2012 8:51 am
by Stef
djcouchycouch wrote:Hi,

Just wanted to let you guys know I tried out your suggestions and it's definitely helped. The benchmark numbers for that routine has dropped to 13045, a pretty dramatic improvement!. :)

Thanks again for your help!
DJCC
Glad you get it, it's a nice improvement indeed :)

Posted: Mon Mar 19, 2012 5:07 pm
by Chilly Willy
Stef wrote:
Chilly Willy wrote:I'll try those two using 4.6.2 and see what I get. I might also try making it use short addressing on the ram to see how that affects the speed.
Nice, i think it could be interesting :) How can you force the compiler for short RAM addressing ? define RAM area at FFFF0000-FFFFFFFF is enough ?
Yeah, just change the ram address in the linker script to 0xFFFF8000 and the length to 0x8000. I also change the stack to 0xFFFF8000 at the same time so the stack doesn't "waste" any of the short addressing space.

I did this once before, but I've forgotten if I used any switches with that. It's not something I normally do for MD homebrew.

If you use the built-in allocator, you could also change the linker script to set _end/__end to 0xFF0000 so that the heap gets put at the start of ram; then you could malloc up to the stack.