diff --git a/avr/usbload/commandline/snesuploader b/avr/usbload/commandline/snesuploader deleted file mode 100755 index 69c99db..0000000 Binary files a/avr/usbload/commandline/snesuploader and /dev/null differ diff --git a/avr/usbload/main.c b/avr/usbload/main.c index 5ff65fc..a7467da 100644 --- a/avr/usbload/main.c +++ b/avr/usbload/main.c @@ -150,9 +150,15 @@ 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 0 + if (req_addr && (req_addr % 0x1000) == 0) { + debug(DEBUG_USB,"USB_UPLOAD_ADDR: bank=0x%02x addr=0x%08lx crc=%04x\n", + req_bank, req_addr,crc_check_bulk_memory(req_addr - 0x1000,req_addr)); + + } +#endif + sram_bulk_write_start(req_addr); if (req_addr && req_addr % req_bank_size == 0) { debug(DEBUG_USB,"USB_BULK_UPLOAD_NEXT: req_bank=0x%02x addr= 0x%08lx time=%.4f\n", req_bank, req_addr,timer_stop()); @@ -249,7 +255,7 @@ void test_bulk_read_write(){ addr = 0x000000; i = 0; sram_bulk_write_start(addr); - while (addr++ <= 0x3fffff){ + while (addr++ <= 0x8000){ sram_bulk_write(i++); sram_bulk_write_next(); } @@ -257,7 +263,7 @@ void test_bulk_read_write(){ addr = 0x000000; sram_bulk_read_start(addr); - while (addr <= 0x3fffff){ + while (addr <= 0x8000){ printf("addr=0x%08lx %x\n",addr,sram_bulk_read()); sram_bulk_read_next(); addr++; @@ -302,6 +308,10 @@ int main(void) system_init(); printf("Sytem Init\n"); + //test_read_write(); + //test_bulk_read_write(); + //test_crc(); + //while(1); usbInit(); printf("USB Init\n"); diff --git a/avr/usbload/sram.c b/avr/usbload/sram.c index 3b29733..1f111e2 100644 --- a/avr/usbload/sram.c +++ b/avr/usbload/sram.c @@ -111,6 +111,7 @@ void sram_bulk_read_start(uint32_t addr) asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); + } inline void sram_bulk_read_next(void) @@ -125,6 +126,7 @@ inline void sram_bulk_read_next(void) asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); + } @@ -188,11 +190,12 @@ void sram_bulk_write_start(uint32_t addr) sreg_set(addr); AVR_WR_PORT &= ~(1 << AVR_WR_PIN); + } inline void sram_bulk_write_next(void) { - AVR_RD_PORT |= (1 << AVR_RD_PIN); + AVR_WR_PORT |= (1 << AVR_WR_PIN); counter_up(); AVR_WR_PORT &= ~(1 << AVR_WR_PIN); } @@ -200,6 +203,7 @@ inline void sram_bulk_write_next(void) inline void sram_bulk_write( uint8_t data) { AVR_DATA_PORT = data; + } void sram_bulk_write_end(void) @@ -224,9 +228,18 @@ void sram_write(uint32_t addr, uint8_t data) sreg_set(addr); AVR_WR_PORT &= ~(1 << AVR_WR_PIN); + + AVR_DATA_PORT = data; + AVR_WR_PORT |= (1 << AVR_WR_PIN); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); AVR_CS_PORT |= (1 << AVR_CS_PIN); avr_data_in();