get shared mem working
This commit is contained in:
parent
1b45c2f325
commit
d1447db7b0
3656
avr/usbload/loader.c
3656
avr/usbload/loader.c
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,6 @@
|
||||
#ifndef __FIFO_H__
|
||||
#define __FIFO_H__
|
||||
|
||||
#define ROM_SIZE 30151
|
||||
#define ROM_SIZE 30119
|
||||
|
||||
#endif
|
||||
|
||||
@ -124,7 +124,7 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
req_bank, req_addr);
|
||||
|
||||
req_bank++;
|
||||
shared_memory_put(SHARED_MEM_CMD_UPLOAD_PROGESS,req_bank);
|
||||
//shared_memory_put(SHARED_MEM_CMD_UPLOAD_PROGESS,req_bank);
|
||||
}
|
||||
ret_len = USB_MAX_TRANS;
|
||||
/*
|
||||
@ -167,7 +167,6 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
req_addr = rq->wValue.word;
|
||||
req_addr = req_addr << 16;
|
||||
req_addr = req_addr | rq->wIndex.word;
|
||||
sram_bulk_write_start(req_addr);
|
||||
rx_remaining = rq->wLength.word;
|
||||
|
||||
if (req_addr && req_addr % req_bank_size == 0) {
|
||||
@ -179,8 +178,12 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
req_bank, req_addr,timer_stop_int());
|
||||
#endif
|
||||
req_bank++;
|
||||
shared_memory_put(SHARED_MEM_CMD_UPLOAD_PROGESS,req_bank);
|
||||
sram_bulk_write_start(req_addr);
|
||||
timer_start();
|
||||
|
||||
} else {
|
||||
sram_bulk_write_start(req_addr);
|
||||
}
|
||||
ret_len = USB_MAX_TRANS;
|
||||
|
||||
@ -204,15 +207,16 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
#endif
|
||||
if (req_addr && ( req_addr % req_bank_size) == 0) {
|
||||
#ifdef FLT_DEBUG
|
||||
debug(DEBUG_USB,"USB_BULK_UPLOAD_ADDR: req_bank=0x%02x addr=0x%08lx time=%.4f\n",
|
||||
debug(DEBUG_USB,"USB_BULK_UPLOAD_NEXT: req_bank=0x%02x addr=0x%08lx time=%.4f\n",
|
||||
req_bank, req_addr,timer_stop());
|
||||
#else
|
||||
debug(DEBUG_USB,"USB_BULK_UPLOAD_ADDR: req_bank=0x%02x addr=0x%08lx time=%i\n",
|
||||
debug(DEBUG_USB,"USB_BULK_UPLOAD_NEXT: req_bank=0x%02x addr=0x%08lx time=%i\n",
|
||||
req_bank, req_addr,timer_stop_int());
|
||||
#endif
|
||||
req_bank++;
|
||||
shared_memory_put(SHARED_MEM_CMD_UPLOAD_PROGESS,req_bank);
|
||||
timer_start();
|
||||
shared_memory_put(SHARED_MEM_CMD_UPLOAD_PROGESS,req_bank);
|
||||
sram_bulk_write_start(req_addr);
|
||||
|
||||
}
|
||||
ret_len = USB_MAX_TRANS;
|
||||
@ -489,7 +493,8 @@ void boot_startup_rom(){
|
||||
_delay_ms(100);
|
||||
info("Reset Snes\n");
|
||||
send_reset();
|
||||
#if 0
|
||||
_delay_ms(100);
|
||||
#if 0
|
||||
i = 20;
|
||||
info("Wait");
|
||||
while (--i){
|
||||
@ -559,9 +564,10 @@ int main(void)
|
||||
while (req_state != REQ_STATUS_AVR){
|
||||
|
||||
usbPoll();
|
||||
|
||||
#ifdef DO_IRQ
|
||||
i = 10;
|
||||
while (--i) { /* fake USB disconnect for > 250 ms */
|
||||
while (--i) {
|
||||
_delay_ms(100);
|
||||
}
|
||||
info("Send IRQ %i\n",++irq_count);
|
||||
|
||||
@ -64,7 +64,8 @@ void shared_memory_irq_restore(){
|
||||
|
||||
void shared_memory_put(uint8_t cmd, uint8_t value){
|
||||
|
||||
info("Write shared memory %06lx=%02x %06lx=%02x \n",SHARED_MEM_LOC_CMD,cmd,SHARED_MEM_LOC_PAYLOAD,value);
|
||||
//return;
|
||||
info("Write shared memory 0x%04x=0x%02x 0x%04x=0x%02x \n",SHARED_MEM_LOC_CMD,cmd,SHARED_MEM_LOC_PAYLOAD,value);
|
||||
|
||||
shared_memory_scratchpad_save();
|
||||
shared_memory_irq_hook();
|
||||
@ -73,23 +74,17 @@ void shared_memory_put(uint8_t cmd, uint8_t value){
|
||||
sram_write(SHARED_MEM_LOC_CMD,cmd);
|
||||
sram_write(SHARED_MEM_LOC_PAYLOAD,value);
|
||||
|
||||
snes_irq_lo();
|
||||
snes_irq_off();
|
||||
snes_hirom();
|
||||
snes_wr_disable();
|
||||
snes_bus_active();
|
||||
|
||||
//snes_irq_on();
|
||||
//snes_irq_lo();
|
||||
//_delay_us(20);
|
||||
_delay_ms(50);
|
||||
|
||||
//snes_irq_hi();
|
||||
//snes_irq_off();
|
||||
|
||||
avr_bus_active();
|
||||
snes_irq_off();
|
||||
snes_irq_lo();
|
||||
snes_irq_off();
|
||||
snes_lorom();
|
||||
snes_wr_disable();
|
||||
|
||||
shared_memory_scratchpad_restore();
|
||||
shared_memory_irq_restore();
|
||||
|
||||
@ -34,8 +34,8 @@
|
||||
#define SHARED_IRQ_LOC_HI 0x00ffff
|
||||
|
||||
|
||||
#define SHARED_IRQ_HANDLER_LO 0x12
|
||||
#define SHARED_IRQ_HANDLER_HI 0x34
|
||||
#define SHARED_IRQ_HANDLER_LO 0x00
|
||||
#define SHARED_IRQ_HANDLER_HI 0x10
|
||||
|
||||
void shared_memory_put(uint8_t cmd, uint8_t value);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user