From 6edd54b092d3a3452d65bd7a4bfc0754fe6e430a Mon Sep 17 00:00:00 2001 From: David Voswinkel Date: Tue, 18 Aug 2009 08:38:48 +0200 Subject: [PATCH] switch file id to 32bit and get sram push working --- avr/usbload/dir.c | 5 +++-- avr/usbload/dir.h | 6 +++--- avr/usbload/file.c | 2 +- avr/usbload/main.c | 21 ++++++++++++++------- avr/usbload/sram.c | 3 +-- avr/usbload/testing.c | 1 + 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/avr/usbload/dir.c b/avr/usbload/dir.c index e357057..873e12b 100644 --- a/avr/usbload/dir.c +++ b/avr/usbload/dir.c @@ -34,12 +34,12 @@ void dir_entry_start(){ } void dir_entry_dump(uint32_t addr, dir_ent_t* ent){ - debug(DEBUG_FAT,"dir_entry_dump: addr=0x%06lx id=%i name=%s size=%li attr=%i\n", addr, ent->id, ent->file_name, + debug(DEBUG_FAT,"dir_entry_dump: addr=0x%06lx id=%li name=%s size=%li attr=%i\n", addr, ent->id, ent->file_name, ent->file_size, ent->file_attr); } -void dir_entry_add(uint16_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr){ +void dir_entry_add(uint32_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr){ uint32_t addr; dir_ent_t ent; strncpy(ent.file_name,file_name,13); @@ -59,3 +59,4 @@ void dir_entry_header(uint16_t position, uint8_t * header){ } + diff --git a/avr/usbload/dir.h b/avr/usbload/dir.h index b521309..f3cc6ef 100644 --- a/avr/usbload/dir.h +++ b/avr/usbload/dir.h @@ -32,15 +32,15 @@ #define DIR_ENTRY_HEADER_OFF 20 typedef struct { - uint16_t id; // 2 + uint32_t id; // 4 uint8_t file_name[13]; // 8.3 = 12 + 1 = 13 uint32_t file_size; // 4 uint8_t file_attr; // 1 - uint8_t snes_header[43]; // 44 + uint8_t snes_header[41]; // 41 } dir_ent_t; // 64 void dir_entry_start(); -void dir_entry_add(uint16_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr); +void dir_entry_add(uint32_t id, uint8_t* file_name,uint32_t file_size,uint8_t file_attr); void dir_entry_header(uint16_t position, uint8_t * header); /* diff --git a/avr/usbload/file.c b/avr/usbload/file.c index bc2ed4f..889e56c 100644 --- a/avr/usbload/file.c +++ b/avr/usbload/file.c @@ -205,7 +205,7 @@ void lsRowsOfClust_smc(uint32_t start_sec) fat_loadRowOfSector(row); // reihe eines sektors (auf dem puffer) laden if ((file.name[0] != 0xE5 && file.name[0] != 0x00)) { if (file.attrib == 0x20) - dir_entry_add((uint16_t)file.firstCluster, file.name, file.length ,file.attrib); + dir_entry_add(file.firstCluster, file.name, file.length ,file.attrib); } } } while (++sec < fat.secPerClust); diff --git a/avr/usbload/main.c b/avr/usbload/main.c index a41a6b9..ae8a591 100644 --- a/avr/usbload/main.c +++ b/avr/usbload/main.c @@ -51,7 +51,7 @@ extern const char _rom[] PROGMEM; extern FILE uart_stdout; -uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC | DEBUG_FAT | DEBUG_SRAM ); +uint8_t debug_level = (DEBUG | DEBUG_USB | DEBUG_CRC | DEBUG_FAT); uint8_t read_buffer[TRANSFER_BUFFER_SIZE]; uint32_t req_addr = 0; @@ -314,18 +314,25 @@ int main(void) uart_init(); stdout = &uart_stdout; - test_sdcard(); info("Sytem start\n"); system_init(); -#if 0 - test_read_write(); - test_bulk_read_write(); - test_crc(); - while (1); + +#if 1 + avr_bus_active(); + info("Activate AVR bus\n"); + info("IRQ off\n"); + snes_irq_lo(); + snes_irq_off(); + info("Set Snes lowrom\n"); + snes_lorom(); + info("Disable snes WR\n"); + snes_wr_disable(); + test_sdcard(); #endif + info("Boot startup rom\n"); boot_startup_rom(); diff --git a/avr/usbload/sram.c b/avr/usbload/sram.c index d430a88..4c20e6d 100644 --- a/avr/usbload/sram.c +++ b/avr/usbload/sram.c @@ -22,8 +22,7 @@ #include #include #include -#include /* for _delay_ms() */ - +#include #include "config.h" #include "sram.h" diff --git a/avr/usbload/testing.c b/avr/usbload/testing.c index e9c67c0..d3f9445 100644 --- a/avr/usbload/testing.c +++ b/avr/usbload/testing.c @@ -126,6 +126,7 @@ void test_sdcard(void){ printf("Root dirlist\n"); ffls_smc(); dump_memory(DIR_ENTRY_LOC , DIR_ENTRY_LOC + (64 * 2)); + while(1); #if (WRITE==1) char datei[12]="test.txt"; // hier muss platz für 11 zeichen sein (8.3), da fat_str diesen string benutzt !!