bank 0x00 upload working with crc
This commit is contained in:
parent
2ebd2b75aa
commit
77d9418cee
Binary file not shown.
@ -195,20 +195,21 @@ int main(int argc, char **argv)
|
||||
exit(-1);
|
||||
}
|
||||
addr += SEND_BUFFER_SIZE;
|
||||
break;
|
||||
//break;
|
||||
}
|
||||
dump_packet(0x00000,SEND_BUFFER_SIZE, read_buffer);
|
||||
//dump_packet(0x00000,SEND_BUFFER_SIZE, read_buffer);
|
||||
memcpy(crc_buffer + cnt_crc, read_buffer, READ_BUFFER_SIZE);
|
||||
cnt_crc += READ_BUFFER_SIZE;
|
||||
if (cnt_crc >= READ_BUFFER_SIZE) {
|
||||
crc = do_crc(crc_buffer, BANK_SIZE);
|
||||
crc = do_crc(crc_buffer, READ_BUFFER_SIZE);
|
||||
printf ("bank=0x%02x crc=0x%04x\n", bank, crc);
|
||||
memset(crc_buffer, 0, BUFFER_CRC);
|
||||
bank++;
|
||||
cnt_crc = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
//break;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -27,6 +27,7 @@ uint16_t do_crc(uint8_t * data, uint16_t size)
|
||||
uint16_t i;
|
||||
for (i = 0; i < size; i++) {
|
||||
crc = crc_xmodem_update(crc, data[i]);
|
||||
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
@ -41,15 +42,18 @@ uint16_t do_crc_update(uint16_t crc, uint8_t * data, uint16_t size)
|
||||
}
|
||||
|
||||
|
||||
void crc_check_bulk_memory(uint32_t bottom_addr,uint32_t top_addr)
|
||||
uint16_t crc_check_bulk_memory(uint32_t bottom_addr,uint32_t top_addr)
|
||||
{
|
||||
uint16_t crc = 0;
|
||||
uint32_t addr = 0;
|
||||
uint8_t req_bank = 0;
|
||||
sram_bulk_read_start(bottom_addr);
|
||||
printf("crc_check_bulk_memory: bottom_addr=0x%08lx top_addr=0x%08lx\n",
|
||||
bottom_addr, top_addr);
|
||||
|
||||
for (addr = bottom_addr; addr < top_addr; addr++) {
|
||||
if (addr && addr % 0x8000 == 0) {
|
||||
printf("crc_check_bulk: bank=0x%02x addr=0x%08lx crc=0x%04x\n",
|
||||
printf("crc_check_bulk_memory: bank=0x%02x addr=0x%08lx crc=0x%04x\n",
|
||||
req_bank,addr,crc);
|
||||
req_bank++;
|
||||
crc = 0;
|
||||
@ -57,11 +61,11 @@ void crc_check_bulk_memory(uint32_t bottom_addr,uint32_t top_addr)
|
||||
crc = crc_xmodem_update(crc, sram_bulk_read());
|
||||
sram_bulk_read_next();
|
||||
}
|
||||
sram_bulk_read_end();
|
||||
if (addr % 0x8000 == 0)
|
||||
printf("crc_check_bulk: bank=0x%02x addr=0x%08lx crc=0x%04x\n",
|
||||
printf("crc_check_bulk_memory: bank=0x%02x addr=0x%08lx crc=0x%04x\n",
|
||||
req_bank,addr,crc);
|
||||
|
||||
sram_bulk_read_end();
|
||||
return crc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -11,6 +11,6 @@ uint16_t do_crc(uint8_t * data,uint16_t size);
|
||||
uint16_t do_crc_update(uint16_t crc,uint8_t * data,uint16_t size);
|
||||
void crc_check_memory(uint32_t bottom_addr,uint32_t top_addr,uint8_t *buffer);
|
||||
uint16_t crc_check_memory_range(uint32_t start_addr, uint32_t size,uint8_t *buffer);
|
||||
void crc_check_bulk_memory(uint32_t bottom_addr,uint32_t top_addr);
|
||||
uint16_t crc_check_bulk_memory(uint32_t bottom_addr,uint32_t top_addr);
|
||||
|
||||
#endif
|
||||
|
||||
@ -47,19 +47,16 @@ void dump_memory(uint32_t bottom_addr, uint32_t top_addr)
|
||||
{
|
||||
uint32_t addr;
|
||||
uint8_t byte;
|
||||
|
||||
//sram_bulk_read_start(bottom_addr);
|
||||
bottom_addr = 0x00;
|
||||
top_addr = 0x80;
|
||||
|
||||
printf("%08lx - %08lx\n",bottom_addr, top_addr);
|
||||
printf("dump_memory: bottom_addr=%08lx top_addr=%08lx\n",bottom_addr, top_addr);
|
||||
sram_bulk_read_start(bottom_addr);
|
||||
printf("%08lx:", bottom_addr);
|
||||
for ( addr = bottom_addr; addr < top_addr; addr++) {
|
||||
if (addr%0x10 == 0)
|
||||
printf("\n%08lx:", addr);
|
||||
byte = sram_read(addr);
|
||||
//sram_bulk_read_next();
|
||||
byte = sram_bulk_read();
|
||||
sram_bulk_read_next();
|
||||
printf(" %02x", byte);
|
||||
}
|
||||
//sram_bulk_read_end();
|
||||
printf("\n");
|
||||
sram_bulk_read_end();
|
||||
}
|
||||
|
||||
@ -12,12 +12,13 @@
|
||||
#include "uart.h"
|
||||
#include "sram.h"
|
||||
#include "debug.h"
|
||||
#include "dump.h"
|
||||
#include "crc.h"
|
||||
#include "usb_bulk.h"
|
||||
|
||||
extern FILE uart_stdout;
|
||||
|
||||
uint8_t debug_level = ( DEBUG | DEBUG_USB | DEBUG_USB_TRANS | DEBUG_SRAM);
|
||||
uint8_t debug_level = ( DEBUG | DEBUG_USB);
|
||||
|
||||
uint8_t read_buffer[TRANSFER_BUFFER_SIZE];
|
||||
uint32_t req_addr = 0;
|
||||
@ -53,7 +54,7 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
req_bank_size = 1 << rq->wValue.word;
|
||||
sync_errors = 0;
|
||||
crc = 0;
|
||||
debug(DEBUG_USB,"USB_UPLOAD_INIT: bank_size=0x%x\n", req_bank_size);
|
||||
debug(DEBUG_USB,"USB_UPLOAD_INIT: bank_size=0x%04x\n", req_bank_size);
|
||||
|
||||
/*
|
||||
* -------------------------------------------------------------------------
|
||||
@ -292,7 +293,7 @@ int main(void)
|
||||
|
||||
system_init();
|
||||
printf("Sytem Init\n");
|
||||
|
||||
|
||||
avr_bus_active();
|
||||
usbInit();
|
||||
printf("USB Init\n");
|
||||
@ -320,9 +321,14 @@ int main(void)
|
||||
usbDeviceDisconnect();
|
||||
printf("USB disconnect\n");
|
||||
|
||||
crc_check_bulk_memory(0x000000,0x8000);
|
||||
crc_check_bulk_memory(0x000000, 0x80000);
|
||||
|
||||
#if 0
|
||||
dump_memory(0x0000,0x0080);
|
||||
printf("crc=0x%x\n",crc_check_bulk_memory(0x000000, 0x80));
|
||||
#endif
|
||||
|
||||
dump_memory(0x00,0x80);
|
||||
dump_memory(0x7f00,0x8000);
|
||||
|
||||
printf("Disable snes WR\n");
|
||||
snes_wr_disable();
|
||||
|
||||
@ -131,7 +131,7 @@ inline uint8_t sram_bulk_read(void)
|
||||
|
||||
void sram_bulk_read_end(void)
|
||||
{
|
||||
debug(DEBUG_SRAM,"sram_bulk_read_end:");
|
||||
debug(DEBUG_SRAM,"sram_bulk_read_end:\n");
|
||||
|
||||
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
||||
AVR_CS_PORT |= (1 << AVR_CS_PIN);
|
||||
|
||||
@ -141,7 +141,7 @@ section at the end of this file).
|
||||
* of the macros usbDisableAllRequests() and usbEnableAllRequests() in
|
||||
* usbdrv.h.
|
||||
*/
|
||||
#define USB_CFG_LONG_TRANSFERS 1
|
||||
#define USB_CFG_LONG_TRANSFERS 0
|
||||
/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
|
||||
* in a single control-in or control-out transfer. Note that the capability
|
||||
* for long transfers increases the driver size.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user