|
@@ -66,18 +66,18 @@ void system_init(void)
|
|
|
void sreg_set(uint32_t addr)
|
|
|
{
|
|
|
uint8_t i = 24;
|
|
|
-#ifdef DEBUG_SREG
|
|
|
+#if DEBUG_SREG
|
|
|
printf("sreg_set: addr=0x%08lx",addr);
|
|
|
#endif
|
|
|
while(i--) {
|
|
|
if ((addr & ( 1L << i))){
|
|
|
-#ifdef DEBUG_SREG
|
|
|
+#if DEBUG_SREG
|
|
|
printf("1");
|
|
|
#endif
|
|
|
AVR_ADDR_SER_PORT |= ( 1 << AVR_ADDR_SER_PIN);
|
|
|
} else {
|
|
|
AVR_ADDR_SER_PORT &= ~( 1 << AVR_ADDR_SER_PIN);
|
|
|
-#ifdef DEBUG_SREG
|
|
|
+#if DEBUG_SREG
|
|
|
printf("0");
|
|
|
#endif
|
|
|
|
|
@@ -85,7 +85,7 @@ void sreg_set(uint32_t addr)
|
|
|
AVR_ADDR_SCK_PORT |= (1 << AVR_ADDR_SCK_PIN);
|
|
|
AVR_ADDR_SCK_PORT &= ~(1 << AVR_ADDR_SCK_PIN);
|
|
|
}
|
|
|
-#ifdef DEBUG_SREG
|
|
|
+#if DEBUG_SREG
|
|
|
printf("\n");
|
|
|
#endif
|
|
|
AVR_ADDR_LATCH_PORT |= (1 << AVR_ADDR_LATCH_PIN);
|
|
@@ -99,7 +99,7 @@ void sreg_set(uint32_t addr)
|
|
|
|
|
|
void sram_bulk_read_start(uint32_t addr)
|
|
|
{
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_bulk_read_start: addr=0x%08lx\n\r", addr);
|
|
|
#endif
|
|
|
avr_data_in();
|
|
@@ -112,6 +112,11 @@ void sram_bulk_read_start(uint32_t addr)
|
|
|
|
|
|
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");
|
|
|
}
|
|
|
|
|
|
inline void sram_bulk_read_next(void)
|
|
@@ -121,6 +126,11 @@ inline void sram_bulk_read_next(void)
|
|
|
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");
|
|
|
}
|
|
|
|
|
|
|
|
@@ -131,7 +141,7 @@ inline uint8_t sram_bulk_read(void)
|
|
|
|
|
|
void sram_bulk_read_end(void)
|
|
|
{
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_bulk_read_end:");
|
|
|
#endif
|
|
|
AVR_RD_PORT |= (1 << AVR_RD_PIN);
|
|
@@ -142,7 +152,7 @@ void sram_bulk_read_end(void)
|
|
|
uint8_t sram_read(uint32_t addr)
|
|
|
{
|
|
|
uint8_t byte;
|
|
|
-#ifdef DEBUG_SRAM_RAW
|
|
|
+#if DEBUG_SRAM_RAW
|
|
|
printf("sram_read: addr=0x%08lx\n\r", addr);
|
|
|
#endif
|
|
|
|
|
@@ -157,6 +167,11 @@ uint8_t sram_read(uint32_t addr)
|
|
|
|
|
|
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");
|
|
|
|
|
|
byte = AVR_DATA_PIN;
|
|
@@ -171,7 +186,7 @@ uint8_t sram_read(uint32_t addr)
|
|
|
|
|
|
void sram_bulk_write_start(uint32_t addr)
|
|
|
{
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_bulk_write_start: addr=0x%08lx\n\r", addr);
|
|
|
#endif
|
|
|
|
|
@@ -200,7 +215,7 @@ inline void sram_bulk_write( uint8_t data)
|
|
|
|
|
|
void sram_bulk_write_end(void)
|
|
|
{
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_bulk_write_end:");
|
|
|
#endif
|
|
|
AVR_WR_PORT |= (1 << AVR_WR_PIN);
|
|
@@ -212,7 +227,7 @@ void sram_bulk_write_end(void)
|
|
|
void sram_write(uint32_t addr, uint8_t data)
|
|
|
{
|
|
|
|
|
|
-#ifdef DEBUG_SRAM_RAW
|
|
|
+#if DEBUG_SRAM_RAW
|
|
|
printf("sram_write: addr=0x%08lx data=%x\n\r", addr, data);
|
|
|
#endif
|
|
|
|
|
@@ -239,7 +254,7 @@ void sram_bulk_copy(uint32_t addr, uint8_t * src, uint32_t len)
|
|
|
|
|
|
uint32_t i;
|
|
|
uint8_t *ptr = src;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_copy: addr=0x%08lx src=0x%p len=%li\n\r", addr,src,len);
|
|
|
#endif
|
|
|
sram_bulk_write_start(addr);
|
|
@@ -255,7 +270,7 @@ void sram_bulk_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
|
|
|
|
|
|
uint32_t i;
|
|
|
uint8_t *ptr = dst;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if 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);
|
|
@@ -267,18 +282,18 @@ void sram_bulk_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
|
|
|
sram_bulk_read_end();
|
|
|
}
|
|
|
|
|
|
-void sram_bulk_clear(uint32_t addr, uint32_t len){
|
|
|
+void sram_bulk_set(uint32_t addr, uint32_t len,uint8_t value){
|
|
|
uint32_t i;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if 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
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_bulk_clear: addr=0x%08lx\n\r", i);
|
|
|
#endif
|
|
|
- sram_bulk_write(0xff);
|
|
|
+ sram_bulk_write(value);
|
|
|
sram_bulk_write_next();
|
|
|
}
|
|
|
sram_bulk_write_end();
|
|
@@ -287,12 +302,12 @@ void sram_bulk_clear(uint32_t addr, uint32_t len){
|
|
|
void sram_clear(uint32_t addr, uint32_t len)
|
|
|
{
|
|
|
uint32_t i;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_clear: addr=0x%08lx len=%li\n\r", addr,len);
|
|
|
#endif
|
|
|
for (i = addr; i < (addr + len); i++) {
|
|
|
if (0 == i % 0xfff)
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_clear: addr=0x%08lx\n\r", i);
|
|
|
#endif
|
|
|
sram_write(i, 0x00);
|
|
@@ -304,7 +319,7 @@ void sram_copy(uint32_t addr, uint8_t * src, uint32_t len)
|
|
|
|
|
|
uint32_t i;
|
|
|
uint8_t *ptr = src;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_copy: addr=0x%08lx src=0x%p len=%li\n\r", addr,src,len);
|
|
|
#endif
|
|
|
for (i = addr; i < (addr + len); i++)
|
|
@@ -316,7 +331,7 @@ void sram_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
|
|
|
|
|
|
uint32_t i;
|
|
|
uint8_t *ptr = dst;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_read_buffer: addr=0x%08lx dst=0x%p len=%li\n\r", addr,dst,len);
|
|
|
#endif
|
|
|
for (i = addr; i < (addr + len); i++) {
|
|
@@ -325,10 +340,11 @@ void sram_read_buffer(uint32_t addr, uint8_t * dst, uint32_t len)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
uint8_t sram_check(uint8_t * buffer, uint32_t len)
|
|
|
{
|
|
|
uint16_t cnt;
|
|
|
-#ifdef DEBUG_SRAM
|
|
|
+#if DEBUG_SRAM
|
|
|
printf("sram_check: len=%li\n\r",len);
|
|
|
#endif
|
|
|
for (cnt = 0; cnt < len; cnt++)
|
|
@@ -336,3 +352,5 @@ uint8_t sram_check(uint8_t * buffer, uint32_t len)
|
|
|
return 1;
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+
|