Forráskód Böngészése

upload is wokring

David Voswinkel 15 éve
szülő
commit
5cb972e7f6
3 módosított fájl, 28 hozzáadás és 5 törlés
  1. BIN
      avr/usbload/commandline/snesuploader
  2. 14 4
      avr/usbload/main.c
  3. 14 1
      avr/usbload/sram.c

BIN
avr/usbload/commandline/snesuploader


+ 14 - 4
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");

+ 14 - 1
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();