loader reload timing bug

This commit is contained in:
optixx 2009-10-24 17:49:27 +02:00
parent 2701270e05
commit d471173fcc
4 changed files with 16 additions and 33 deletions

View File

@ -31,7 +31,7 @@ CONVERT_ZIP = ../../scripts/conv_zip.py
ifeq ($(DEBUG),1) ifeq ($(DEBUG),1)
LDFLAGS =-Wl,-u,vfprintf -lprintf_flt LDFLAGS =-Wl,-u,vfprintf
CFLAGS =-Iusbdrv -I. -DDEBUG_LEVEL=0 CFLAGS =-Iusbdrv -I. -DDEBUG_LEVEL=0
OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o \ OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o \
main.o usb_bulk.o uart.o fifo.o sram.o crc.o debug.o \ main.o usb_bulk.o uart.o fifo.o sram.o crc.o debug.o \

View File

@ -66,8 +66,8 @@ void boot_startup_rom(uint16_t init_delay)
info_P(PSTR("Fetch loader rom\n")); info_P(PSTR("Fetch loader rom\n"));
system_set_bus_avr(); system_set_bus_avr();
snes_irq_lo(); //snes_irq_lo();
system_snes_irq_off(); //system_snes_irq_off();
system_set_rom_lorom(); system_set_rom_lorom();
//info_P(PSTR("Activate AVR bus\n")); //info_P(PSTR("Activate AVR bus\n"));
@ -107,7 +107,12 @@ void boot_startup_rom(uint16_t init_delay)
system_send_snes_reset(); system_send_snes_reset();
_delay_ms(init_delay); info_P(PSTR("Move Loader to wram"));
for (i=0;i<30;i++){
_delay_ms(20);
info_P(PSTR("."));
}
info_P(PSTR("\n"));
} }
void banner(){ void banner(){

View File

@ -51,8 +51,8 @@
#define DO_CRC_CHECK_LOADER 0 #define DO_CRC_CHECK_LOADER 0
#define DO_CRC_CHECK 0 #define DO_CRC_CHECK 0
#define DO_SHM_SCRATCHPAD 1 #define DO_SHM_SCRATCHPAD 1
#define DO_SHM 1 #define DO_SHM 0
#define DO_TIMER 1 #define DO_TIMER 0
#define DO_SHELL 0 #define DO_SHELL 1
#endif #endif

View File

@ -58,7 +58,6 @@ extern system_t system;
uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC); uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC);
usb_transaction_t usb_trans; usb_transaction_t usb_trans;
usbMsgLen_t usbFunctionSetup(uchar data[8]) usbMsgLen_t usbFunctionSetup(uchar data[8])
@ -259,16 +258,8 @@ int main(void)
usb_connect(); usb_connect();
sei(); sei();
while (1) { while (1) {
system_set_bus_avr(); system_set_bus_avr();
system_set_wr_disable(); system_set_wr_disable();
/*
avr_bus_active();
info_P(PSTR("Activate AVR bus\n"));
info_P(PSTR("Disable SNES WR\n"));
snes_wr_disable();
*/
info_P(PSTR("USB poll\n"));
while (usb_trans.req_state != REQ_STATUS_SNES) { while (usb_trans.req_state != REQ_STATUS_SNES) {
usbPoll(); usbPoll();
#if DO_SHELL #if DO_SHELL
@ -297,17 +288,6 @@ int main(void)
system_set_bus_snes(); system_set_bus_snes();
system_send_snes_reset(); system_send_snes_reset();
irq_stop(); irq_stop();
/*
info_P(PSTR("-->Switch TO SNES\n"));
set_rom_mode();
snes_wr_disable();
info_P(PSTR("Disable SNES WR\n"));
snes_bus_active();
info_P(PSTR("Activate SNES bus\n"));
irq_stop();
send_reset();
*/
info_P(PSTR("Poll USB\n"));
while ((usb_trans.req_state != REQ_STATUS_AVR)) { while ((usb_trans.req_state != REQ_STATUS_AVR)) {
usbPoll(); usbPoll();
#if DO_SHELL #if DO_SHELL
@ -316,18 +296,16 @@ int main(void)
#endif #endif
#endif #endif
} }
//info_P(PSTR("-->Switch TO AVR\n")); info_P(PSTR("-->Switch TO AVR\n"));
shared_memory_init(); shared_memory_init();
irq_init();
if(usb_trans.loader_enabled) { if(usb_trans.loader_enabled) {
boot_startup_rom(500); boot_startup_rom(50);
} else { } else {
system_set_bus_avr(); system_set_bus_avr();
system_send_snes_reset(); system_send_snes_reset();
//avr_bus_active();
//send_reset();
} }
irq_init(); globals_init();
} }
return 0; return 0;
} }