sram.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <stdlib.h>
  2. #include <stdint.h>
  3. #include <avr/io.h>
  4. //SREG defines
  5. #define S_MOSI PB5
  6. #define S_MISO PB6
  7. #define S_SCK PB7
  8. #define S_LATCH PB4
  9. //DEBUG defines
  10. #define D_LED0 PD6
  11. //SRAM defines
  12. #define R_WR PB1
  13. #define R_RD PB0
  14. #define RAM_PORT PORTA
  15. #define RAM_DIR DDRA
  16. #define RAM_REG PINA
  17. #define CTRL_PORT PORTB
  18. #define CTRL_DIR DDRB
  19. #define LATCH_PORT PORTB
  20. #define LATCH_DIR DDRB
  21. #define SPI_PORT PORTB
  22. #define SPI_DIR DDRB
  23. #define LED_PORT PORTD
  24. #define LED_DIR DDRD
  25. #define ROMSIZE 4
  26. #define BLOCKS (ROMSIZE << 8)
  27. #define MEMSIZE 0x80000
  28. void spi_init(void);
  29. void spi_master_transmit(unsigned char cData);
  30. void sram_set_addr(uint32_t addr);
  31. uint8_t sram_read(uint32_t addr);
  32. void sram_write(uint32_t addr, uint8_t data);
  33. void sram_init(void);
  34. void sram_snes_mode01(void);
  35. void sram_snes_mode02(void);
  36. void sram_clear(uint32_t addr, uint32_t len);
  37. void sram_copy(uint32_t addr,uint8_t *src, uint32_t len);
  38. void sram_read_buffer(uint32_t addr,uint8_t *dst, uint32_t len);
  39. uint8_t sram_check(uint8_t *buffer, uint32_t len);