diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/core_alloc.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/firmware/core_alloc.c b/firmware/core_alloc.c index df1b4d3213..bf2f8e8298 100644 --- a/firmware/core_alloc.c +++ b/firmware/core_alloc.c | |||
@@ -8,16 +8,27 @@ | |||
8 | /* not static so it can be discovered by core_get_data() */ | 8 | /* not static so it can be discovered by core_get_data() */ |
9 | struct buflib_context core_ctx; | 9 | struct buflib_context core_ctx; |
10 | 10 | ||
11 | /* defined in linker script */ | ||
12 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(__PCTOOL__) | 11 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(__PCTOOL__) |
12 | |||
13 | #if defined(IPOD_VIDEO) && !defined(BOOTLOADER) | 13 | #if defined(IPOD_VIDEO) && !defined(BOOTLOADER) |
14 | /* defined in linker script */ | ||
15 | extern unsigned char audiobuffer[]; | ||
14 | extern unsigned char *audiobufend_lds[]; | 16 | extern unsigned char *audiobufend_lds[]; |
17 | /* pointer to end of audio buffer filled at runtime allocator_init */ | ||
15 | unsigned char *audiobufend; | 18 | unsigned char *audiobufend; |
16 | #else /* !IPOD_VIDEO */ | 19 | #elif defined(SANSA_E200) && defined(HAVE_BOOTLOADER_USB_MODE) |
17 | extern unsigned char audiobufend[]; | 20 | /* defined in linker script */ |
18 | #endif | 21 | extern unsigned char freebuffer[]; |
22 | extern unsigned char freebufferend[]; | ||
23 | /* map linker symbol to the audiobuffer in order to use core_alloc */ | ||
24 | unsigned char *audiobuffer = (unsigned char *)freebuffer; | ||
25 | unsigned char *audiobufend = (unsigned char *)freebufferend; | ||
26 | #else /* !IPOD_VIDEO, !SANSA_E200&&BOOTLOADERUSB */ | ||
19 | /* defined in linker script */ | 27 | /* defined in linker script */ |
20 | extern unsigned char audiobuffer[]; | 28 | extern unsigned char audiobuffer[]; |
29 | extern unsigned char audiobufend[]; | ||
30 | #endif | ||
31 | |||
21 | #else /* PLATFORM_HOSTED */ | 32 | #else /* PLATFORM_HOSTED */ |
22 | static unsigned char audiobuffer[((MEMORYSIZE)*1024-768)*1024]; | 33 | static unsigned char audiobuffer[((MEMORYSIZE)*1024-768)*1024]; |
23 | unsigned char *audiobufend = audiobuffer + sizeof(audiobuffer); | 34 | unsigned char *audiobufend = audiobuffer + sizeof(audiobuffer); |