add delya/irq switch for shared mem
This commit is contained in:
parent
6ef9989320
commit
b6d5d1b571
3549
avr/usbload/loader.c
3549
avr/usbload/loader.c
File diff suppressed because it is too large
Load Diff
@ -2,8 +2,8 @@
|
|||||||
#ifndef __FIFO_H__
|
#ifndef __FIFO_H__
|
||||||
#define __FIFO_H__
|
#define __FIFO_H__
|
||||||
|
|
||||||
#define ROM_BUFFER_SIZE 30344
|
#define ROM_BUFFER_SIZE 31091
|
||||||
#define ROM_HUFFMAN_SIZE 0
|
#define ROM_HUFFMAN_SIZE 0
|
||||||
#define ROM_RLE_SIZE 30344
|
#define ROM_RLE_SIZE 31091
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -81,15 +81,20 @@ void shared_memory_write(uint8_t cmd, uint8_t value)
|
|||||||
sram_write(SHARED_MEM_TX_LOC_PAYLOAD, value);
|
sram_write(SHARED_MEM_TX_LOC_PAYLOAD, value);
|
||||||
|
|
||||||
snes_hirom();
|
snes_hirom();
|
||||||
snes_wr_disable();
|
|
||||||
snes_bus_active();
|
snes_bus_active();
|
||||||
_delay_ms(50);
|
|
||||||
|
#if SHARED_MEM_SWITCH_IRQ
|
||||||
|
snes_irq_on();
|
||||||
|
snes_irq_lo();
|
||||||
|
_delay_us(20);
|
||||||
|
snes_irq_hi();
|
||||||
|
snes_irq_off();
|
||||||
|
#else
|
||||||
|
_delay_ms(SHARED_MEM_SWITCH_DELAY);
|
||||||
|
#endif
|
||||||
|
|
||||||
avr_bus_active();
|
avr_bus_active();
|
||||||
//snes_irq_lo();
|
|
||||||
//snes_irq_off();
|
|
||||||
snes_lorom();
|
snes_lorom();
|
||||||
snes_wr_disable();
|
|
||||||
|
|
||||||
shared_memory_scratchpad_tx_restore();
|
shared_memory_scratchpad_tx_restore();
|
||||||
shared_memory_irq_restore();
|
shared_memory_irq_restore();
|
||||||
@ -102,9 +107,7 @@ void shared_memory_yield()
|
|||||||
snes_hirom();
|
snes_hirom();
|
||||||
snes_wr_disable();
|
snes_wr_disable();
|
||||||
snes_bus_active();
|
snes_bus_active();
|
||||||
|
_delay_ms(SHARED_MEM_SWITCH_DELAY);
|
||||||
_delay_ms(10);
|
|
||||||
|
|
||||||
avr_bus_active();
|
avr_bus_active();
|
||||||
snes_lorom();
|
snes_lorom();
|
||||||
snes_wr_disable();
|
snes_wr_disable();
|
||||||
@ -131,14 +134,19 @@ int shared_memory_read(uint8_t *cmd, uint8_t *len,uint8_t *buffer)
|
|||||||
sram_write(SHARED_MEM_RX_LOC_STATE, SHARED_MEM_RX_AVR_RTS);
|
sram_write(SHARED_MEM_RX_LOC_STATE, SHARED_MEM_RX_AVR_RTS);
|
||||||
|
|
||||||
snes_hirom();
|
snes_hirom();
|
||||||
snes_wr_disable();
|
|
||||||
snes_bus_active();
|
snes_bus_active();
|
||||||
_delay_ms(50);
|
|
||||||
|
#if SHARED_MEM_SWITCH_IRQ
|
||||||
|
snes_irq_on();
|
||||||
|
snes_irq_lo();
|
||||||
|
_delay_us(20);
|
||||||
|
snes_irq_hi();
|
||||||
|
snes_irq_off();
|
||||||
|
#else
|
||||||
|
_delay_ms(SHARED_MEM_SWITCH_DELAY);
|
||||||
|
#endif
|
||||||
|
|
||||||
avr_bus_active();
|
avr_bus_active();
|
||||||
//snes_irq_lo();
|
|
||||||
//snes_irq_off();
|
|
||||||
snes_lorom();
|
snes_lorom();
|
||||||
snes_wr_disable();
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,6 +22,9 @@
|
|||||||
#define __SHARED_MEMORY_H__
|
#define __SHARED_MEMORY_H__
|
||||||
|
|
||||||
|
|
||||||
|
#define SHARED_MEM_SWITCH_IRQ 0
|
||||||
|
#define SHARED_MEM_SWITCH_DELAY 100
|
||||||
|
|
||||||
#define SHARED_MEM_TX_SNES_ACK 0xa5
|
#define SHARED_MEM_TX_SNES_ACK 0xa5
|
||||||
#define SHARED_MEM_TX_SNES_RTS 0x5a
|
#define SHARED_MEM_TX_SNES_RTS 0x5a
|
||||||
|
|
||||||
|
|||||||
@ -309,7 +309,7 @@ void sram_bulk_set(uint32_t addr, uint32_t len,uint8_t value){
|
|||||||
sram_bulk_write_end();
|
sram_bulk_write_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
void sram_setr(uint32_t addr, uint32_t len,uint8_t value)
|
void sram_set(uint32_t addr, uint32_t len,uint8_t value)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
debug(DEBUG_SRAM,"sram_clear: addr=0x%08lx len=%li\n\r", addr,len);
|
debug(DEBUG_SRAM,"sram_clear: addr=0x%08lx len=%li\n\r", addr,len);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user