summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-07-07 05:59:35 +0000
committerJens Arnold <amiconn@rockbox.org>2007-07-07 05:59:35 +0000
commit1cf80c3c951bf4d5ce62f0e1360fb311e531aef3 (patch)
tree55d27861f016efa3707908aba53210a74a4117c4 /apps/debug_menu.c
parentc6437185b7a5331d7d36a440ad67d3c7cd3502f4 (diff)
downloadrockbox-1cf80c3c951bf4d5ce62f0e1360fb311e531aef3.tar.gz
rockbox-1cf80c3c951bf4d5ce62f0e1360fb311e531aef3.zip
Improved clock estimation in debug menu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13811 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index eec0dc3c61..691bbf9cd9 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -409,9 +409,11 @@ static bool dbg_flash_id(unsigned* p_manufacturer, unsigned* p_device,
409static int perfcheck(void) 409static int perfcheck(void)
410{ 410{
411 int result; 411 int result;
412 int old_level = set_irq_level(HIGHEST_IRQ_LEVEL);
413 412
414 asm ( 413 asm (
414 "mrs r2, CPSR \n"
415 "orr r0, r2, #0xc0 \n" /* disable IRQ and FIQ */
416 "msr CPSR_c, r0 \n"
415 "mov %[res], #0 \n" 417 "mov %[res], #0 \n"
416 "ldr r0, [%[timr]] \n" 418 "ldr r0, [%[timr]] \n"
417 "add r0, r0, %[tmo] \n" 419 "add r0, r0, %[tmo] \n"
@@ -420,15 +422,15 @@ static int perfcheck(void)
420 "ldr r1, [%[timr]] \n" 422 "ldr r1, [%[timr]] \n"
421 "cmp r1, r0 \n" 423 "cmp r1, r0 \n"
422 "bmi 1b \n" 424 "bmi 1b \n"
425 "msr CPSR_c, r2 \n" /* reset IRQ and FIQ state */
423 : 426 :
424 [res]"=&r"(result) 427 [res]"=&r"(result)
425 : 428 :
426 [timr]"r"(&USEC_TIMER), 429 [timr]"r"(&USEC_TIMER),
427 [tmo]"r"(10226) 430 [tmo]"r"(10226)
428 : 431 :
429 "r0", "r1" 432 "r0", "r1", "r2"
430 ); 433 );
431 set_irq_level(old_level);
432 return result; 434 return result;
433} 435}
434#endif 436#endif