A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

1) Put USB in IRAM 2) Use defines from usb_drv.h


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17546 a1c6a512-1295-4272-9138-f99709370657

+14 -22
+1 -5
firmware/drivers/isp1583.c
··· 19 19 ****************************************************************************/ 20 20 21 21 #include "config.h" 22 - #include "usb-target.h" 23 22 #include "usb_ch9.h" 24 23 #include "usb_drv.h" 25 24 #include "usb_core.h" ··· 30 29 31 30 #define DIR_RX 0 32 31 #define DIR_TX 1 33 - 34 - #define DIR_OUT 0 35 - #define DIR_IN 1 36 32 37 33 struct usb_endpoint 38 34 { ··· 626 622 } 627 623 628 624 /* Method for handling interrupts, must be called from usb-<target>.c */ 629 - void usb_drv_int(void) 625 + void IRAM_ATTR usb_drv_int(void) 630 626 { 631 627 unsigned long ints; 632 628 ints = ISP1583_GEN_INT_READ & ISP1583_INIT_INTEN_READ;
+9 -15
firmware/export/isp1583.h
··· 19 19 #ifndef ISP1583_H 20 20 #define ISP1583_H 21 21 22 + #include "usb-target.h" 23 + 22 24 #ifndef ISP1583_H_OVERRIDE 23 25 /* Initialization registers */ 24 26 #define ISP1583_INIT_ADDRESS (*((volatile unsigned char*)(ISP1583_IOBASE+0x0))) ··· 166 168 #define STANDARD_INTEN ( INIT_INTEN_IEBRST | INIT_INTEN_IEHS_STA | INT_IESUSP | INT_IERESM | INIT_INTEN_IEVBUS | INIT_INTEN_IEP0SETUP | INIT_INTEN_IEP0RX | INIT_INTEN_IEP0TX ) 167 169 #define STANDARD_INIT_MODE ( INIT_MODE_CLKAON | INIT_MODE_GLINTENA ) 168 170 169 - bool usb_drv_powered(void); 170 - void usb_drv_init(void); 171 - int usb_drv_port_speed(void); 172 - void usb_drv_exit(void); 173 - void usb_drv_stall(int endpoint, bool stall, bool in); 174 - bool usb_drv_stalled(int endpoint, bool in); 175 - int usb_drv_recv(int ep, void* ptr, int length); 176 - int usb_drv_send_nonblocking(int ep, void* ptr, int length); 177 - int usb_drv_send(int endpoint, void* ptr, int length); 178 - void usb_drv_reset_endpoint(int ep, bool send); 179 - void usb_drv_wait(int ep, bool send); 180 - void usb_drv_cancel_all_transfers(void); 181 - void usb_drv_set_address(int address); 182 - void usb_drv_set_test_mode(int mode); 183 - void usb_drv_int(void); /* Method for handling interrupts, must be called from usb-<target>.c */ 171 + #ifdef USE_IRAM 172 + #define IRAM_ATTR __attribute__ ((section(".icode"))) 173 + #else 174 + #define IRAM_ATTR 175 + #endif 176 + 177 + #include "usb_drv.h" 184 178 185 179 #endif
+1 -1
firmware/target/arm/tms320dm320/creative-zvm/usb-creativezvm.c
··· 54 54 usb_core_exit(); 55 55 } 56 56 57 - void GIO7(void) 57 + void IRAM_ATTR GIO7(void) 58 58 { 59 59 #ifdef DEBUG 60 60 //printf("GIO7 interrupt... [%d]", current_tick);
+3 -1
firmware/target/arm/tms320dm320/creative-zvm/usb-target.h
··· 69 69 : : : "r12") 70 70 //#define ZVM_SPECIFIC 71 71 72 - #include "kernel.h" 72 + #define USE_IRAM 73 + 74 + #include <stdbool.h> 73 75 int usb_detect(void); 74 76 void usb_init_device(void); 75 77 bool usb_drv_connected(void);