summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy')
-rwxr-xr-xapps/plugins/rockboy/archos.lds4
-rw-r--r--apps/plugins/rockboy/rockboy.c24
2 files changed, 5 insertions, 23 deletions
diff --git a/apps/plugins/rockboy/archos.lds b/apps/plugins/rockboy/archos.lds
index 55db1e2e30..24f4f1d4eb 100755
--- a/apps/plugins/rockboy/archos.lds
+++ b/apps/plugins/rockboy/archos.lds
@@ -19,7 +19,7 @@ MEMORY
19SECTIONS 19SECTIONS
20{ 20{
21 .header : { 21 .header : {
22 _ovl_start_addr = .; 22 _plugin_start_addr = .;
23 *(.header) 23 *(.header)
24 } > OVERLAY_RAM 24 } > OVERLAY_RAM
25 25
@@ -42,6 +42,6 @@ SECTIONS
42 *(.bss) 42 *(.bss)
43 *(COMMON) 43 *(COMMON)
44 . = ALIGN(0x4); 44 . = ALIGN(0x4);
45 _ovl_end_addr = .; 45 _plugin_end_addr = .;
46 } > OVERLAY_RAM 46 } > OVERLAY_RAM
47} 47}
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index a21e9e4368..a7e9bfb8f1 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -20,25 +20,7 @@
20#include "loader.h" 20#include "loader.h"
21#include "rockmacros.h" 21#include "rockmacros.h"
22 22
23#if MEM <= 8 && !defined(SIMULATOR)
24/* On archos this is loaded as an overlay */
25
26/* These are defined in the linker script */
27extern unsigned char ovl_start_addr[];
28extern unsigned char ovl_end_addr[];
29
30const struct {
31 unsigned long magic;
32 unsigned char *start_addr;
33 unsigned char *end_addr;
34 enum plugin_status (*entry_point)(struct plugin_api*, void*);
35} header __attribute__ ((section (".header"))) = {
36 0x524f564c, /* ROVL */
37 ovl_start_addr, ovl_end_addr, plugin_start
38};
39#else
40PLUGIN_HEADER 23PLUGIN_HEADER
41#endif
42 24
43#ifdef USE_IRAM 25#ifdef USE_IRAM
44extern char iramcopy[]; 26extern char iramcopy[];
@@ -109,10 +91,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
109 audio_bufferbase = audio_bufferpointer 91 audio_bufferbase = audio_bufferpointer
110 = rb->plugin_get_audio_buffer((int *)&audio_buffer_free); 92 = rb->plugin_get_audio_buffer((int *)&audio_buffer_free);
111#if MEM <= 8 && !defined(SIMULATOR) 93#if MEM <= 8 && !defined(SIMULATOR)
112 /* loaded as an overlay, protect from overwriting ourselves */ 94 /* loaded as an overlay plugin, protect from overwriting ourselves */
113 if ((unsigned)(ovl_start_addr - (unsigned char *)audio_bufferbase) 95 if ((unsigned)(plugin_start_addr - (unsigned char *)audio_bufferbase)
114 < audio_buffer_free) 96 < audio_buffer_free)
115 audio_buffer_free = ovl_start_addr - (unsigned char *)audio_bufferbase; 97 audio_buffer_free = plugin_start_addr - (unsigned char *)audio_bufferbase;
116#endif 98#endif
117 99
118#ifdef USE_IRAM 100#ifdef USE_IRAM