<<<<<<< HEAD:poc/avr_sdcard/main.c //#define F_CPU 8000000 ======= >>>>>>> sdcard_m32:poc/avr_sdcard/main.c #include #include #include #include "uart.h" #include "mmc.h" #include "fat.h" //SREG defines #define S_MOSI PB5 #define S_MISO PB6 #define S_SCK PB7 #define S_LATCH PB4 //DEBUG defines #define D_LED0 PD6 //SRAM defines #define R_WR PB1 #define R_RD PB0 #define RAM_PORT PORTA #define RAM_DIR DDRA #define RAM_REG PINA <<<<<<< HEAD:poc/avr_sdcard/main.c #define READ_BUFFER_SIZE 512 #define DEBUG_BUFFER_SIZE 256 #define BLOCK_CNT 512 //uint8_t debug_buffer[DEBUG_BUFFER_SIZE]; uint8_t read_buffer[READ_BUFFER_SIZE]; ======= #define CTRL_PORT PORTB #define CTR_DIR DDRB >>>>>>> sdcard_m32:poc/avr_sdcard/main.c <<<<<<< HEAD:poc/avr_sdcard/main.c //va_list args; //va_start(args, fmt); //vsnprintf(debug_buffer,DEBUG_BUFFER_SIZE-1, fmt, args); //va_end(args); //uart_puts(debug_buffer); uart_puts(fmt); } ======= #define LATCH_PORT PORTB #define LATCH_DIR DDRB #define SPI_PORT PORTB #define SPI_DIR DDRB #define LED_PORT PORTD #define LED_DIR DDRD >>>>>>> sdcard_m32:poc/avr_sdcard/main.c #define READ_BUFFER_SIZE 512 #define BLOCKS 510 #define debug(x, fmt) printf("%s:%u: %s=" fmt, __FILE__, __LINE__, #x, x) extern FILE uart_stdout; uint8_t read_buffer[READ_BUFFER_SIZE]; void dump_packet(uint32_t addr,uint32_t len,uint8_t *packet){ uint16_t i,j; uint16_t sum =0; for (i=0;i>>>>>> sdcard_m32:poc/avr_sdcard/main.c for (j=0;j<16;j++) { printf(" %02x", packet[i+j]); } printf(" |"); for (j=0;j<16;j++) { if (packet[i+j]>=33 && packet[i+j]<=126 ) printf("%c", packet[i+j]); else printf("."); } <<<<<<< HEAD:poc/avr_sdcard/main.c dprintf("|\r\n"); ======= printf("|\n"); >>>>>>> sdcard_m32:poc/avr_sdcard/main.c } } void spi_init(void) { /* Set MOSI and SCK output, all others input */ SPI_DIR |= ((1<>16)); spi_master_transmit((uint8_t)(addr>>8)); spi_master_transmit((uint8_t)(addr>>0)); LATCH_PORT |= (1<>16)); spi_master_transmit((uint8_t)(addr>>8)); spi_master_transmit((uint8_t)(addr>>0)); LATCH_PORT |= (1<>>>>>> sdcard_m32:poc/avr_sdcard/main.c while ( mmc_init() !=0) { printf("no sdcard..\n"); } printf("mmc_init\n"); fat_init(read_buffer); printf("fat_init\n"); rom_addr = 0x000000; <<<<<<< HEAD:poc/avr_sdcard/main.c while (!done){ dprintf("Look for sprite.smc\n\r"); if (fat_search_file((uint8_t*)"sprite.smc", &fat_cluster, &fat_size, &fat_attrib, read_buffer) == 1) { dprintf("Start loading sprite.smc\n\r"); for (uint16_t block_cnt=0; block_cnt>>>>>> sdcard_m32:poc/avr_sdcard/main.c } dprintf("Dump memory\n\r"); rom_addr = 0x000000; <<<<<<< HEAD:poc/avr_sdcard/main.c for (uint16_t block_cnt=0; block_cnt>>>>>> sdcard_m32:poc/avr_sdcard/main.c sram_read_buffer(rom_addr,read_buffer,512); dump_packet(rom_addr,512,read_buffer); rom_addr += 512; } printf("Done\n",rom_addr); while(1); return(0); }