Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Cowon D2 EABI

Re: Cowon D2 EABI

From: Rob Purchase <rob.purchase_at_googlemail.com>
Date: Tue, 15 Jun 2010 22:33:41 +0100

On 15/06/2010 11:17, pouly amaury wrote:
>
> You convinced me that finally think that I should (or someone else !)
> rewrite it in assembly to avoid any further problem. Any one against
> that ?

This version seems to work correctly:

static inline void delay_loop(void)
{
     asm volatile (" mov %[freq], %[freq], asr#22 \n\t"
                   "1: subs %[freq], %[freq], #1 \n\t"
                   " bne 1b"
                   : : [freq] "r" (cpu_frequency) : "memory");
}

By "correctly" I mean:

- it doesn't get optimized away using our default compiler flags
- it seems to generate the same code with both GCC versions
- the PMU driver works (with CPU boosted and unboosted)
- the touchscreen driver does not "lose" about 10% of presses
   (this happens since r26850...)

I've tested this with the EABI compiler and all seems well. Once I've
committed it we can re-enable EABI for this target and we can all be
happy again :)

Rob.
Received on 2010-06-15


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa