add fast bulk read
This commit is contained in:
parent
b8bd7acfa3
commit
465ea1fbfe
@ -16,7 +16,6 @@ uint16_t crc_xmodem_update(uint16_t crc, uint8_t data)
|
||||
else
|
||||
crc <<= 1;
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
@ -26,7 +25,6 @@ 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]);
|
||||
// printf("%x : %x\n",crc,data[i]);
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
@ -135,7 +135,7 @@ usbMsgLen_t usbFunctionSetup(uchar data[8])
|
||||
printf("USB_CRC_ADDR: Addr: 0x%lx Size: %li\n", req_addr, req_size);
|
||||
#endif
|
||||
cli();
|
||||
// crc_check_memory_range(req_addr,req_size);
|
||||
crc_check_memory_range(req_addr,req_size);
|
||||
sei();
|
||||
ret_len = 2;
|
||||
}
|
||||
|
||||
@ -97,16 +97,64 @@ void sreg_set(uint32_t addr)
|
||||
}
|
||||
|
||||
|
||||
|
||||
uint8_t sram_read(uint32_t addr)
|
||||
void sram_bulk_read_start(uint32_t addr)
|
||||
{
|
||||
uint8_t byte;
|
||||
|
||||
#ifdef DEBUG_SRAM
|
||||
printf("sram_bulk_read_start: addr=0x%08lx\n\r", addr);
|
||||
#endif
|
||||
avr_data_in();
|
||||
|
||||
AVR_WR_PORT |= (1 << AVR_WR_PIN);
|
||||
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
||||
AVR_CS_PORT &= ~(1 << AVR_CS_PIN);
|
||||
sreg_set(addr);
|
||||
|
||||
AVR_RD_PORT &= ~(1 << AVR_RD_PIN);
|
||||
|
||||
}
|
||||
|
||||
void sram_bulk_read_end(void)
|
||||
{
|
||||
#ifdef DEBUG_SRAM
|
||||
printf("sram_bulk_read_end:");
|
||||
#endif
|
||||
AVR_CS_PORT |= (1 << AVR_CS_PIN);
|
||||
avr_data_in();
|
||||
}
|
||||
|
||||
inline uint8_t sram_bulk_read(void)
|
||||
{
|
||||
uint8_t byte;
|
||||
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
||||
counter_up();
|
||||
AVR_RD_PORT &= ~(1 << AVR_RD_PIN);
|
||||
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
asm volatile ("nop");
|
||||
|
||||
byte = AVR_DATA_PIN;
|
||||
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
||||
return byte;
|
||||
}
|
||||
|
||||
uint8_t sram_read(uint32_t addr)
|
||||
{
|
||||
uint8_t byte;
|
||||
#ifdef DEBUG_SRAM
|
||||
printf("sram_read: addr=0x%08lx\n\r", addr);
|
||||
#endif
|
||||
|
||||
avr_data_in();
|
||||
|
||||
AVR_CS_PORT &= ~(1 << AVR_CS_PIN);
|
||||
AVR_WR_PORT |= (1 << AVR_WR_PIN);
|
||||
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
||||
|
||||
sreg_set(addr);
|
||||
|
||||
@ -133,6 +181,11 @@ uint8_t sram_read(uint32_t addr)
|
||||
|
||||
void sram_write(uint32_t addr, uint8_t data)
|
||||
{
|
||||
|
||||
#ifdef DEBUG_SRAM
|
||||
printf("sram_write: addr=0x%08lx data=%x\n\r", addr, data);
|
||||
#endif
|
||||
|
||||
avr_data_out();
|
||||
|
||||
AVR_CS_PORT &= ~(1 << AVR_CS_PIN);
|
||||
|
||||
@ -141,9 +141,15 @@
|
||||
|
||||
void system_init(void);
|
||||
void sreg_set(uint32_t addr);
|
||||
|
||||
uint8_t sram_read(uint32_t addr);
|
||||
void sram_write(uint32_t addr, uint8_t data);
|
||||
void sram_clear(uint32_t addr, uint32_t len);
|
||||
void sram_copy(uint32_t addr,uint8_t *src, uint32_t len);
|
||||
|
||||
void sram_bulk_read_start(uint32_t addr);
|
||||
void sram_bulk_read_end(void);
|
||||
uint8_t sram_bulk_read(void);
|
||||
|
||||
void sram_read_buffer(uint32_t addr,uint8_t *dst, uint32_t len);
|
||||
uint8_t sram_check(uint8_t *buffer, uint32_t len);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user