mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 05:05:20 -05:00
M:Robe 500: Put more interrupts in iram, reduce stack usage when ARM/DSP transfers happen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22287 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
f026a0fed7
commit
5ca8bf022c
5 changed files with 9 additions and 4 deletions
|
|
@ -300,7 +300,7 @@ bool remote_button_hold(void)
|
|||
|
||||
int remote_read_device(void)
|
||||
{
|
||||
char read_buffer[5];
|
||||
static char read_buffer[5];
|
||||
int read_button = BUTTON_NONE;
|
||||
|
||||
static int oldbutton=BUTTON_NONE;
|
||||
|
|
|
|||
|
|
@ -121,12 +121,15 @@ size_t pcm_get_bytes_waiting(void)
|
|||
return DSP_(_sdem_dsp_size)-DSP_(_sdem_level);
|
||||
}
|
||||
|
||||
/* Only used when debugging */
|
||||
char buffer[80];
|
||||
|
||||
void DSPHINT(void) __attribute__ ((section(".icode")));
|
||||
void DSPHINT(void)
|
||||
{
|
||||
register pcm_more_callback_type get_more; /* No stack for this */
|
||||
|
||||
unsigned int i;
|
||||
char buffer[80];
|
||||
|
||||
IO_INTC_IRQ0 = 1 << 11;
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ void usb_init_device(void) {
|
|||
}
|
||||
|
||||
/* This is the initial interupt handler routine for the USB controller */
|
||||
void GIO3 (void) __attribute__ ((section(".icode")));
|
||||
void GIO3 (void) {
|
||||
/* Clear the interrupt, this is critical to do before running the full
|
||||
* handler otherwise you might miss an interrupt and everything will stop
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@
|
|||
#define default_interrupt(name) \
|
||||
extern __attribute__((weak,alias("UIRQ"))) void name (void)
|
||||
|
||||
void irq_handler(void) __attribute__((interrupt ("IRQ"), naked));
|
||||
void fiq_handler(void) __attribute__((interrupt ("FIQ"), naked));
|
||||
void irq_handler(void) __attribute__((interrupt ("IRQ"), naked, section(".icode")));
|
||||
void fiq_handler(void) __attribute__((interrupt ("FIQ"), naked, section(".icode")));
|
||||
|
||||
default_interrupt(TIMER0);
|
||||
default_interrupt(TIMER1);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
/* GPB0/TOUT0 should already have been configured as output so that pin
|
||||
should not be a functional pin and TIMER0 output unseen there */
|
||||
void TIMER0(void) __attribute__ ((section(".icode")));
|
||||
void TIMER0(void)
|
||||
{
|
||||
IO_INTC_IRQ0 = INTR_IRQ0_TMR0; /* clear TIMER0 interrupt */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue