upload is wokring

This commit is contained in:
David Voswinkel 2009-07-06 20:05:25 +02:00
parent 21298fc63f
commit 5cb972e7f6
3 changed files with 28 additions and 5 deletions

Binary file not shown.

View File

@ -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");

View File

@ -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();