dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: Cowon D2 EABI

Re: Cowon D2 EABI

From: Rob Purchase <>
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 :)

Received on 2010-06-15

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