From 5cb972e7f6650c437d5691f77f130a8a9bf69dae Mon Sep 17 00:00:00 2001 From: David Voswinkel Date: Mon, 6 Jul 2009 20:05:25 +0200 Subject: [PATCH] upload is wokring --- avr/usbload/commandline/snesuploader | Bin 18620 -> 0 bytes avr/usbload/main.c | 18 ++++++++++++++---- avr/usbload/sram.c | 15 ++++++++++++++- 3 files changed, 28 insertions(+), 5 deletions(-) delete mode 100755 avr/usbload/commandline/snesuploader diff --git a/avr/usbload/commandline/snesuploader b/avr/usbload/commandline/snesuploader deleted file mode 100755 index 69c99dbe796c38906ed651460b6f839d1f984b67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18620 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 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();