add bulk copy and read buffer

This commit is contained in:
david 2009-06-24 12:45:57 +02:00
parent 1b2b7ecbed
commit c24d6ceb81
2 changed files with 63 additions and 10 deletions

View File

@ -265,11 +265,62 @@ void sram_write(uint32_t addr, uint8_t data)
} }
void sram_bulk_copy(uint32_t addr, uint8_t * src, uint32_t len)
void sram_clear(uint32_t addr, uint32_t len)
{ {
uint32_t i; uint32_t i;
uint8_t *ptr = src;
#ifdef DEBUG_SRAM
printf("sram_copy: addr=0x%08lx src=0x%p len=%li\n\r", addr,src,len);
#endif
sram_bulk_write_start(addr);
for (i = addr; i < (addr + len); i++){
sram_bulk_write(*ptr++);
sram_bulk_write_next();
}
sram_bulk_write_end();
}
void sram_bulk_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
{
uint32_t i;
uint8_t *ptr = dst;
#ifdef DEBUG_SRAM
printf("sram_bulk_read_buffer: addr=0x%08lx dst=0x%p len=%li\n\r", addr,dst,len);
#endif
sram_bulk_read_start(addr);
for (i = addr; i < (addr + len); i++) {
*ptr = sram_bulk_read();
sram_bulk_read_next();
ptr++;
}
sram_bulk_read_end();
}
void sram_bulk_clear(uint32_t addr, uint32_t len){
uint32_t i;
#ifdef DEBUG_SRAM
printf("sram_bulk_clear: addr=0x%08lx len=%li\n\r", addr,len);
#endif
sram_bulk_write_start(addr);
for (i = addr; i < (addr + len); i++) {
if (0 == i % 0xfff)
#ifdef DEBUG_SRAM
printf("sram_bulk_clear: addr=0x%08lx\n\r", i);
#endif
sram_bulk_write(0xff);
sram_bulk_write_next();
}
sram_bulk_write_end();
}
void sram_clear(uint32_t addr, uint32_t len)
{
uint32_t i;
#ifdef DEBUG_SRAM
printf("sram_clear: addr=0x%08lx len=%li\n\r", addr,len);
#endif
for (i = addr; i < (addr + len); i++) { for (i = addr; i < (addr + len); i++) {
if (0 == i % 0xfff) if (0 == i % 0xfff)
#ifdef DEBUG_SRAM #ifdef DEBUG_SRAM
@ -304,6 +355,7 @@ void sram_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
ptr++; ptr++;
} }
} }
uint8_t sram_check(uint8_t * buffer, uint32_t len) uint8_t sram_check(uint8_t * buffer, uint32_t len)
{ {
uint16_t cnt; uint16_t cnt;

View File

@ -142,10 +142,12 @@
void system_init(void); void system_init(void);
void sreg_set(uint32_t addr); void sreg_set(uint32_t addr);
uint8_t sram_read(uint32_t addr); uint8_t sram_read(uint32_t addr);
void sram_write(uint32_t addr, uint8_t data); void sram_write(uint32_t addr, uint8_t data);
void sram_clear(uint32_t addr, uint32_t len); void sram_clear(uint32_t addr, uint32_t len);
void sram_copy(uint32_t addr,uint8_t *src, uint32_t len); void sram_copy(uint32_t addr,uint8_t *src, uint32_t len);
void sram_read_buffer(uint32_t addr,uint8_t *dst, uint32_t len);
void sram_bulk_read_start(uint32_t addr); void sram_bulk_read_start(uint32_t addr);
inline void sram_bulk_read_next(void); inline void sram_bulk_read_next(void);
@ -157,7 +159,6 @@ inline void sram_bulk_read_next(void);
inline void sram_bulk_write_end(void); inline void sram_bulk_write_end(void);
void sram_bulk_write(uint8_t data); void sram_bulk_write(uint8_t data);
void sram_bulk_copy(uint32_t addr, uint8_t * src, uint32_t len);
void sram_bulk_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len);
void sram_read_buffer(uint32_t addr,uint8_t *dst, uint32_t len); void sram_bulk_clear(uint32_t addr, uint32_t len);
uint8_t sram_check(uint8_t *buffer, uint32_t len);