summaryrefslogtreecommitdiff
path: root/firmware/target/sh
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/sh')
-rw-r--r--firmware/target/sh/adc-sh.c2
-rw-r--r--firmware/target/sh/archos/audio-archos.c8
-rw-r--r--firmware/target/sh/archos/timer-archos.c2
-rw-r--r--firmware/target/sh/kernel-sh.c2
-rw-r--r--firmware/target/sh/system-sh.c11
5 files changed, 15 insertions, 10 deletions
diff --git a/firmware/target/sh/adc-sh.c b/firmware/target/sh/adc-sh.c
index 2e6d6407b8..17f829ad97 100644
--- a/firmware/target/sh/adc-sh.c
+++ b/firmware/target/sh/adc-sh.c
@@ -59,7 +59,7 @@ static void adc_tick(void)
59 ADCSR = ADCSR_ADST | ADCSR_ADIE | ADCSR_SCAN | 3; 59 ADCSR = ADCSR_ADST | ADCSR_ADIE | ADCSR_SCAN | 3;
60} 60}
61 61
62void ADITI(void) __attribute__((interrupt_handler)); 62void ADITI(void) __attribute__((interrupt_handler)) USED_ATTR;
63void ADITI(void) 63void ADITI(void)
64{ 64{
65 if(ADCSR & ADCSR_ADF) 65 if(ADCSR & ADCSR_ADF)
diff --git a/firmware/target/sh/archos/audio-archos.c b/firmware/target/sh/archos/audio-archos.c
index 2c2579bec5..207f26f250 100644
--- a/firmware/target/sh/archos/audio-archos.c
+++ b/firmware/target/sh/archos/audio-archos.c
@@ -153,7 +153,7 @@ static void play_tick(void)
153 } 153 }
154} 154}
155 155
156void DEI3(void) __attribute__((interrupt_handler)); 156void DEI3(void) __attribute__((interrupt_handler)) USED_ATTR;
157void DEI3(void) 157void DEI3(void)
158{ 158{
159 const void* start; 159 const void* start;
@@ -177,7 +177,7 @@ void DEI3(void)
177 CHCR3 &= ~0x0002; /* Clear DMA interrupt */ 177 CHCR3 &= ~0x0002; /* Clear DMA interrupt */
178} 178}
179 179
180void IMIA1(void) __attribute__((interrupt_handler)); 180void IMIA1(void) __attribute__((interrupt_handler)) USED_ATTR;
181void IMIA1(void) /* Timer 1 interrupt */ 181void IMIA1(void) /* Timer 1 interrupt */
182{ 182{
183 if(playing) 183 if(playing)
@@ -189,14 +189,14 @@ void IMIA1(void) /* Timer 1 interrupt */
189#endif 189#endif
190} 190}
191 191
192void IRQ6(void) __attribute__((interrupt_handler)); 192void IRQ6(void) __attribute__((interrupt_handler)) USED_ATTR;
193void IRQ6(void) /* PB14: MAS stop demand IRQ */ 193void IRQ6(void) /* PB14: MAS stop demand IRQ */
194{ 194{
195 SCR0 &= ~0x80; 195 SCR0 &= ~0x80;
196} 196}
197 197
198#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) 198#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
199void IRQ3(void) __attribute__((interrupt_handler)); 199void IRQ3(void) __attribute__((interrupt_handler)) USED_ATTR;
200void IRQ3(void) /* PA15: MAS demand IRQ */ 200void IRQ3(void) /* PA15: MAS demand IRQ */
201{ 201{
202 /* Begin with setting the IRQ to edge sensitive */ 202 /* Begin with setting the IRQ to edge sensitive */
diff --git a/firmware/target/sh/archos/timer-archos.c b/firmware/target/sh/archos/timer-archos.c
index 98a3afb4b6..251d68638a 100644
--- a/firmware/target/sh/archos/timer-archos.c
+++ b/firmware/target/sh/archos/timer-archos.c
@@ -23,7 +23,7 @@
23#include "system.h" 23#include "system.h"
24#include "timer.h" 24#include "timer.h"
25 25
26void IMIA4(void) __attribute__((interrupt_handler)); 26void IMIA4(void) __attribute__((interrupt_handler)) USED_ATTR;
27void IMIA4(void) 27void IMIA4(void)
28{ 28{
29 if (pfn_timer != NULL) 29 if (pfn_timer != NULL)
diff --git a/firmware/target/sh/kernel-sh.c b/firmware/target/sh/kernel-sh.c
index 65b27e47f0..d4cfaaa724 100644
--- a/firmware/target/sh/kernel-sh.c
+++ b/firmware/target/sh/kernel-sh.c
@@ -55,7 +55,7 @@ void tick_start(unsigned int interval_in_ms)
55 TSTR |= 0x01; /* Start timer 1 */ 55 TSTR |= 0x01; /* Start timer 1 */
56} 56}
57 57
58void IMIA0(void) __attribute__ ((interrupt_handler)); 58void IMIA0(void) __attribute__ ((interrupt_handler)) USED_ATTR;
59void IMIA0(void) 59void IMIA0(void)
60{ 60{
61 /* Run through the list of tick tasks */ 61 /* Run through the list of tick tasks */
diff --git a/firmware/target/sh/system-sh.c b/firmware/target/sh/system-sh.c
index e054801b57..921d08f7b4 100644
--- a/firmware/target/sh/system-sh.c
+++ b/firmware/target/sh/system-sh.c
@@ -180,6 +180,7 @@ asm (
180 * Must go into the same section as the UIE() handler */ 180 * Must go into the same section as the UIE() handler */
181 181
182 "\t.text\n" 182 "\t.text\n"
183 ".global\t_UIE4\n"
183 "_UIE4:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 184 "_UIE4:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
184 "_UIE5:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 185 "_UIE5:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
185 "_UIE6:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 186 "_UIE6:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
@@ -286,13 +287,17 @@ asm (
286 "_UIE107:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 287 "_UIE107:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
287 "_UIE108:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 288 "_UIE108:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
288 "_UIE109:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n" 289 "_UIE109:\tbsr\t_UIE\n\tmov.l\t@r15+,r4\n"
289 290 "_UIE:\tmov.l\t__UIE_k,r0\n"
291 "jmp\t@r0\n"
292 "nop\n"
293 ".align\t4\n"
294 "__UIE_k:\t.long\t__UIE\n"
290); 295);
291 296
292extern void UIE4(void); /* needed for calculating the UIE number */ 297extern void UIE4(void); /* needed for calculating the UIE number */
293 298
294void UIE (unsigned int pc) __attribute__((section(".text"))); 299void _UIE (unsigned int pc) __attribute__((section(".text"))) USED_ATTR;
295void UIE (unsigned int pc) /* Unexpected Interrupt or Exception */ 300void _UIE (unsigned int pc) /* Unexpected Interrupt or Exception */
296{ 301{
297 unsigned int n; 302 unsigned int n;
298 303