forked from len0rd/rockbox
initial gigabeat bootloader (only test code)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10536 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
dd754886f5
commit
0a0682474e
6 changed files with 173 additions and 2 deletions
|
|
@ -56,6 +56,21 @@ void kernel_init(void)
|
|||
|
||||
void sleep(int ticks)
|
||||
{
|
||||
#if CONFIG_CPU == S3C2440 && defined(BOOTLOADER)
|
||||
int counter;
|
||||
TCON &= ~(1 << 20); // stop timer 4
|
||||
// TODO: this constant depends on dividers settings inherited from
|
||||
// firmware. Set them explicitly somwhere.
|
||||
TCNTB4 = 12193 * ticks / HZ;
|
||||
TCON |= 1 << 21; // set manual bit
|
||||
TCON &= ~(1 << 21); // reset manual bit
|
||||
TCON &= ~(1 << 22); //autoreload Off
|
||||
TCON |= (1 << 20); // start timer 4
|
||||
do {
|
||||
counter = TCNTO4;
|
||||
} while(counter > 0);
|
||||
|
||||
#else
|
||||
/* Always sleep at least 1 tick */
|
||||
int timeout = current_tick + ticks + 1;
|
||||
|
||||
|
|
@ -63,12 +78,16 @@ void sleep(int ticks)
|
|||
sleep_thread();
|
||||
}
|
||||
wake_up_thread();
|
||||
#endif
|
||||
}
|
||||
|
||||
void yield(void)
|
||||
{
|
||||
#if CONFIG_CPU == S3C2440 && defined(BOOTLOADER)
|
||||
#else
|
||||
switch_thread();
|
||||
wake_up_thread();
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue