240923a801
General state is: Rockbox is usable (plays music, saves configuration, touchscreen works too). Problems: - Playing music in the background (i.e. when switching to another app) doesn't work reliably, but I'm working on that now. - no cabbiev2 (only some preliminary files for it), no other default theme. - screen flickers sometimes if the updates are too frequent - no multi screen apk/package - strange behavior when a phone call comes in The java files (and the eclipse project) resides in android/, which is also supposed to be the build folder. I've put a small README in there for instructions. There are some steps needed after the make part, which are described there, and which eclipse mostly handles. But there ought to be some script/makefile rules which do that instead in the future. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27668 a1c6a512-1295-4272-9138-f99709370657
62 lines
1.9 KiB
C
62 lines
1.9 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2006 Tomasz Malesinski
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#include "config.h"
|
|
#include "codeclib.h"
|
|
|
|
struct codec_api *ci DATA_ATTR;
|
|
|
|
extern unsigned char iramcopy[];
|
|
extern unsigned char iramstart[];
|
|
extern unsigned char iramend[];
|
|
extern unsigned char iedata[];
|
|
extern unsigned char iend[];
|
|
extern unsigned char plugin_bss_start[];
|
|
extern unsigned char plugin_end_addr[];
|
|
|
|
extern enum codec_status codec_main(void);
|
|
|
|
/* stub, the entry point is called via its reference in __header to
|
|
* avoid warning with certain compilers */
|
|
int _start(void) {return 0;}
|
|
|
|
enum codec_status codec_start(void)
|
|
{
|
|
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
|
#ifdef USE_IRAM
|
|
ci->memcpy(iramstart, iramcopy, iramend - iramstart);
|
|
ci->memset(iedata, 0, iend - iedata);
|
|
#endif
|
|
ci->memset(plugin_bss_start, 0, plugin_end_addr - plugin_bss_start);
|
|
#endif
|
|
#if NUM_CORES > 1
|
|
/* writeback cleared iedata and bss areas */
|
|
ci->cpucache_flush();
|
|
#endif
|
|
return codec_main();
|
|
}
|
|
|
|
#ifdef CPU_ARM
|
|
void __attribute__((naked)) __div0(void)
|
|
{
|
|
asm volatile("bx %0" : : "r"(ci->__div0));
|
|
}
|
|
#endif
|